[PHP] 2 keer moeten inloggen voordat hij werkelijk inlogd

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • LocoShady
  • Registratie: Mei 2003
  • Laatst online: 21:33
hoi :)
ik heb me hier toch een vaag probleem heb er nooit eerder last van gehad.
zodra ik wil inloggen lukt het de 1e keer niet maar als ik dan op vorige druk en dan nog een keer inlog wil het wel :? het klinkt vaag en dat is het ook :) ik breek hier al een hele tijd mn hersens over maar ik kan nik slogisch bedenken.

het gaat om deze 2 bestanden:

code:
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
<? 
//login.php 
session_start(); 
require('functions.php'); 

$error = $_GET['id1'];
if ($error == "1"){
$error = "U bent uitgelogd.";
$showerror = "True";
}
if ($logged_in == "False"){
$error = "U bent niet ingelogd, log eerst in ( error 3# )";
$showerror = "True";
}


if($_SERVER['REQUEST_METHOD']=='POST') 
{ 
    $showerror="False"; 
    if(FALSE!==($rDbConn=connectdb())) 
    { 
        $sQuery='SELECT id FROM users WHERE username="'.$_POST['username'].'" AND password="'.md5($_POST['password']).'"'; 
        if(!$rResult=mysql_query($sQuery,$rDbConn)) 
        { 
            echo 'Error( #1 ) '.mysql_error($rDbConn).'<BR>'.$sQuery; 
        } 
        else 
        { 
            if(mysql_num_rows($rResult)==0) 
            { 
                $error="Verkeerde Gebruikersnaam of wachtwoord.";
                $showerror="True"; 
            } 
            else 
            { 
                //willekeurige string maken 
                $sValidate=md5(rand(0,99999)); 

                //cookies setten voor 7dagen 
                $iUserId=mysql_result($rResult,0,'id'); 
                setcookie('validate',$sValidate,time()+60*60*24*7,'/','62.163.185.27'); 
                setcookie('user_id',$iUserId,time()+60*60*24*7,'/','62.163.185.27'); 

                //de gegevens in de tabel zetten 
                $sQuery='REPLACE INTO logins (tijdstip, validate, user_id, client_ip) 
                            VALUES (NOW(), "'.$sValidate.'", '.$iUserId.', "'.$_SERVER['REMOTE_ADDR'].'")'; 
                if(!mysql_query($sQuery,$rDbConn)) 
                { 
                    echo 'Error( #2 ) '.mysql_error($rDbConn).'<BR>'.$sQuery; 
                } 

                //de sessie gegevens schrijven 
                $_SESSION['user_id']=$iUserId; 
                $_SESSION['ingelogd']=TRUE; 

                $_SESSION['client_ip']=$_SERVER['REMOTE_ADDR']; 

                //doorsturen naar de volgende pagina 
                header('location: /secure/'); 
            } 
        } 
        mysql_close($rDbConn); 
    } 
} 



if ($showerror=="False"){}
else{

        $filling="
<head>
<title>Login</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">


</head>
<center><br><br><br><br>
<h1>Login Page</h1>
<div class=\"warning\">$error</div> 

<div id=\"login\">
<div id=\"innerlogin\">
<form action=\"/login.php\" method=\"post\" name=\"inlogform\">
  <div id=\"loginnaam\">
    <input name=\"username\" type=\"text\" class=\"textbox\" />
  </div>
  <div id=\"loginwachtwoord\">
    <input name=\"password\" type=\"password\" class=\"textbox\" />
    <input name=\"submit\" type=\"submit\" value=\"\"/>
  </div>
</form>
  <div id=\"hover\">
  </div>
</div>
</div>
<script language=\"javascript\">
window.document.inlogform.username.focus();
</script>
";

} 




echo"$filling"; 


?>


en hij komt wel zover dattie hem dorstuurt naar secure.php maar stuurt hem toch weer terug naar index.php (dus hij is nog niet ingelogd)
en de 2e pagina:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<? 
session_start(); 
require('functions.php'); 
if(FALSE!==($rDbConn=connectdb())) 
{ 
if(!check_login($rDbConn)) 
{ 
header('location: ../index.php'); 
exit; 
} 

$secure = "true";
$filling = "ingelogd";


require('index.php'); 


mysql_close($rDbConn); 
} 
?>


ik gebruik deze manier van inloggen al vrij lang maar nooit problemen mee gehad
maar gebruikte hem weer voor een nieuwe site en nu had ik dit opeens aan mn laars hangen :D erg vaag dit..

iemand enig idee ?

Acties:
  • 0 Henk 'm!

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 09-09 15:24
Kijk eens of er na de eerste keer inloggen het sessieid aan de links wordt gekoppeld?

Ik heb dit een keer gehad bij een server die het sessieid niet in een cookie opsloeg maar steeds in de url.

Acties:
  • 0 Henk 'm!

  • LocoShady
  • Registratie: Mei 2003
  • Laatst online: 21:33
nee want ik draai het altijd op mn eigen pc en er is niks aan de server veranderd

Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Heb je al geprobeerd in je secure.php wat echo's te plaatsen? Bijv. op regel 5 je $rDbConn printen. Op regel 7 iets printen. Gewoon om te zien of alle variabelen wel de waardes hebben die je verwacht?

Heb je niet toevallig wat instellingen toch aangepast?

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.