Notice: Undefined variable:
het gaat om deze regel if(!$submit){
iemand een clue
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
?>
<?
require("config.php");
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
if(!$submit){
?>
Velden met een * zijn verplicht...
<form method="POST" action="<? echo $PHP_SELF ?>">
<input type="hidden" name="submit" value="1">
Naam:<br>
<input type="text" name="naam" size="30"> *<br>
Email adres:<br>
<input type="text" name="email" size="30"> *<br>
Homepage:<br>
<input type="text" name="homepage" size="30" value="http://"><br>
Woonplaats:<br>
<input type="text" name="woonplaats" size="30"><br>
Geboortedatum ( dd-mm-jjjj ):<br>
<input type="text" name="geb1" size="2" maxlength="2"> -
<input type="text" name="geb2" size="2" maxlength="2"> -
<input type="text" name="geb3" size="4" maxlength="4"><br>
Hobby's:<br>
<textarea name="hobbys" rows="3"></textarea><br>
Favo drankje(s):<br>
<input type="text" name="drank"><br>
Favo artiest(en):<br>
<input type="text" name="artiest"><br>
Favo film:<br>
<input type="text" name="film"><br>
Geslacht:<br>
<select size="1" name="geslacht">
<option value="Man">Man</option>
<option value="Vrouw">Vrouw</option>
<option value="Weet ik niet">Weet ik niet</option>
</select><br>
Relatie:<br>
<select size="1" name="relatie">
<option value="1">Ja</option>
<option value="0">Nee</option>
<option value="2">Binnenkort</option>
</select><br>
Priv- berichten:<br>
<select size="1" name="pm">
<option value="1">Aan</option>
<option value="0">Uit</option>
</select><br>
<br>
Gewenste gebruikersnaam:<br>
<input type="text" name="gebruikersnaam" size="25"> *<br>
Wachtwoord:<br>
<input type="password" name="wachtwoord" size="12" maxlength="12"> *<br>
Wachtwoord [ bevestig ]:<br>
<input type="password" name="wachtwoord2" size="12" maxlength="12"> *<br>
<input type="submit" value="Aanmelden"> <input type="reset" value="Wis velden"></p>
</form>
<?
}
else{
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam'");
$result = mysql_num_rows($query);
if($result){
?>
Deze gebruikersnaam is al in gebruik<br><br>
<a href="javascript:history.go(-1)">Ga terug</a>
<?
}
else{
if($naam AND $email AND $gebruikersnaam AND $gebruikersnaam){
if($wachtwoord!=$wachtwoord2){
echo "De wachtwoorden zijn niet gelijkt aan elkaar";
}
else{
$geboortedatum = "$geb1-$geb2-$geb3";
$tekens=array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
$activeringscode;
for($c = 0; $c < 12; $c++){
srand((double)microtime() * 100000000000000);
$pass = $tekens[rand(0, 62)];
$activeringscode=$activeringscode.$pass;
}
if($actmail=="1"){
$activeringscode = 0;
}
elseif($actmail=="2"){
$activeringscode = 1;
}
mysql_query("INSERT INTO members (gebruikersnaam,wachtwoord,naam,email,homepage,geboortedatum,woonplaats,favodrankje,favoartiest,favofilm,hobbys,geslacht,relatie,geactiveerd,pm) VALUES ('$gebruikersnaam','$wachtwoord','$naam','$email','$homepage','$geboortedatum','$woonplaats', '$drank', '$artiest','$film','$hobbys','$geslacht','$relatie','$activeringscode','$pm')") or die(mysql_error());
$bericht = "Via onze website heb jij (als het goed is) een aanmeldingsformulier ingevuld waarmee je een lid van onze
website wordt, als dit niet het geval is kun je dit mailtje het beste verwijderen.\n\nAls je je wel wilt aanmelden voor een
account op onze website moet je op de onderstaande url klikken om je account te activeren:\n\n
<a href=\"$script_url/activeer.php?activate=$activeringscode\">$script_url/activeer.php?activate=$activeringscode</a>\n\nMet vriendelijke groet
Webmaster $webmaster_url";
if($actmail=="1"){
mail("$webmaster_email","Activeer nu je account $naam !","$bericht");
echo "De aanmelding is succesvol gelukt, er word nu een mailtje verstuurd aan <b>$email</b> waarin de activerings url staat...";
}
elseif($actmail=="2"){
echo "Je account is geactiveerd, je kunt nu inloggen...";
}
else{
echo "De aanmelding is gelukt, het is nu aan de webmaster om te beslissen of hij/zij je accepteerd als member van deze website...";
}
}
}
else{
?>
Je hebt niet alle verplichte velden ingevuld...<br><br>
<a href="javascript:history.go(-1)">Ga terug</a>
<?
}
}
}
?>
error_reporting(E_ALL);
ini_set("display_errors", 1);
?>
<?
require("config.php");
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
if(!$submit){
?>
Velden met een * zijn verplicht...
<form method="POST" action="<? echo $PHP_SELF ?>">
<input type="hidden" name="submit" value="1">
Naam:<br>
<input type="text" name="naam" size="30"> *<br>
Email adres:<br>
<input type="text" name="email" size="30"> *<br>
Homepage:<br>
<input type="text" name="homepage" size="30" value="http://"><br>
Woonplaats:<br>
<input type="text" name="woonplaats" size="30"><br>
Geboortedatum ( dd-mm-jjjj ):<br>
<input type="text" name="geb1" size="2" maxlength="2"> -
<input type="text" name="geb2" size="2" maxlength="2"> -
<input type="text" name="geb3" size="4" maxlength="4"><br>
Hobby's:<br>
<textarea name="hobbys" rows="3"></textarea><br>
Favo drankje(s):<br>
<input type="text" name="drank"><br>
Favo artiest(en):<br>
<input type="text" name="artiest"><br>
Favo film:<br>
<input type="text" name="film"><br>
Geslacht:<br>
<select size="1" name="geslacht">
<option value="Man">Man</option>
<option value="Vrouw">Vrouw</option>
<option value="Weet ik niet">Weet ik niet</option>
</select><br>
Relatie:<br>
<select size="1" name="relatie">
<option value="1">Ja</option>
<option value="0">Nee</option>
<option value="2">Binnenkort</option>
</select><br>
Priv- berichten:<br>
<select size="1" name="pm">
<option value="1">Aan</option>
<option value="0">Uit</option>
</select><br>
<br>
Gewenste gebruikersnaam:<br>
<input type="text" name="gebruikersnaam" size="25"> *<br>
Wachtwoord:<br>
<input type="password" name="wachtwoord" size="12" maxlength="12"> *<br>
Wachtwoord [ bevestig ]:<br>
<input type="password" name="wachtwoord2" size="12" maxlength="12"> *<br>
<input type="submit" value="Aanmelden"> <input type="reset" value="Wis velden"></p>
</form>
<?
}
else{
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam'");
$result = mysql_num_rows($query);
if($result){
?>
Deze gebruikersnaam is al in gebruik<br><br>
<a href="javascript:history.go(-1)">Ga terug</a>
<?
}
else{
if($naam AND $email AND $gebruikersnaam AND $gebruikersnaam){
if($wachtwoord!=$wachtwoord2){
echo "De wachtwoorden zijn niet gelijkt aan elkaar";
}
else{
$geboortedatum = "$geb1-$geb2-$geb3";
$tekens=array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
$activeringscode;
for($c = 0; $c < 12; $c++){
srand((double)microtime() * 100000000000000);
$pass = $tekens[rand(0, 62)];
$activeringscode=$activeringscode.$pass;
}
if($actmail=="1"){
$activeringscode = 0;
}
elseif($actmail=="2"){
$activeringscode = 1;
}
mysql_query("INSERT INTO members (gebruikersnaam,wachtwoord,naam,email,homepage,geboortedatum,woonplaats,favodrankje,favoartiest,favofilm,hobbys,geslacht,relatie,geactiveerd,pm) VALUES ('$gebruikersnaam','$wachtwoord','$naam','$email','$homepage','$geboortedatum','$woonplaats', '$drank', '$artiest','$film','$hobbys','$geslacht','$relatie','$activeringscode','$pm')") or die(mysql_error());
$bericht = "Via onze website heb jij (als het goed is) een aanmeldingsformulier ingevuld waarmee je een lid van onze
website wordt, als dit niet het geval is kun je dit mailtje het beste verwijderen.\n\nAls je je wel wilt aanmelden voor een
account op onze website moet je op de onderstaande url klikken om je account te activeren:\n\n
<a href=\"$script_url/activeer.php?activate=$activeringscode\">$script_url/activeer.php?activate=$activeringscode</a>\n\nMet vriendelijke groet
Webmaster $webmaster_url";
if($actmail=="1"){
mail("$webmaster_email","Activeer nu je account $naam !","$bericht");
echo "De aanmelding is succesvol gelukt, er word nu een mailtje verstuurd aan <b>$email</b> waarin de activerings url staat...";
}
elseif($actmail=="2"){
echo "Je account is geactiveerd, je kunt nu inloggen...";
}
else{
echo "De aanmelding is gelukt, het is nu aan de webmaster om te beslissen of hij/zij je accepteerd als member van deze website...";
}
}
}
else{
?>
Je hebt niet alle verplichte velden ingevuld...<br><br>
<a href="javascript:history.go(-1)">Ga terug</a>
<?
}
}
}
?>
$submit wordt nergens aangeroepen maar opeens gebruikt, dus geeft hij een notice daarover
Tedd schreef op 07.02.2009 19:31:
iemand een clue
Ja, google: Notice: Undefined variable:
Wat je doet is harstikke fout, ga dit leren:
PHP Beginnershandleiding.
$submit = "";
Je gebruikt een variabele die voor het script 'zomaar' uit de lucht komt vallen.
Arnold schreef op 07.02.2009 20:17:
Je foutmelding (waarchuwing) zal verdwijnen als je op regel 9 invoegt:
$submit = "";
Je gebruikt een variabele die voor het script 'zomaar' uit de lucht komt vallen.
$submit = "";
Je gebruikt een variabele die voor het script 'zomaar' uit de lucht komt vallen.
Heel leuk. Maar volgens mij is het de bedoeling dat die $submit moet kijken of die form is gesubmit. Dat gaat op deze manier niet werken. En ook niet op die van jouw.
Leer die php beginnershandleiding, jij ook Arnold.
Ga eens inspringen, dan zien we tenminste wat je doet. En volg Karls tip alsjeblieft op!
Sorry. Wellicht heeft Karl gelijk: het is in ieder geval onduidelijk waar die $submit vandaan komt.
Ik doe nog maar een poging om mee te denken:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
if (!$submit) {
echo "hallo";
}
?>
error_reporting(E_ALL);
ini_set("display_errors", 1);
if (!$submit) {
echo "hallo";
}
?>
Geeft eenzelfde soort melding:
Notice: Undefined variable: submit in /Applications/MAMP/htdocs/test.php on line 4
Echter:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
if (!isset($submit)) {
echo "hallo";
}
?>
error_reporting(E_ALL);
ini_set("display_errors", 1);
if (!isset($submit)) {
echo "hallo";
}
?>
Geen foutmeldingen. Misschien kom je nu (en na het lezen van die handleiding natuurlijk ;-)) weer wat verder!
PS. Met PDT ECLIPSE kun je het opmaken / formatten van je code automatisch laten doen. Dan zijn alle inspring-regels direct netjes.
Gewijzigd op 01/01/1970 01:00:00 door Arnold C
@Arnold: Het wordt nog niet genoemd, echter iedereen doelt hier op het gebruik van superglobals. Dit script is gewoon oud en onveilig.
ik heb het script ook niet zelf geschreven dit heb ik gevonden maar het werkt dus niet meer is teveel verouderd bedankt zoek toc nog steeds zoeiets als dit een membet login systeem met profiel mogelijkheid ben niet in de stemming om dit zelf te schrijven helaas
@SanThe: dank, dat helpt. Dan zouden we Tedd nog het meeste helpen door em uit te leggen waarom dit script onveilig is.
geloof graag dat het onveilig is maar heb het dus niet zelf geschreven snap wel iets van php globaal maar breek er nog steeds niet in door helaas daar baal ik heel erg van
@Tedd: Lees die tutorial even door. Op zich is dat niet zoveel werk. Dan snap je in ieder geval de basics. Daarna ga je gewoon dit script aanpassen. Het is niet echt heel veel werk, maar wij proberen te helpen en niet de scripts voor je te maken.
ja bedankt heb trouwens al heel wat over gelezen btw maar ben nu al hele dag bezig ermee ga zo maffen morgen weer een nieuwe kans op hopelijk wat voorruitgang btw zit er gewoon een beetje vast in hebben jullie programmeurs dit dan wel snel geleerd of is hier ook wat tijd overheen gegaan
Ik ben in 1982 begonnen. Dus ja, er zit ondertussen al wat tijd in. ;)