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!!!!
Link gekopieerd
Script is waarschijnlijk al behoorlijk oud.
Superglobals moet hier blijkbaar aan staan.
Ga met $_POST['...'] werken.
Je html is totaal niet valid.
Link gekopieerd
<?
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\"> ";
echo "<img src=\"../img/ON.gif\" width=\"16\" height=\"16\">";
echo "<font color=\"#121260\" size=\"3\" face=\"Arial\"><b> ";
echo "$_SESSION[USname]</b>";
echo "</td>";
echo "<td>";
echo "<div align=\"right\">";
echo "<font color=\"#121260\" size=\"1\" face=\"Arial\"><b> ";
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 " | ";
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>";
}
?>
Link gekopieerd
en wat is hier de bedoeling van?
edit=
zelfs als je regel 41 veranderd staan er nog fouten in.
Link gekopieerd
?
Onbekende gebruiker
31-10-2010 19:33
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\"> ";
echo "<img src=\"../img/ON.gif\" width=\"16\" height=\"16\">";
echo "<font color=\"#121260\" size=\"3\" face=\"Arial\"><b> ";
echo "$_SESSION[USname]</b>";
echo "</td>";
echo "<td>";
echo "<div align=\"right\">";
echo "<font color=\"#121260\" size=\"1\" face=\"Arial\"><b> ";
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 " | ";
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.
Link gekopieerd
@ karl veel van wat jij zegt heb ik al gezegd / verbeterd
Link gekopieerd
Ik krijg nu geen foutmeldingen meer alleen er wordt niets toegevoegd aan de database.
Link gekopieerd
En wat heb je aangepast? Toon je relevante code eens.
Link gekopieerd
Nou... heb script gekopieerd eigenlijk.
dit omdat ik er zelf niet echt meer uit kom.
Link gekopieerd
Maar wat heb je nu als relevante code dan? Karl heeft ene hoop tips opgenoemd, dus het lijkt me dat je die toegepast hebt...?
Link gekopieerd