Ik ben bezig met een gastenboekscript voor mijn site en wil nieuwe entry's via een scriptje willen invoeren. Dit is het script:

newentry.php:

<?php
include 'config.php';
if ($button && $newtopic && $newlocation && $newdate) {
include 'config.php';
$add = "INSERT INTO calender (topic, location, date) VALUES ('$newtopic', '$newlocation', '$newdate')";

if (!mysql_query($add)){
echo "$add_error";}

else {
echo "$add_succes";}
}

else {
echo "<form method=post action=$_SERVER[PHP_SELF]>";
echo "$w_topic <br>";
echo "<input type=text name=newtopic><br><br>";
echo "$w_location <br>";
echo "<input type=text name=newlocation><br><br>";
echo "$w_date <br>";
echo "<input type=text name=newdate><br><br>";
echo "<input type=submit name=button value=$addme>";
echo "</form>";
}

include 'footer.php';
?>

Zodra ik op de knop druk krijg ik hetzelfde scherm weer te zien maar dan met lege velden (logisch --> PHP_SELF), maar er word niks in de database toegevoegd.

Nu heb ik een test.php gemaakt met het volgende:

<?php
include 'config.php';

$add = "INSERT INTO calender (topic, location, date) VALUES ('Je Vader Is een balletje', 'Thuis', '27-03-2009')";

if (!mysql_query($add)){
die($add_error);}

else {
echo "$add_succes";}

?>

In feite hetzelfde alleen dan met vaste waarden zonder formulier. Dit werkt perfect, alleen moet ik via het script telkens de waarde wijzigen wat ik niet wil (aangezien ik anderen ook entry's wil kunnen laten maken).
Iemand een idee hoe ik dit op kan lossen?
Grtz
1 Je kunt voor de leesbaarheid je code beter uitlijnen, dus tab's invoegen

2 Dan zie je dat er volgens mij na de eerste if een } mist...

3 Zet helemaal boven aan je script: error_reporting( E_ALL | E_NOTICE );

Volgens mij zijn we dan al een heel eind.
Dit haakje dat je mist klopt niet, het haakje staat op regel 12, anders word er altijd gecheckt of de query is uitgevoerd.
Helaas doet je ( E_ALL | E_NOTICE ); niks bij mijn script dus weet ik nog steeds niet wat ik mis doet. Alsnog bedankt voor je razendsnelle reactie
Zet dit bovenin je script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
Het zijn POST variabelen. Dus gebruik ze met $_POST['key'].

Maak je query eens iets netter, en ga SQL-injections tegen.

Variabele buiten quotes.

Edit
SanThe schreef op 26.03.2009 16:45
Zet dit bovenin je script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>

Ik vroeg mij al af waar je bleef.
variabelen buiten de quotes!
Dennis Mertens schreef op 26.03.2009 16:46
Ik vroeg mij al af waar je bleef.

Hahaha, maar er moet toch wel het een en ander aan error/notice verschijnen lijkt mij.
Ik Krijg idd errors over mn variabelen maar krijg ze niet goed omgezet in $_POST variabelen, ik weet welke ik moet omzetten en hoe precies, kan iemand mij dat even aangeven?
Omzetten is er niet bij.... je kan de $_POST (array) waarden gewoon controleren en valideren en daarna in je query gebruiken met _real_escape_string er aan toegevoegd.

var_dump en print_r kunnen als hulp dienen om te kijken wat er zich in $_POST / $_GET bevindt.
dat snap ik totaal niet dus...

Reageren