[php/mysql] gastboek met een undifined variable?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • degroot
  • Registratie: December 2003
  • Niet online
ik ben sins heel erg kort met php en mysql bezig.
snap het ook nog allemala niet zo goed.
ben met 3 boeken tegeljik bezig om het te leren 8)7
dus vandaar dat ikdeze vraag stel

ik heb een klein gastenboekje gemaakt met mysql en php.
in explorer komt het gastenboekje tevoorschijn en vul netjes de velden in.
zodra ik op sign klik krijg ik de volgende error in beeld.

Notice: Undefined variable: submit in C:\website's\php\create_entry.php on line 11

nu snap ik helaas niet wat ik moet doen 8)7
het enigste wat ik eruit kan halen is dat $submit niet gedefineerd is maar dat hoeft hierin toch niet?
of loopt het dan in mijn form code mis?

dit is de code van de create entry(ik denk dat deze het belangrijkste is als jullie van meer pagina's nodig hebben hoor ik het wel)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
include("dbconnect.php");
if ($submit == "sign!")
{
    $query = "insert into gastboek
        (name, location, email, url, comments) values
        ('$name', '$location', '$email', '$url', '&comments')"
        ;
        mysql_query($query) or
            die (mysql_error());
?>
<h2>dank u</h2>
<h2><a href= "view.php"> bekijk ons gastenboek</a></h2>
<?php
}
else
{
    include("index.php");
}

?>


hopop dat ik het duidelijk heb uitgelegd
ik gebruik
w2k AS
iis 4
php: 5
mysql 4.1

[ Voor 9% gewijzigd door degroot op 19-11-2004 11:59 ]

www.degroot-it.nl


Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Ik denk dat er iets in je formcode mis gaat, hoe ziet die sign.php er uit?

Acties:
  • 0 Henk 'm!

Verwijderd

een notice is een waarschuwing van php dat je iets verkeerd hebt gedaan, wat niet cruciaal is voor het proces. wanneer de probeert iets met de variabele submit te doen, terwijl hij niet bestaat kan je deze notice krijgen. je zou kunnen checken op if (isset($sumbit) && $submit == "sign!") ...

[ Voor 4% gewijzigd door Verwijderd op 19-11-2004 11:59 ]


Acties:
  • 0 Henk 'm!

  • degroot
  • Registratie: December 2003
  • Niet online
ohkee ik zal voor de duidelijk ook ff de andere codes weergeven
dit is de index(sign.php) van het gastenboek
code:
1
2
3
4
5
6
7
8
9
10
11
<h2>teken ons gastenboek</h2>
<form method=POST action="create_entry.php">
<b>naam:</b><input type=text size=40 name=name><br>
<b>location</b><input type=text size=40 name=location><br>
<b>email</b><input type=text size=40 name=email><br>
<b>home page</b><input type=text size=40 name=url><br>
<b>comments:</b><textarea name =comments cols=40 rows=4 wrap=virtual></textarea><br>

<input type=submit name=submit value="sign!">
<input type= reset value="overnieuw">
</form>

hier gaat ie dus naar toe als ie de $submit niet kan vinden dacht ik ivm met de 'else' die erin voorkomt

nu komt ie dus als het ware in een loop

[ Voor 20% gewijzigd door degroot op 19-11-2004 12:01 ]

www.degroot-it.nl


Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

Ligt dit niet gewoon aan register-/supglobals?
Probeer eens if( isset($_POST['submit']) ) i.p.v. je huidige if?

United we stand, and divided we fall


Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Geef deze knop een andere naam:
code:
1
<input type=submit name=submit value="sign!">

Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 00:18
http://www.php.net/isset daarmee kun je veel van zulke errors verkomen :)

|>


Acties:
  • 0 Henk 'm!

Verwijderd

kijk ik nu scheel of staat er &comments?
moet dit niet $comments zijn?

Acties:
  • 0 Henk 'm!

  • degroot
  • Registratie: December 2003
  • Niet online
blizt schreef op vrijdag 19 november 2004 @ 11:59:
Ligt dit niet gewoon aan register-/supglobals?
Probeer eens if( isset($_POST['submit']) ) i.p.v. je huidige if?
ohkee bedankt dit werkt wel maar ik had daar "sign!" staan ipv van " submit" 8)7
want ik wist dus niet dat daar submit moest staan
dank u
Verwijderd schreef op vrijdag 19 november 2004 @ 12:03:
kijk ik nu scheel of staat er &comments?
moet dit niet $comments zijn?
haha nee je kijkt niet scheel
is idd ook al foutje 8)7
haha dank u voor de opmerking

[ Voor 31% gewijzigd door degroot op 19-11-2004 12:04 ]

www.degroot-it.nl


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

blizt schreef op vrijdag 19 november 2004 @ 11:59:
Ligt dit niet gewoon aan register-/supglobals?
Probeer eens if( isset($_POST['submit']) ) i.p.v. je huidige if?
Zeer waarschijnlijk is het dat ja.

* NMe begint een beetje moe te worden van al die verouderde tutorials op het web. :/

[ Voor 3% gewijzigd door NMe op 19-11-2004 12:04 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

No problem :)
Is overigens al aardig vaak langsgekomen hoor ... Staat ook gewoon op php.net als je even goed kijkt.

offtopic:
Je leest trouwens in 3 boeken tegelijk? Is dat wel handig?

United we stand, and divided we fall


Acties:
  • 0 Henk 'm!

  • degroot
  • Registratie: December 2003
  • Niet online
Notice: Undefined variable: name in C:\website's\php\create_entry.php on line 15

Notice: Undefined variable: location in C:\website's\php\create_entry.php on line 15

Notice: Undefined variable: email in C:\website's\php\create_entry.php on line 15

Notice: Undefined variable: url in C:\website's\php\create_entry.php on line 15

Notice: Undefined variable: comments in C:\website's\php\create_entry.php on line 15

nu krijg ik dze undifenid variables
deze variable staan in de mysql database
maar is geen mogeljikheid dan om die ook zo [''] weg te zettten?


edit:
offtopic:
jah idd is ook een beetje moeilijk 8)7
want ik wil teveel tegeljik denk ik
als je wilt weten welke boeken? php in 24 hours, php for dummies en mysql/php database applications

[ Voor 23% gewijzigd door degroot op 19-11-2004 12:09 ]

www.degroot-it.nl


Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

Line 15? Is dat waar dit staat:
code:
1
        ('$name', '$location', '$email', '$url', '&comments')"

?
If so: zelfde manier hè ....
Desnoods doe je dit maar ff:
PHP:
1
2
3
<?php
$name = $_POST['name'];
?>

Let wel op voor SQL Injection op die manier....

United we stand, and divided we fall


Acties:
  • 0 Henk 'm!

  • degroot
  • Registratie: December 2003
  • Niet online
ohw komt zo beetje lulig over jah
want ik heb de standaard html tags niet mee gekopieerd
maar dat is idd die regel
ik ga het even proberen
bedankt voor de reacties allemaal
blizt schreef op vrijdag 19 november 2004 @ 12:08:
Let wel op voor SQL Injection op die manier....
:S:S ho ho nog niet te moeiljike taal he
ben pas net met mysql bezig :9

[ Voor 41% gewijzigd door degroot op 19-11-2004 12:15 ]

www.degroot-it.nl


Acties:
  • 0 Henk 'm!

Verwijderd

Wat je ook kan doen is checken of de pagina is aangevraagd via de POST methode. (in andere woorden, checken of het formulier gesubmit is via POST method)

PHP:
1
2
3
4
5
if ($_SERVER['REQUEST_METHOD'] == "POST") {
    // do stuff that needs to be done when form is posted
    $username = $_POST['username'];
    // etc etc
}
Als je dit doet dan hoef je je submit knop in je formulier ook geen naam te geven, dan kan je gewoon het volgende neerzetten:
HTML:
1
<input type="submit" value="sign!">

[ Voor 8% gewijzigd door Verwijderd op 19-11-2004 12:30 ]


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:14

Creepy

Tactical Espionage Splatterer

degroot: kijk ook eens op P&W FAQ - Algemeen en dan met name het stukje over debuggen.
En bekijk voor de gein ook eens: P&W FAQ - PHP en dan met name het stukje over het niet werken van forms

Ik denk dat de meeste problemen die je nu hebt wel uitgelegd staan ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • degroot
  • Registratie: December 2003
  • Niet online
ohkee bedankt voor jullie reply's allemaal
ik ben weer een heel stuk verder gekomen
ook dankzij de faq's

www.degroot-it.nl


Acties:
  • 0 Henk 'm!

  • degroot
  • Registratie: December 2003
  • Niet online
hmmm nog een vaag iets aan me script(ik zweer dit is het laatste dan stop ik met jullie erover lastig te vallen :9 )

nu moet onderstaande code mijn database uitlezen.
dat doet ie ook maar niet de ingetypte info. je ziet dus alleen:

name:
location:
email:
url:
comments:

maar wat de gebruiker heeft ingevoerd is helaas niet zichtbaas:(:(

wel komt er iedere x het bovenste rijtje eronder te staan als ik het formulier opnieuw invul maar uiteraard weer zonder informatie
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
<?php
$result = mysql_query("select* from gastboek") or
    die (mysql_error());
while ($row = mysql_fetch_array($result))
{
echo"<b>name:</b>";
echo $row["name"];
echo "<br>\n";
echo"<b>location:</b>";
echo $row["location"];
echo "<br>\n";
echo"<b>email:</b>";
echo $row["email"];
echo "<br>\n";
echo"<b>url:</b>";
echo $row["url"];
echo "<br>\n";
echo"<b>comments:</b>";
echo $row["comments"];
echo "<br>\n";
echo "<br>\n";
echo "<br>\n";
}
mysql_free_result($result);
?>

www.degroot-it.nl


Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

Heb je wel gekeken met bv. de MySQL command line of PHPMyAdmin of er wel data in je tabellen zit?
Wat geeft mysql_num_rows($result) bv.?

United we stand, and divided we fall


Acties:
  • 0 Henk 'm!

  • degroot
  • Registratie: December 2003
  • Niet online
ik snap niet goed wat je bedoelde
phpmyadmin gebruik ik niet maar is dat hetzelfde als
winmysqladmin 1.4?
dan heb ik hier ff een plaatje ingevoed met de informatie die het programma weergeeft.
http://images.cu2.nl/cu2.nl/149/686/9/pics/0.jpg

njah kwee nie hoe jullie da altijd voor elkaar krijgen maar de lionk is iig clickable
en als nog steeds die gare foto van mij in beeld komt ff melden dan want dan geef ik de link van me cu2 want dat uploaden gaat nooit lekker maar daar staat het plaatje iig al geupload :9 8)7

[ Voor 82% gewijzigd door degroot op 19-11-2004 19:21 ]

www.degroot-it.nl


Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

Die link gaat niet werken ben ik bang ;)
Het is overigens niet hetzelfde afaik (winmysqladmin is toch mnet dat verkeerslichtje? :+), maar dat maakt niet uit.
Je kan nog steeds 'n mysql_num_rows() doen.

United we stand, and divided we fall


Acties:
  • 0 Henk 'm!

  • degroot
  • Registratie: December 2003
  • Niet online
met mysql_num_rows krijg ik het volgende terug in de browser:
5 Rows
dus als ik het goed begrijp bevat bij database dus wel rijen ?

www.degroot-it.nl


Acties:
  • 0 Henk 'm!

Verwijderd

NMe84 schreef op vrijdag 19 november 2004 @ 12:04:
[...]

Zeer waarschijnlijk is het dat ja.

/me begint een beetje moe te worden van al die verouderde tutorials op het web. :/
Inderdaad.

Toen ik net met PHP begon was dat ook de reden waarom ik het gelijk opgaf (om het een jaar later nog eens te proberen, met succes). Het zou eigenlijk verboden moeten worden, dat elke idioot een slechte tutorial online mag zetten :(.

Acties:
  • 0 Henk 'm!

  • degroot
  • Registratie: December 2003
  • Niet online
Verwijderd schreef op vrijdag 19 november 2004 @ 19:53:
[...]

Inderdaad.

Toen ik net met PHP begon was dat ook de reden waarom ik het gelijk opgaf (om het een jaar later nog eens te proberen, met succes). Het zou eigenlijk verboden moeten worden, dat elke idioot een slechte tutorial online mag zetten :(.
klopt is inderdaad ook waar
word gewoon irritant
maar ik heb 3 boeken tot mijn besckikken en kijk op php.net(waar ik overigens niet altijd wa van snap maar dat zal mijn beginnerservaring wel zijn)
en daar staat toch hier en daar ook wel een foutje in
maar weer ontopic plz :D

www.degroot-it.nl


Acties:
  • 0 Henk 'm!

  • degroot
  • Registratie: December 2003
  • Niet online
sorry sorry sorry maar kom er nog steeds niet aan uit.
niet met php.net
niet met google
niet met jullie faq O+ O+ O+ (shame on me)

ik heb de volgende maniere geprobeerd om de variabelen te definieren
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
include("dbconnect.php");
if( isset($_POST['submit']) )
{
    $query = "insert into gastboek
        (name, location, email, url, comments) values
        "$name=$_POST['name']" , "$location=$_POST['location']", "$email=$_POST['email']", "$url=$_POST['url']",
        "$comments=$_POST['comments']"
        ;
        mysql_query($query) or
            die (mysql_error());
?>

dit ook zonder die double quotations

maar kom er helaas niet aan uit 8)7 8)7
iemand die mij misschien kan helpen???

www.degroot-it.nl


Acties:
  • 0 Henk 'm!

  • Tsunami
  • Registratie: Juni 2002
  • Niet online
Ik geloof dat het niet zo bedoeld werd, maar meer zo:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
include("dbconnect.php");
if (isset($_POST['submit'])) {
  $name     = $_POST["name"];
  $location = $_POST["location"];
  $email    = $_POST["email"];
  $url      = $_POST["url"];
  $comments = $_POST["comments"];
  $query    = "INSERT INTO gastboek (name, location, email, url, comments)
               VALUES ("$name", "$location", "$email", "$url", "$comments")";
  mysql_query($query) or die(mysql_error());
}
?>

[ Voor 58% gewijzigd door Tsunami op 20-11-2004 15:20 ]


Acties:
  • 0 Henk 'm!

  • degroot
  • Registratie: December 2003
  • Niet online
hey bedankt het werkt maar
in de volgende regel:
PHP:
1
("$name", "$location", "$email", "$url", "$comments")"

moet het allemaal enkele komma's zijn ;)
maat het werkt iig en toch bedankt:D:D

www.degroot-it.nl


Acties:
  • 0 Henk 'm!

Verwijderd

PHP:
1
2
$query    = "INSERT INTO gastboek (name, location, email, url, comments) 
VALUES ('".$name."', '".$location."', '".$email."', '".$url."', '".$comments."')";

Zo zou ik het doen...

[ Voor 35% gewijzigd door Verwijderd op 20-11-2004 16:10 ]

Pagina: 1