Beste mensen,

Ik zit met onderstaand script.

Voorheen werkte het goed maar nu voor mij een onbekende reden werkt het niet meer.
Er komt niets in de database te staan en verder geen foutmelding.

Ik krijg 1 foutmelding namelijk:

Notice: Undefined variable: submit in /home/beste/domains/besteartiestenvannederland.nl/public_html/cplog/web/toevoegen.php on line 41

<?
error_reporting(E_ALL | E_STRICT);

session_start();
if(!isset($_SESSION['dataLIaut']))
{
header('Location: ../dc/404.php');
exit();
}


/* FUNCTIES INCLUDEN */
include("../fs/functions.php");


echo "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
echo "<tr>";
echo "<td>";
echo "<img src=\"../img/OK.gif\" width=\"16\" height=\"16\">&nbsp;";
echo "<img src=\"../img/ON.gif\" width=\"16\" height=\"16\">";
echo "<font color=\"#121260\" size=\"3\" face=\"Arial\"><b>&nbsp;";
echo "$_SESSION[USname]</b>";
echo "</td>";
echo "<td>";
echo "<div align=\"right\">";
echo "<font color=\"#121260\" size=\"1\" face=\"Arial\"><b>&nbsp;";
echo "<img src=\"../img/sp/refresh.jpg\" border=\"0\"> ";
echo "<a href=\"javascript:location.reload()\" onMouseOver=\"window.status = 'Vernieuw deze pagina!'; return true;\" onMouseOut=\"window.status = ' ';\">Vernieuwen</a>";
echo "&nbsp;&nbsp;|&nbsp;&nbsp;";
echo "<img src=\"../img/sp/uplevel.jpg\" border=\"0\"> ";
echo "<a href=\"javascript:history.back()\" onMouseOver=\"window.status = 'Ga terug naar de vorige pagina!'; return true;\" onMouseOut=\"window.status = ' ';\">Vorige</a>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "<br><br><br>";

// Dit is de pagina waar je het Nieuws toevoegt

include("config.php");

if ($submit) {
mysql_connect("$host","$user","$pass");
mysql_select_db("$db");
$bericht = htmlspecialchars($bericht);
$bericht = eregi_replace("\[b\]","<b>",$bericht);
$bericht = eregi_replace("\[/b\]","</b>",$bericht);
$bericht = eregi_replace("\[a\]","<a href=\"",$bericht);
$bericht = eregi_replace("\[/a\]","</a>",$bericht);
$bericht = eregi_replace("\[aa\]","\" target=\"_blank\">",$bericht);
$bericht = eregi_replace("\[i\]","<i>",$bericht);
$bericht = eregi_replace("\[/i\]","</i>",$bericht);
$bericht = eregi_replace("\[u\]","<u>",$bericht);
$bericht = eregi_replace("\[/u\]","</u>",$bericht);
$bericht = eregi_replace("\[p\]","<p>",$bericht);
$bericht = eregi_replace("\[/p\]","</p>",$bericht);
$bericht = eregi_replace("\[br\]","<br>",$bericht);
$bericht = eregi_replace("\[font\]","<font color=\"#FF0000\" size=\"1\">",$bericht);
$bericht = eregi_replace("\[/font\]","</font>",$bericht);
$datum = date("d/m/Y");
$tijd = date("H:i");



$insert = "INSERT INTO nieuws (auteur,onderwerp,bericht,tijd,datum,email) VALUES ('$auteur','$onderwerp','$bericht','$tijd','$datum','$email')";
$query = mysql_query($insert)or die(mysql_error());



echo "Je Nieuws Item is succesvol geplaatst!<META HTTP-EQUIV=\"refresh\" CONTENT=\"2;URL=../welcome.php\">";

}
else {
echo "<form action='toevoegen.php' method=POST><center>";
echo "<table cellspacing=0 border=0>";
echo "<tr><td>Auteur: </td><td><input type=text name=auteur></td></tr>";
echo "<tr><td>E-mail adres: </td><td><input type=text name=email></td></tr>";
echo "<tr><td>Onderwerp: </td><td><input type=text name=onderwerp></td></tr>";
echo "<tr><td>Bericht: </td><td><textarea name=bericht cols=30 rows=10></textarea></td></tr>";
echo "<tr><td colspan=2><input type=submit value=toevoegen style=width:25%></td></tr>";
echo "</table></form>";
}

?>
je <?php $submit ?> bestaat niet en daarom krijg je een error op lijn 41

op lijn 23 var buiten quotes
<?php
echo $_SESSION[USname]."</b>";
?>

waarom maak je maar verbinding met database als er op submit is gedrukt?
zet het mee in je config.

<?php

// zet dit in je config:
$mysql['host'] = "localhost";
$mysql['gebruikersnaam'] = "****";
$mysql['wachtwoord'] = "****";
$mysql['database'] = "****";

mysql_connect($mysql['host'],$mysql['gebruikersnaam'],$mysql['wachtwoord']);
mysql_select_db($mysql['database']);

?>

je query is ook niet netjes:
+ een datum doe je met NOW() en je slaagt het op in een datetime (in jouw geval)

<?php
// voer de query uit
$sql = "INSERT INTO nieuws
(auteur,onderwerp,bericht,tijd,datum,email)
VALUES
('".$auteur."','".$onderwerp."','".$bericht."','".$tijd."',NOW(),'".$email."')";

if (($result = mysql_query($sql)) === false) {
// foutafhandeling
echo 'Fout met database.';

if (DEBUG_MODE) {
showSQLError($sql,mysql_error());
}
}
else {
echo "Je Nieuws Item is succesvol geplaatst!<META HTTP-EQUIV=\"refresh\" CONTENT=\"2;URL=../welcome.php\">";

}
?>

ZET JE VARIABELEN BUITEN QUOTES!!!!
Script is waarschijnlijk al behoorlijk oud.
Superglobals moet hier blijkbaar aan staan.
Ga met $_POST['...'] werken.
Je html is totaal niet valid.

<?
error_reporting(E_ALL | E_STRICT);

session_start();
if(!isset($_SESSION['dataLIaut']))
    {
        header('Location: ../dc/404.php');
        exit();
    }


/* FUNCTIES INCLUDEN */
include("../fs/functions.php");


  echo "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
  echo "<tr>";
  echo "<td>";
    echo "<img src=\"../img/OK.gif\" width=\"16\" height=\"16\">&nbsp;";
    echo "<img src=\"../img/ON.gif\" width=\"16\" height=\"16\">";
    echo "<font color=\"#121260\" size=\"3\" face=\"Arial\"><b>&nbsp;";
    echo "$_SESSION[USname]</b>";
  echo "</td>";
  echo "<td>";
    echo "<div align=\"right\">";
    echo "<font color=\"#121260\" size=\"1\" face=\"Arial\"><b>&nbsp;";
    echo "<img src=\"../img/sp/refresh.jpg\" border=\"0\"> ";
    echo "<a href=\"javascript:location.reload()\" onMouseOver=\"window.status = 'Vernieuw deze pagina!'; return true;\" onMouseOut=\"window.status = ' ';\">Vernieuwen</a>";
    echo "&nbsp;&nbsp;|&nbsp;&nbsp;";
    echo "<img src=\"../img/sp/uplevel.jpg\" border=\"0\"> ";
    echo "<a href=\"javascript:history.back()\" onMouseOver=\"window.status = 'Ga terug naar de vorige pagina!'; return true;\" onMouseOut=\"window.status = ' ';\">Vorige</a>";
  echo "</td>";
  echo "</tr>";
  echo "</table>";
  echo "<br><br><br>";
  
// Dit is de pagina waar je het Nieuws toevoegt

include("config.php");

if (isset($submit) && !empty($submit)) {
mysql_connect("$host","$user","$pass");
mysql_select_db("$db");
$bericht = htmlspecialchars($bericht);
$bericht = eregi_replace("\[b\]","<b>",$bericht);
$bericht = eregi_replace("\[/b\]","</b>",$bericht);
$bericht = eregi_replace("\[a\]","<a href=\"",$bericht);
$bericht = eregi_replace("\[/a\]","</a>",$bericht);
$bericht = eregi_replace("\[aa\]","\" target=\"_blank\">",$bericht);
$bericht = eregi_replace("\[i\]","<i>",$bericht);
$bericht = eregi_replace("\[/i\]","</i>",$bericht);
$bericht = eregi_replace("\[u\]","<u>",$bericht);
$bericht = eregi_replace("\[/u\]","</u>",$bericht);
$bericht = eregi_replace("\[p\]","<p>",$bericht);
$bericht = eregi_replace("\[/p\]","</p>",$bericht);
$bericht = eregi_replace("\[br\]","<br>",$bericht);
$bericht = eregi_replace("\[font\]","<font color=\"#FF0000\" size=\"1\">",$bericht);
$bericht = eregi_replace("\[/font\]","</font>",$bericht);
$datum = date("d/m/Y");
$tijd = date("H:i");



$insert = "INSERT INTO nieuws (auteur,onderwerp,bericht,tijd,datum,email) VALUES ('$auteur','$onderwerp','$bericht','$tijd','$datum','$email')";
$query = mysql_query($insert)or die(mysql_error());



echo "Je Nieuws Item is succesvol geplaatst!<META HTTP-EQUIV=\"refresh\" CONTENT=\"2;URL=../welcome.php\">";

}
else {
echo "<form action='toevoegen.php' method=POST><center>";
echo "<table cellspacing=0 border=0>";
echo "<tr><td>Auteur: </td><td><input type=text name=auteur></td></tr>";
echo "<tr><td>E-mail adres: </td><td><input type=text name=email></td></tr>";
echo "<tr><td>Onderwerp: </td><td><input type=text name=onderwerp></td></tr>";
echo "<tr><td>Bericht: </td><td><textarea name=bericht cols=30 rows=10></textarea></td></tr>";
echo "<tr><td colspan=2><input type=submit value=toevoegen  style=width:25%></td></tr>";
echo "</table></form>";
}

?>
en wat is hier de bedoeling van?

edit=
zelfs als je regel 41 veranderd staan er nog fouten in.
Tim Kampherbeek op 31/10/2010 19:04:11


<?
error_reporting(E_ALL | E_STRICT);

session_start();
if(!isset($_SESSION['dataLIaut']))
    {
        header('Location: ../dc/404.php');
        exit();
    }


/* FUNCTIES INCLUDEN */
include("../fs/functions.php");


  echo "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
  echo "<tr>";
  echo "<td>";
    echo "<img src=\"../img/OK.gif\" width=\"16\" height=\"16\">&nbsp;";
    echo "<img src=\"../img/ON.gif\" width=\"16\" height=\"16\">";
    echo "<font color=\"#121260\" size=\"3\" face=\"Arial\"><b>&nbsp;";
    echo "$_SESSION[USname]</b>";
  echo "</td>";
  echo "<td>";
    echo "<div align=\"right\">";
    echo "<font color=\"#121260\" size=\"1\" face=\"Arial\"><b>&nbsp;";
    echo "<img src=\"../img/sp/refresh.jpg\" border=\"0\"> ";
    echo "<a href=\"javascript:location.reload()\" onMouseOver=\"window.status = 'Vernieuw deze pagina!'; return true;\" onMouseOut=\"window.status = ' ';\">Vernieuwen</a>";
    echo "&nbsp;&nbsp;|&nbsp;&nbsp;";
    echo "<img src=\"../img/sp/uplevel.jpg\" border=\"0\"> ";
    echo "<a href=\"javascript:history.back()\" onMouseOver=\"window.status = 'Ga terug naar de vorige pagina!'; return true;\" onMouseOut=\"window.status = ' ';\">Vorige</a>";
  echo "</td>";
  echo "</tr>";
  echo "</table>";
  echo "<br><br><br>";
  
// Dit is de pagina waar je het Nieuws toevoegt

include("config.php");

if (isset($submit) && !empty($submit)) {
mysql_connect("$host","$user","$pass");
mysql_select_db("$db");
$bericht = htmlspecialchars($bericht);
$bericht = eregi_replace("\[b\]","<b>",$bericht);
$bericht = eregi_replace("\[/b\]","</b>",$bericht);
$bericht = eregi_replace("\[a\]","<a href=\"",$bericht);
$bericht = eregi_replace("\[/a\]","</a>",$bericht);
$bericht = eregi_replace("\[aa\]","\" target=\"_blank\">",$bericht);
$bericht = eregi_replace("\[i\]","<i>",$bericht);
$bericht = eregi_replace("\[/i\]","</i>",$bericht);
$bericht = eregi_replace("\[u\]","<u>",$bericht);
$bericht = eregi_replace("\[/u\]","</u>",$bericht);
$bericht = eregi_replace("\[p\]","<p>",$bericht);
$bericht = eregi_replace("\[/p\]","</p>",$bericht);
$bericht = eregi_replace("\[br\]","<br>",$bericht);
$bericht = eregi_replace("\[font\]","<font color=\"#FF0000\" size=\"1\">",$bericht);
$bericht = eregi_replace("\[/font\]","</font>",$bericht);
$datum = date("d/m/Y");
$tijd = date("H:i");



$insert = "INSERT INTO nieuws (auteur,onderwerp,bericht,tijd,datum,email) VALUES ('$auteur','$onderwerp','$bericht','$tijd','$datum','$email')";
$query = mysql_query($insert)or die(mysql_error());



echo "Je Nieuws Item is succesvol geplaatst!<META HTTP-EQUIV=\"refresh\" CONTENT=\"2;URL=../welcome.php\">";

}
else {
echo "<form action='toevoegen.php' method=POST><center>";
echo "<table cellspacing=0 border=0>";
echo "<tr><td>Auteur: </td><td><input type=text name=auteur></td></tr>";
echo "<tr><td>E-mail adres: </td><td><input type=text name=email></td></tr>";
echo "<tr><td>Onderwerp: </td><td><input type=text name=onderwerp></td></tr>";
echo "<tr><td>Bericht: </td><td><textarea name=bericht cols=30 rows=10></textarea></td></tr>";
echo "<tr><td colspan=2><input type=submit value=toevoegen  style=width:25%></td></tr>";
echo "</table></form>";
}

?>



Als je het zelf niet weet moet je ook niet gaan antwoorden.
- Variabelen buiten quotes.
- Als een key van een array een string is ook quotes gebruiken.
- Waarvoor voor elke regel echo? Maak gewoon één lange echo, veel handiger.
- Gebruik enkele quotes voor de echo, dan hoef je de html niet te escapen.
- Tabellen niet gebruiken voor lay-out.
- Inline javsacript is vies. Gebruik event handlers.
- Leer CSS.
- Controleren of een formulier gepost is doe je met if($_SERVER['REQUEST_METHOD'] == 'POST')
- VARIABELEN BUITEN QUOTES!
- Bouw foutafhandeling in.
- Htmlspecialchars gooi je pas over je data heen als je het uit de database haalt.
- Eregi_ is oud, gebruik preg_replace.
- Leer regexen.
- Datum en tijds sla je op in een DATETIME veld in de database.
- SQL injections mogelijk.
- VARIABELEN BUITEN QUOTES!
- Geen die gebruiken. Waarom moeten scripts altijd dood neervallen? Totaal onzinnig.
- Leer html, meta hoort in de head.
- Tabellen gebruik je niet om forms mee te stylen.
- Gebruik je nog html 4?
- Gebruik geen inline CSS plaats de CSS in de style tag of in een apart bestand.
@ karl veel van wat jij zegt heb ik al gezegd / verbeterd
Ik krijg nu geen foutmeldingen meer alleen er wordt niets toegevoegd aan de database.
En wat heb je aangepast? Toon je relevante code eens.
Nou... heb script gekopieerd eigenlijk.
dit omdat ik er zelf niet echt meer uit kom.
Maar wat heb je nu als relevante code dan? Karl heeft ene hoop tips opgenoemd, dus het lijkt me dat je die toegepast hebt...?

Reageren