Inlog systeem werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

EricW.

EricW.

30/10/2007 16:33:00
Quote Anchor link
Wij hebben een inlogsysteem wat niet werkt. Als je op inloggen drukt gebeurt er niks.

Hier is de code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?
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.
 
PHP hulp

PHP hulp

26/04/2024 02:25:40
 
Hylke

Hylke

30/10/2007 16:35:00
Quote Anchor link
euhm, wat werkt er precies niet? Wanneer je op submit drukt, gaat ie dan wel naar de actionpagina?
 
EricW.

EricW.

30/10/2007 16:43:00
Quote Anchor link
Ja hij gaat niet meer naar een actonpagina,
deze heeft altijd gewerkt.
wij hebben onze website nu op onze eigen server gezet en nu werkt deze niet meer met xampp
 
Hylke

Hylke

30/10/2007 16:47:00
Quote Anchor link
hmm, kan het zijn dat je eigen server geen superglobals ondersteund? dus ipv $PHP_SELF --> $_SERVER['PHP_SELF'] e.d.
 
Flip --

Flip --

30/10/2007 16:47:00
Quote Anchor link
action=\"$PHP_SELF\"

action=\"$_SERVER['PHP_SELF']\"
 
Frank -

Frank -

30/10/2007 16:50:00
Quote Anchor link
if($submit){

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!
 
EricW.

EricW.

30/10/2007 17:12:00
Quote Anchor link
Deze error geeft hij:

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.
 
Hylke

Hylke

30/10/2007 17:22:00
Quote Anchor link
=S
$a = "<form method = \"POST\" action = \"" . $_SERVER['PHP_SELF'] . "\">

Kijk escapen van chars nog een keer na =S
 
EricW.

EricW.

30/10/2007 17:23:00
Quote Anchor link
Lol, dan doet hij niks. Als je op login drukt gaat hij naar de pagina terug..
 
Hylke

Hylke

30/10/2007 17:33:00
Quote Anchor link
-,-'dat lijkt me ook de bedoeling.. Zucht okee.. Je moet je variabelen nakijken. Zo moet het zijn:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?
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
 
EricW.

EricW.

30/10/2007 20:34:00
Quote Anchor link
Tja hij geeft de error van session_start)( terwijl die wel in die pagina moet staan.
Gewijzigd op 01/01/1970 01:00:00 door EricW.
 
Frank -

Frank -

30/10/2007 20:42:00
Quote Anchor link
$datum = date("Y-m-d-H-i");

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

// rest van je code
?>
 
EricW.

EricW.

30/10/2007 20:50:00
Quote Anchor link
Ik heb alle errors kunnen wegkrijgen door require(\"config.php\"); te gebruiken.

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.
 
Frank -

Frank -

30/10/2007 21:03:00
Quote Anchor link
Quote:
Ik heb alle errors kunnen wegkrijgen door require(\"config.php\"); te gebruiken.
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.

Laat eens de code zien die in dit script staat, ik ben erg benieuwd.
 
EricW.

EricW.

30/10/2007 21:04:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?

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;
?>
 
Frank -

Frank -

30/10/2007 21:22:00
Quote Anchor link
Wat ik al zei, de code is nog lang niet bugvrij, config.php lost hier echt niks in op. Ook niet wanneer je deze code niet toont, session_register() en ongeldige datumtijd-stempels staan er nog steeds in. Tevens toon je nog steeds niet alle mogelijke en onmogelijke foutmeldingen op je scherm, je sluit je ogen voor problemen.

Zie reeds eerder gegeven oplossingen en stukjes code hoe je de boel wel goed kunt krijgen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.