een tijdje terug heb ik hier een aantal vragen gesteld over het starten van cookies. Ik ben toen geholpen en mijn script werkte perfect. Ik ben toen een aantal weken gestopt en wou het van de week weer oppakken maar op de een of andere manier kan ik niet meer inloggen.

Het is nog steeds hetzelfde script als een aantal weken geleden en ik heb het op meerdere thuisservers geprobeerd, waaronder:
* UsbWebserver
* Xampp
* EasyPHP
en een aantal andere.

Oja, er worden ook geen errors weergegeven terwijl error eall ofzo aanstaat.

Het script logt je in maar als je dan vervolgens naar een andere pagina gaat ben je weer uitgelogd.

Script:

<?php 
If($ingelogd == 1) 
{ 
    echo''.$code9.''; 
} 
Else 
{ 

if (isset($_POST['submit']) && $_POST['submit'] == '1') { 
    $gebruikersnaam     =    $_POST['gebruikersnaam']; 
    $wachtwoord            =    md5($_POST['wachtwoord']); 
    $tijd                =    $_POST['tijd']; 
    $query                 =     mysql_query("SELECT * FROM leden WHERE gebruikersnaam = '$gebruikersnaam'"); 
    $result             =     mysql_num_rows($query); 
    $query1             =     mysql_query("SELECT * FROM leden WHERE gebruikersnaam = '$gebruikersnaam' && wachtwoord = '$wachtwoord'"); 
    $result1            =     mysql_num_rows($query1); 
    $query2             =     mysql_query("SELECT * FROM leden WHERE gebruikersnaam = '$gebruikersnaam'"); 
    while($result2         =     mysql_fetch_object($query2)){ 
    $id                 =     $result2->memberid; 
    } 
    
    if($gebruikersnaam == ''){ 
                  $code     =     $code3; 
        }elseif($wachtwoord == ''){ 
                  $code     =     $code5; 
        }elseif(!preg_match('/^[A-Za-z0-9_-]+$/',$gebruikersnaam)) { 
                  $code   =   $code8; 
        }elseif($result == ''){ 
                $code    =    $code8; 
        }elseif($result1 == ''){ 
                $code    =    $code8; 
        } 
    If($tijd == "Jaar") 
        { 
            $lengte = 60*60*24*365; 
        } 
        ElseIf($tijd == "Maand") 
        { 
            $lengte = 60*60*24*31; 
        } 
        ElseIf($tijd == "Week") 
        { 
            $lengte = 60*60*24*7; 
        } 
        Elseif($tijd == "dag") 
        { 
            $lengte = 60*60*24; 
        } else { 
            $lengte = 60*60*24; 
            } 
        if(isset($code)){ 
        echo''.$code.''; 
        } else { 
        setcookie("gebruikersnaam", $gebruikersnaam, time() + $lengte, "/"); 
        setcookie("wachtwoord", $wachtwoord, time() + $lengte, "/"); 
        setcookie("id", $id, time() + $lengte, "/"); 
        echo'Je bent succesvol ingelogd'; 
        ?> 
        <meta http-equiv="refresh" content="1; url=index.php"> 
        <?php 
        } 
        } else { 
?> 
<form method="POST" action="?pagina=leden/inloggen"> 
    <input type="hidden" name="submit" value="1"> 
        <table cellpadding="1" cellspacing="1" width="100%"> 
            <tr><td width="1%">Gebruikersnaam:</td><td><input type="text" name="gebruikersnaam"></td></TR> 
            <tr><td width="1%">Wachtwoord:</td><td><input type="password" name="wachtwoord"></td></TR> 
            <tr><td width="1%"></td><td><select name="tijd"><option value="Dag">Dag</option><option value="Week">Week</option><option value="Maand">Maand</option><option value="Jaar">Jaar</option></select></td></TR> 
        <td width="1%"> </td><td><input type="submit" value="Inloggen"> <input type="reset" name="reset" value="Opnieuw"></td></table> 
        <form> 
        
<?php 
} 
} 
?>  


Dit is alleen het script login.php

Op deze manier controleer ik of iemand is ingelogd. Ik weet dat het niet de beste manier is maar het is nu even om te kijken of het werkt.
Dit staat dus in het config bestand.

<?php 
if(!isset($_COOKIE["gebruikersnaam"])){ 
$ingelogd = '0'; 
} else { 
$ingelogd = '1'; 
} 
?> 

En dit staat boven elke beveiligde pagina:

<?php 
If($ingelogd == 1) 
{ 
    echo''.$code9.''; 
} 
Else 
{ 
pagina 
} 
?> 


Ik hoop dat ik genoeg info heb gepost en zo niet vraag er dan even om.

Het gaat mij er nu dus niet om of het veilig of wat dan ook is maar waarom het niet wil werken.

Alvast bedankt,


kevin tuns
waar haal je je codes weg?
result2 hoort lijkt mij niet in een loop..
welk script gebruik je om te valideren?
zoals eerder is gezegd kijk of je cookies wel geset worden nog voor je weer geeft "je bent succesvol ingelogd"
het zou kunnen dat je probleem in die loop + data in jou database zit
De codes komen allemaal uit het script hierboven, eerst liet ik een aantal codes zien uit de config, maar die word hier nu niet meer bij betrokken.

Ik controleerde niet of de cookies waren aangemaakt voordat ik "Je bent succesvol ingelogd" weergaf omdat ik er natuurlijk vanuit ging dat de cookies gewoon aangemaakt zouden worden. De andere pagina's kijken of de cookies bestaan en zo niet dan laten ze alleen zien wat een gast mag zien.

Het lijkt dus alsof hij de cookies niet aanmaakt.

Maar het rare is dat als ik het script op bijv. lycos zet dat het dan wel werkt.

Dit hoort natuurlijk niet zo, maar ik kan de fout niet vinden die ervoor zorgt dat het op mijn localhost niet werkt.
Maar het rare is dat als ik het script op bijv. lycos zet dat het dan wel werkt.
Wanneer je jezelf een beetje gaat verdiepen in het beveiligingsbeleid van Lycos, of eigenlijk het gebrek aan beveiliging, dan zul je begrijpen dat Lycos geen referentiekader is...

Waarschijnlijk zijn de default-settings van bv. WAMP of XAMPP al beter dan de instellingen van Lycos.
Ja, dat begrijp ik ook wel, maar het gaat er nu om waarom hij die cookies niet wil aanmaken, en waarom hij dat wel wil doen op een andere host.
Ik ging nu even van lycos uit, maar ik heb het op superhost3000 geprobeerd, funpic en nog een aantal andere, daar had ik dit probleem niet dus wat is er fout>?????????
Ik heb nog eens geprobeerd om alle servers die ik had geprobeerd te upgraden; ze hadden allemaal een upgrade die ik nog niet had geinstalleerd, maar ook deze updates hadden geen effect.

Mijn laatste hoop was dat mijn php.ini bestand misschien niet goed was ingesteld, maar na het vervangen van dit bestand werkt het nog steeds niet.

Ik ben op dit moment echt einderaad en hoop dat er iemand is die me toch kan en wil helpen.

Reageren