Inlog systeem werkt niet
Hier is de code:
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
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
<?
session_start();
include ("config.php");
//opschonen db
$datum = date("Y-m-d-H-i");
$queryv = mysql_query("DELETE FROM login WHERE time < '$datum'");
if($submit){
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam' AND wachtwoord = '$wachtwoord' AND geactiveerd = '1'");
$result = mysql_num_rows($query);
if(!$result){
$a = "<p align=\"center\" class=\"style1\">Gebruikersnaam en/of Wachtwoord is/zijn incorrect.<br>Of je bent vergeten om je account te activeren...<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a></p>";
}
else{
while($object = mysql_fetch_object($query)){
$memberid = $object->memberid;
$id = md5($memberid);
}
$login = 1;
$ip = $_SERVER[REMOTE_ADDR];
$datum = date("Y-m-d-H-i");
$Y= substr($datum, 0,4); $m = substr($datum, 5,2); $d= substr($datum, 8,2); $H = substr($datum, 11,2); $i = substr($datum, 14,2);
$time = date("Y-m-d-H-i", mktime($H+1, $i, 0, $m, $d, $Y));
$insertquery = mysql_query("INSERT INTO login (ip, time, user) VALUES ('$ip', '$time', '$id')");
session_register("login");
session_register("memberid");
echo "<script language=\"JavaScript\">window.location=\"../index.php?id=".$id."&name=leden\";</script>";
//header("Location: ../index.php?id=".$id."&name=leden");
}
}
else{
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
if(!$login){
$a = "<form method=\"POST\" action=\"$PHP_SELF\">
<input type=\"hidden\" name=\"submit\" value=\"1\">
Naam:<br>
<input type=\"text\" name=\"gebruikersnaam\" size=\"20\" value=\"$gebruikersnaam\"><br>
Wachtwoord:<br>
<input type=\"password\" name=\"wachtwoord\" size=\"20\"><br>
<input type=\"submit\" value=\"Login\"> <input type=\"reset\" value=\"Aanmelden\"
onclick=\"document.location.href=('aanmelden.php')\">
</form>";
}
else{
header("Location: index.php");
}
}
// Op de plaats in je layout waar je het inlogformulier wilt hebben doe je ( echo $a; )
echo $a;
?>
session_start();
include ("config.php");
//opschonen db
$datum = date("Y-m-d-H-i");
$queryv = mysql_query("DELETE FROM login WHERE time < '$datum'");
if($submit){
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam' AND wachtwoord = '$wachtwoord' AND geactiveerd = '1'");
$result = mysql_num_rows($query);
if(!$result){
$a = "<p align=\"center\" class=\"style1\">Gebruikersnaam en/of Wachtwoord is/zijn incorrect.<br>Of je bent vergeten om je account te activeren...<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a></p>";
}
else{
while($object = mysql_fetch_object($query)){
$memberid = $object->memberid;
$id = md5($memberid);
}
$login = 1;
$ip = $_SERVER[REMOTE_ADDR];
$datum = date("Y-m-d-H-i");
$Y= substr($datum, 0,4); $m = substr($datum, 5,2); $d= substr($datum, 8,2); $H = substr($datum, 11,2); $i = substr($datum, 14,2);
$time = date("Y-m-d-H-i", mktime($H+1, $i, 0, $m, $d, $Y));
$insertquery = mysql_query("INSERT INTO login (ip, time, user) VALUES ('$ip', '$time', '$id')");
session_register("login");
session_register("memberid");
echo "<script language=\"JavaScript\">window.location=\"../index.php?id=".$id."&name=leden\";</script>";
//header("Location: ../index.php?id=".$id."&name=leden");
}
}
else{
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
if(!$login){
$a = "<form method=\"POST\" action=\"$PHP_SELF\">
<input type=\"hidden\" name=\"submit\" value=\"1\">
Naam:<br>
<input type=\"text\" name=\"gebruikersnaam\" size=\"20\" value=\"$gebruikersnaam\"><br>
Wachtwoord:<br>
<input type=\"password\" name=\"wachtwoord\" size=\"20\"><br>
<input type=\"submit\" value=\"Login\"> <input type=\"reset\" value=\"Aanmelden\"
onclick=\"document.location.href=('aanmelden.php')\">
</form>";
}
else{
header("Location: index.php");
}
}
// Op de plaats in je layout waar je het inlogformulier wilt hebben doe je ( echo $a; )
echo $a;
?>
Gewijzigd op 01/01/1970 01:00:00 door EricW.
euhm, wat werkt er precies niet? Wanneer je op submit drukt, gaat ie dan wel naar de actionpagina?
deze heeft altijd gewerkt.
wij hebben onze website nu op onze eigen server gezet en nu werkt deze niet meer met xampp
hmm, kan het zijn dat je eigen server geen superglobals ondersteund? dus ipv $PHP_SELF --> $_SERVER['PHP_SELF'] e.d.
action=\"$_SERVER['PHP_SELF']\"
Superglobals... $_POST['submit']
De rest van de code uiteraard ook aanpassen, dat mag na een jaar of 5, 6 wel eens gebeuren. Dit is al zó oud en zó achterhaald!
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\\\\Program Files\\\\xampp\\\\htdocs\\\\ad69c1\\\\leden\\\\login.php on line 46
Zo staat hij nu:
$a = \"<form method=\\\"POST\\\" action=\\\"$_SERVER[\'PHP_SELF\']\">
Gewijzigd op 01/01/1970 01:00:00 door EricW.
$a = "<form method = \"POST\" action = \"" . $_SERVER['PHP_SELF'] . "\">
Kijk escapen van chars nog een keer na =S
Lol, dan doet hij niks. Als je op login drukt gaat hij naar de pagina terug..
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
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
<?
session_start();
include ("config.php");
//opschonen db
$datum = date("Y-m-d-H-i");
$queryv = mysql_query("DELETE FROM login WHERE time < '$datum'");
if(isset($_POST['submit'])){
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '" . $_POST['gebruikersnaam'] . "' AND wachtwoord = '" . $_POST['$wachtwoord'] . "' AND geactiveerd = '1'");
$result = mysql_num_rows($query);
if(!$result){
$a = "<p align=\"center\" class=\"style1\">Gebruikersnaam en/of Wachtwoord is/zijn incorrect.<br>Of je bent vergeten om je account te activeren...<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a></p>";
}
else{
while($object = mysql_fetch_object($query)){
$memberid = $object->memberid;
$id = md5($memberid);
}
$login = 1;
$ip = $_SERVER[REMOTE_ADDR];
$datum = date("Y-m-d-H-i");
$Y= substr($datum, 0,4); $m = substr($datum, 5,2); $d= substr($datum, 8,2); $H = substr($datum, 11,2); $i = substr($datum, 14,2);
$time = date("Y-m-d-H-i", mktime($H+1, $i, 0, $m, $d, $Y));
$insertquery = mysql_query("INSERT INTO login (ip, time, user) VALUES ('$ip', '$time', '$id')");
session_register("login");
session_register("memberid");
echo "<script language=\"JavaScript\">window.location=\"../index.php?id=".$id."&name=leden\";</script>";
//header("Location: ../index.php?id=".$id."&name=leden");
}
}
else{
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
if(!$login){
$a = "<form method = \"POST\" action = \"" . $_SERVER['PHP_SELF'] . "\">
<input type=\"hidden\" name=\"submit\" value=\"1\">
Naam:<br>
<input type=\"text\" name=\"gebruikersnaam\" size=\"20\" value=\"$gebruikersnaam\"><br>
Wachtwoord:<br>
<input type=\"password\" name=\"wachtwoord\" size=\"20\"><br>
<input type=\"submit\" value=\"Login\"> <input type=\"reset\" value=\"Aanmelden\"
onclick=\"document.location.href=('aanmelden.php')\">
</form>";
}
else{
header("Location: index.php");
}
}
// Op de plaats in je layout waar je het inlogformulier wilt hebben doe je ( echo $a; )
echo $a;
?>
session_start();
include ("config.php");
//opschonen db
$datum = date("Y-m-d-H-i");
$queryv = mysql_query("DELETE FROM login WHERE time < '$datum'");
if(isset($_POST['submit'])){
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '" . $_POST['gebruikersnaam'] . "' AND wachtwoord = '" . $_POST['$wachtwoord'] . "' AND geactiveerd = '1'");
$result = mysql_num_rows($query);
if(!$result){
$a = "<p align=\"center\" class=\"style1\">Gebruikersnaam en/of Wachtwoord is/zijn incorrect.<br>Of je bent vergeten om je account te activeren...<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a></p>";
}
else{
while($object = mysql_fetch_object($query)){
$memberid = $object->memberid;
$id = md5($memberid);
}
$login = 1;
$ip = $_SERVER[REMOTE_ADDR];
$datum = date("Y-m-d-H-i");
$Y= substr($datum, 0,4); $m = substr($datum, 5,2); $d= substr($datum, 8,2); $H = substr($datum, 11,2); $i = substr($datum, 14,2);
$time = date("Y-m-d-H-i", mktime($H+1, $i, 0, $m, $d, $Y));
$insertquery = mysql_query("INSERT INTO login (ip, time, user) VALUES ('$ip', '$time', '$id')");
session_register("login");
session_register("memberid");
echo "<script language=\"JavaScript\">window.location=\"../index.php?id=".$id."&name=leden\";</script>";
//header("Location: ../index.php?id=".$id."&name=leden");
}
}
else{
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
if(!$login){
$a = "<form method = \"POST\" action = \"" . $_SERVER['PHP_SELF'] . "\">
<input type=\"hidden\" name=\"submit\" value=\"1\">
Naam:<br>
<input type=\"text\" name=\"gebruikersnaam\" size=\"20\" value=\"$gebruikersnaam\"><br>
Wachtwoord:<br>
<input type=\"password\" name=\"wachtwoord\" size=\"20\"><br>
<input type=\"submit\" value=\"Login\"> <input type=\"reset\" value=\"Aanmelden\"
onclick=\"document.location.href=('aanmelden.php')\">
</form>";
}
else{
header("Location: index.php");
}
}
// Op de plaats in je layout waar je het inlogformulier wilt hebben doe je ( echo $a; )
echo $a;
?>
Ik heb nauwelijks gekeken en niet getest, maar dit zou ongeveer wel moeten werken. Probeer zelf eens zo'n script te schrijven =) dan snap je een stuk beter waarom het niet werkte en kun je dit ook een stuk efficienter, netter en sneller opschrijven
Gewijzigd op 01/01/1970 01:00:00 door EricW.
Dit levert een ongeldige datum met tijd op, een DATETIME (ik mag hopen dat je die gebruikt) eist het formaat yyyy-mm-dd[spatie]hh:mm:ss Dat is heel wat anders!
Het script staat nog stijf van de fouten, session_register() is er 1 van, deze functie mag je niet meer gebruiken, is al lange tijd vervallen en kan problemen opleveren.
Begin je code eens met de volgende regels en ga dan 1-voor-1 alle fouten en waarschuwingen aanpakken:
Maar op een of andere manier kan hij niet de gegevens uit de database lezen. Als je alles goed invult dan zegt hij nog: Fout ingevuld
Gewijzigd op 01/01/1970 01:00:00 door EricW.
Quote:
Dat is heel bijzonder, ik kan me niks voorstellen bij een scriptje dat alle fouten ineens oplost. Ik vrees dat je een lapmiddel gebruikt dat weer de nodige veiligheidslekken aanmaakt... Registerglobals zijn niet voor niks uitgezet.Ik heb alle errors kunnen wegkrijgen door require(\"config.php\"); te gebruiken.
Laat eens de code zien die in dit script staat, ik ben erg benieuwd.
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
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
<?
require(\"config.php\");
//opschonen db
$datum = date(\"Y-m-d-H-i\");
$queryv = mysql_query(\"DELETE FROM login WHERE time < \'$datum\'\");
if(isset($_POST[\'submit\'])){
$query = mysql_query(\"SELECT * FROM members WHERE gebruikersnaam = \'\" . $_POST[\'gebruikersnaam\'] . \"\' AND wachtwoord = \'\" . $_POST[\'$wachtwoord\'] . \"\' AND geactiveerd = \'1\'\");
$result = mysql_num_rows($query);
if(!$result){
$a = \"<p align=\\\"center\\\" class=\\\"style1\\\">Gebruikersnaam en/of Wachtwoord is/zijn incorrect.<br>Of je bent vergeten om je account te activeren...<br><br><a href=\\\"?gebruikersnaam=$gebruikersnaam\\\">Ga terug</a></p>\";
}
else{
while($object = mysql_fetch_object($query)){
$memberid = $object->memberid;
$id = md5($memberid);
}
$login = 1;
$ip = $_SERVER[REMOTE_ADDR];
$datum = date(\"Y-m-d-H-i\");
$Y= substr($datum, 0,4); $m = substr($datum, 5,2); $d= substr($datum, 8,2); $H = substr($datum, 11,2); $i = substr($datum, 14,2);
$time = date(\"Y-m-d-H-i\", mktime($H+1, $i, 0, $m, $d, $Y));
$insertquery = mysql_query(\"INSERT INTO login (ip, time, user) VALUES (\'$ip\', \'$time\', \'$id\')\");
session_register(\"login\");
session_register(\"memberid\");
echo \"<script language=\\\"JavaScript\\\">window.location=\\\"../index.php?id=\".$id.\"&name=leden\\\";</script>\";
//header(\"Location: ../index.php?id=\".$id.\"&name=leden\");
}
}
else{
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo \"<link rel=\\\"stylesheet\\\" content=\\\"text/css\\\" href=\\\"style.css\\\">\";
if(!$login){
$a = \"<form method = \\\"POST\\\" action = \\\"\" . $_SERVER[\'PHP_SELF\'] . \"\\\">
<input type=\\\"hidden\\\" name=\\\"submit\\\" value=\\\"1\\\">
Naam:<br>
<input type=\\\"text\\\" name=\\\"gebruikersnaam\\\" size=\\\"20\\\" value=\\\"$gebruikersnaam\\\"><br>
Wachtwoord:<br>
<input type=\\\"password\\\" name=\\\"wachtwoord\\\" size=\\\"20\\\"><br>
<input type=\\\"submit\\\" value=\\\"Login\\\"> <input type=\\\"reset\\\" value=\\\"Aanmelden\\\"
onclick=\\\"document.location.href=(\'aanmelden.php\')\\\">
</form>\";
}
else{
header(\"Location: index.php\");
}
}
// Op de plaats in je layout waar je het inlogformulier wilt hebben doe je ( echo $a; )
echo $a;
?>
require(\"config.php\");
//opschonen db
$datum = date(\"Y-m-d-H-i\");
$queryv = mysql_query(\"DELETE FROM login WHERE time < \'$datum\'\");
if(isset($_POST[\'submit\'])){
$query = mysql_query(\"SELECT * FROM members WHERE gebruikersnaam = \'\" . $_POST[\'gebruikersnaam\'] . \"\' AND wachtwoord = \'\" . $_POST[\'$wachtwoord\'] . \"\' AND geactiveerd = \'1\'\");
$result = mysql_num_rows($query);
if(!$result){
$a = \"<p align=\\\"center\\\" class=\\\"style1\\\">Gebruikersnaam en/of Wachtwoord is/zijn incorrect.<br>Of je bent vergeten om je account te activeren...<br><br><a href=\\\"?gebruikersnaam=$gebruikersnaam\\\">Ga terug</a></p>\";
}
else{
while($object = mysql_fetch_object($query)){
$memberid = $object->memberid;
$id = md5($memberid);
}
$login = 1;
$ip = $_SERVER[REMOTE_ADDR];
$datum = date(\"Y-m-d-H-i\");
$Y= substr($datum, 0,4); $m = substr($datum, 5,2); $d= substr($datum, 8,2); $H = substr($datum, 11,2); $i = substr($datum, 14,2);
$time = date(\"Y-m-d-H-i\", mktime($H+1, $i, 0, $m, $d, $Y));
$insertquery = mysql_query(\"INSERT INTO login (ip, time, user) VALUES (\'$ip\', \'$time\', \'$id\')\");
session_register(\"login\");
session_register(\"memberid\");
echo \"<script language=\\\"JavaScript\\\">window.location=\\\"../index.php?id=\".$id.\"&name=leden\\\";</script>\";
//header(\"Location: ../index.php?id=\".$id.\"&name=leden\");
}
}
else{
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo \"<link rel=\\\"stylesheet\\\" content=\\\"text/css\\\" href=\\\"style.css\\\">\";
if(!$login){
$a = \"<form method = \\\"POST\\\" action = \\\"\" . $_SERVER[\'PHP_SELF\'] . \"\\\">
<input type=\\\"hidden\\\" name=\\\"submit\\\" value=\\\"1\\\">
Naam:<br>
<input type=\\\"text\\\" name=\\\"gebruikersnaam\\\" size=\\\"20\\\" value=\\\"$gebruikersnaam\\\"><br>
Wachtwoord:<br>
<input type=\\\"password\\\" name=\\\"wachtwoord\\\" size=\\\"20\\\"><br>
<input type=\\\"submit\\\" value=\\\"Login\\\"> <input type=\\\"reset\\\" value=\\\"Aanmelden\\\"
onclick=\\\"document.location.href=(\'aanmelden.php\')\\\">
</form>\";
}
else{
header(\"Location: index.php\");
}
}
// Op de plaats in je layout waar je het inlogformulier wilt hebben doe je ( echo $a; )
echo $a;
?>
Zie reeds eerder gegeven oplossingen en stukjes code hoe je de boel wel goed kunt krijgen.