Variabel definiëren (inlog- en registratie script)
Notice: Undefined index: actie in C:\wamp\www\login.php on line 8
Notice: Undefined index: actie in C:\wamp\www\login.php on line 30
Waarschijnlijk moet variabel 'actie' definiëren. Kan iemand helpen hoe?
Quote:
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
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
<?php
// sql connectie includen
include('contactdb.php');
// waar moet de bezoeker heengestuurd worden nadat hij/zij succesvol ingelogd is ?
$redirect_pagina = "pagina.php";
if ($_GET['actie'] == 'inloggen') {
// als inlogformulier is verstuurd
$sql = "SELaECT * FROM members WHERE inlognaam='".$_POST['inlognaam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$aantal = mysql_num_rows($resultaat);
if ($aantal == '0') {
// als er geen resultaat is gevonden
echo "Het door u ingevulde inlognaam bestaat niet.";
} else {
$login = mysql_fetch_object($resultaat);
$login->passwoord;
$login->inlognaam;
if($_POST['passwoord'] == $login->passwoord) {
// als gegevens kloppen met gegevens uit database, cookies setten en doorsturen!
setcookie("inlognaam", $_POST['inlognaam'], time() + 60*60); // cookie blijft 60 keer 60 seconden bestaan
setcookie("passwoord", $_POST['wachtwoord'], time() + 60*60);
echo "U bent succesvol ingelogd, een moment.. <META HTTP-EQUIV=\"REFRESH\" CONTENT=\"2; URL=".$redirect_pagina."\">";
} else {
echo "Uw inloggegevens kloppen niet, klik <a href=\"".$_SERVER['PHP_SELF']."\">hier</a> om nogmaals te proberen.";
}
}
} else if ($_GET['actie'] == 'registreren') {
// als men zich wil registreren
if ($_GET['versturen'] == 'ja') {
// als formulier reeds is verstuurd
if (empty($_POST['inlognaam'])) {
echo "Je hebt geen inlognaam ingevuld, <a href=\"".$_SERVER['PHP_SELF']."?actie=registreren\">Probeer nogmaals</a>.";
} else if (empty($_POST['passwoord'])) {
echo "Je hebt geen passwoord ingevuld, <a href=\"".$_SERVER['PHP_SELF']."?actie=registreren\">Probeer nogmaals</a>.";
} else if (empty($_POST['passwoord_controle'])) {
echo "Je moet ter controle ook het controleveld voor het passwoord invullen, <a href=\"".$_SERVER['PHP_SELF']."?actie=registreren\">Probeer nogmaals</a>.";
} else {
if ($_POST['passwoord'] != $_POST['passwoord_controle']) {
echo "De ingevoerde passwoorden kwamen niet overeen, <a href=\"".$_SERVER['PHP_SELF']."?actie=registreren\">Probeer nogmaals</a>.";
} else {
$registreer = "INSERT INTO members (inlognaam, passwoord) VALUES ('".$_POST['inlognaam']."', '".$_POST['passwoord']."')";
mysql_query($registreer) or die(mysql_error());
echo "Uw gegevens zijn succesvol opgeslagen! Klik <a href=\"".$_SERVER['PHP_SELF']."\">hier</a> om in te kunnen loggen.";
}
}
} else {
// als formulier nog niet is verstuurd, toon registratieformulier
echo "<form action=\"".$_SERVER['PHP_SELF']."?actie=registreren&versturen=ja\" method=\"post\">
<table>
<tr><th colspan=\"2\">Registreren</th></tr>
<tr><td>Inlognaam</td><td><input type=\"text\" name=\"inlognaam\" size=\"15\"></td></tr>
<tr><td>Passwoord</td><td><input type=\"password\" name=\"passwoord\" size=\"15\"></td></tr>
<tr><td>Passwoord <small>(controle)</small></td><td><input type=\"password\" name=\"passwoord_controle\" size=\"15\"></td></tr>
<tr><td></td><td><input type=\"submit\" value=\"Registreer\"></td></tr>
</table></form>";
}
} else {
// inlogformulier
echo "<form action=\"".$_SERVER['PHP_SELF']."?actie=inloggen\" method=\"post\">
<table>
<tr><th colspan=\"2\">Inloggen</th></tr>
<tr><td>Inlognaam</td><td><input type=\"text\" name=\"inlognaam\" size=\"15\"></td></tr>
<tr><td>Passwoord</td><td><input type=\"password\" name=\"passwoord\" size=\"15\"></td></tr>
<tr><td></td><td><input type=\"submit\" value=\"Inloggen\"></td></tr>
<tr><td></td><td><a href=\"".$_SERVER['PHP_SELF']."?actie=registreren\">Registreren</a></td></tr>
</table></form>";
}
?>
// sql connectie includen
include('contactdb.php');
// waar moet de bezoeker heengestuurd worden nadat hij/zij succesvol ingelogd is ?
$redirect_pagina = "pagina.php";
if ($_GET['actie'] == 'inloggen') {
// als inlogformulier is verstuurd
$sql = "SELaECT * FROM members WHERE inlognaam='".$_POST['inlognaam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$aantal = mysql_num_rows($resultaat);
if ($aantal == '0') {
// als er geen resultaat is gevonden
echo "Het door u ingevulde inlognaam bestaat niet.";
} else {
$login = mysql_fetch_object($resultaat);
$login->passwoord;
$login->inlognaam;
if($_POST['passwoord'] == $login->passwoord) {
// als gegevens kloppen met gegevens uit database, cookies setten en doorsturen!
setcookie("inlognaam", $_POST['inlognaam'], time() + 60*60); // cookie blijft 60 keer 60 seconden bestaan
setcookie("passwoord", $_POST['wachtwoord'], time() + 60*60);
echo "U bent succesvol ingelogd, een moment.. <META HTTP-EQUIV=\"REFRESH\" CONTENT=\"2; URL=".$redirect_pagina."\">";
} else {
echo "Uw inloggegevens kloppen niet, klik <a href=\"".$_SERVER['PHP_SELF']."\">hier</a> om nogmaals te proberen.";
}
}
} else if ($_GET['actie'] == 'registreren') {
// als men zich wil registreren
if ($_GET['versturen'] == 'ja') {
// als formulier reeds is verstuurd
if (empty($_POST['inlognaam'])) {
echo "Je hebt geen inlognaam ingevuld, <a href=\"".$_SERVER['PHP_SELF']."?actie=registreren\">Probeer nogmaals</a>.";
} else if (empty($_POST['passwoord'])) {
echo "Je hebt geen passwoord ingevuld, <a href=\"".$_SERVER['PHP_SELF']."?actie=registreren\">Probeer nogmaals</a>.";
} else if (empty($_POST['passwoord_controle'])) {
echo "Je moet ter controle ook het controleveld voor het passwoord invullen, <a href=\"".$_SERVER['PHP_SELF']."?actie=registreren\">Probeer nogmaals</a>.";
} else {
if ($_POST['passwoord'] != $_POST['passwoord_controle']) {
echo "De ingevoerde passwoorden kwamen niet overeen, <a href=\"".$_SERVER['PHP_SELF']."?actie=registreren\">Probeer nogmaals</a>.";
} else {
$registreer = "INSERT INTO members (inlognaam, passwoord) VALUES ('".$_POST['inlognaam']."', '".$_POST['passwoord']."')";
mysql_query($registreer) or die(mysql_error());
echo "Uw gegevens zijn succesvol opgeslagen! Klik <a href=\"".$_SERVER['PHP_SELF']."\">hier</a> om in te kunnen loggen.";
}
}
} else {
// als formulier nog niet is verstuurd, toon registratieformulier
echo "<form action=\"".$_SERVER['PHP_SELF']."?actie=registreren&versturen=ja\" method=\"post\">
<table>
<tr><th colspan=\"2\">Registreren</th></tr>
<tr><td>Inlognaam</td><td><input type=\"text\" name=\"inlognaam\" size=\"15\"></td></tr>
<tr><td>Passwoord</td><td><input type=\"password\" name=\"passwoord\" size=\"15\"></td></tr>
<tr><td>Passwoord <small>(controle)</small></td><td><input type=\"password\" name=\"passwoord_controle\" size=\"15\"></td></tr>
<tr><td></td><td><input type=\"submit\" value=\"Registreer\"></td></tr>
</table></form>";
}
} else {
// inlogformulier
echo "<form action=\"".$_SERVER['PHP_SELF']."?actie=inloggen\" method=\"post\">
<table>
<tr><th colspan=\"2\">Inloggen</th></tr>
<tr><td>Inlognaam</td><td><input type=\"text\" name=\"inlognaam\" size=\"15\"></td></tr>
<tr><td>Passwoord</td><td><input type=\"password\" name=\"passwoord\" size=\"15\"></td></tr>
<tr><td></td><td><input type=\"submit\" value=\"Inloggen\"></td></tr>
<tr><td></td><td><a href=\"".$_SERVER['PHP_SELF']."?actie=registreren\">Registreren</a></td></tr>
</table></form>";
}
?>
isset() om te kijken of ie wel bestaat.
Zie boven line 8 zetten en afsluiten net boven de laatste else
Gewijzigd op 30/01/2011 17:14:37 door Jason van der Zeeuw
@Jazon, lekker handig hoor z'n oplossing.......... zal je het niet gewoon als eerste toevoegen aan de if van regel 8
Het woord SELaECT moet zijn SELECT!
en dan ook aan de else if van regel 30
en de regels waarbij empty() gebruikt wordt is ook niet zoals het behoort
if (isset($_POST['...']) && strlen($_POST['...']) >= x) {
zal het al een stuk beter doen
er zijn ook nog functies als:
ctype_
preg_
om de inhoudsverwachting beter te cotroleren
Toevoeging op 30/01/2011 18:08:35:
En een wachtwoord zet je nooit in een cookie().
Door jullie input is mijn probleem opgelost. Bedankt allemaal.
Noppes Homeland op 30/01/2011 18:02:12:
om de inhoudsverwachting beter te cotroleren
Met de verwachting zal het echt wel goed zitten hoor ;)