INSERT probleem
newentry.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?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';
?>
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:
Code (php)
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
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.
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
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.
Ik vroeg mij al af waar je bleef.
Gewijzigd op 01/01/1970 01:00:00 door Dennis Mertens
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?
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...
Kan iemand gewoon een voorbeeld geven van een stukje uit mn script dat fout is en erbij zetten hoe het wel moet, zodat ik de rest zelf aan kan passen
Alvast bedankt
Dat moet zijn $_POST['button']
Gebruik om te checken of iets bestaat isset() of empty().
Je html lijkt helemaal nergens op.
Code (php)
Hou alle $vars buiten de quotes.
Maar waar worden in PHP die variabelen voorzien van een waarde?
nergens namelijk, en dus krijg je een 'undefined variabele' error.
Maar goed, we kijken even verder $button.. Ik zie wel in de code staan 'button'. En zelfs in:
Daar komt hij vandaan, maar tegenwoordig roepen we dat niet meer zo op. Hoe dan wel?
Heel simpel, het is een POST-formulier, en dus roep je de waarde van die pnvoerbox op met $_POST['button'].
Zo kunnen i.p..v POST ook gebruikt worden:
$_GET (waardes uit een url)
$_COOKIE
$_SESSION
$_SERVER (serveromgeving variabelen)
$_FILES (een uit upload formulier)
_
Ik heb het probleem opgelost door gewoon 2 pagina's te gebruiken, vind het jammer dat het niet ander ging maar het werkt nu goed :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
include 'config.php';
if ($button && $newtopic && $newlocation && $newdate) {
include 'config.php';
$add = "INSERT INTO calender (topic, location, date) VALUES ('".$_POST['newtopic']."', '".$_POST['newlocation']."', NOW())";
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';
?>
include 'config.php';
if ($button && $newtopic && $newlocation && $newdate) {
include 'config.php';
$add = "INSERT INTO calender (topic, location, date) VALUES ('".$_POST['newtopic']."', '".$_POST['newlocation']."', NOW())";
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';
?>
in deze query zit het verhaalte over het $_POST verwerkt ;)