Ik zit al heel lang met het probleem
dat een inlog script niet werkt..

Elke keer als ik inlog staat er fout.. ik heb
van vrienden gehoord dat zij dit ook hebben.

Het script:


<center>
<form method="post">
<table border="1" width="30%" cellspacing="0" cellpadding="0">
  <tr>
    <td width="50%">Gebruikersnaam</td>
    <td width="50%"><input type="text" name="gebruikersnaam" value="Gebruikersnaam" onclick="gebruikersnaam.value=''" size="20"></td>
  </tr>
  <tr>
    <td width="50%">Wachtwoord</td>
    <td width="50%"><input type="password" name="wachtwoord" value="Wachtwoord" onclick="wachtwoord.value=''" size="20"></td>
  </tr>
  <tr>
    <td width="50%">Cookie</td>
    <td width="50%"><select size="1" name="dagen">
        <option selected value="1">1 Dag</option>
        <option value="2">2 Dagen</option>
        <option value="7">7 Dagen</option>
        <option value="14">2 Weken</option>
        <option value="28">1 Maand</option>
        <option value="178">6 Maand</option>
        <option value="356">1 Jaar</option>
      </select></td>
  </tr>
  <tr>
    <td width="100%" colspan="2"><input type="submit" name="login" value="Login"></td>
  </tr>
</table>
</form>
</center>
<?
if( isset($_POST["login"]))
{
	$query = mysql_query("select * from leden where gebruikersnaam='".$_POST["gebruikersnaam"]."'");
	$row = mysql_fetch_object($query);
	$wachtwoord1 = md5($_POST["wachtwoord"]);
	if($wachtwoord1 == $row->wachtwoord && $_POST["gebruikersnaam"] == $row->gebruikersnaam)
	{
        setcookie ("login", $_POST["gebruikersnaam"],time()+3600*$dagen);
        echo "U bent ingelogt.";
        echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=?p=home\">";
	}
	else
	{
		echo "Fout.";
	}
}
?>


Vrienden zeggen dat het aan die cookie ligt,.

Die je het probleem? Reageer a.u.b.

Mvg:

Mik
Nee,... het ligt aan je vergelijking. Je systeem is gewoon verkeerd. Je haalt alle leden op en vervolgens zet je je mysql_fetch_object niet in een while() ofzo. Dan gaat de boel alleen maar werken als de eerste member inlogd.

Je moet je query verbeteren (niet alle rijen binnenhalen, maar alleen die van gebruikersnaam die wilt inloggen), óf je moet je mysql_fetch_object in een while-loop douwen.

Elwin
Een paar tips:
Gebruik geen cookies, maar sessions
Sla geen gebruikersnaam op in de cookie/session

Maar ik denk dat het aan "headers allready sent" achtige error ligt...

@ elwin: kijk eens goed: $query = mysql_query("select * from leden where gebruikersnaam='".$_POST["gebruikersnaam"]."'");
$row = mysql_fetch_object($query);
Ja, maar hij hoort het gewoon te doen.
Een vriend heeft het ook gefixt maar die
spreek ik niet meer.. weet iemand misschien
nog een goed membersysteem.. Vroeger had
ik echt een hele goede op webfanaat.com maar
die is nu gesloten... DUS KAN IK HEM NIET MEER
VINDEN :'( Hij is van djenzie ofzoiets.. weet iemand
waar die nogmeerstaat? :D

Grz mik
Lill-mik schreef op 01.03.2007 17:08
Ja, maar hij hoort het gewoon te doen.

Maarja, mar hij doet het dus niet, dus is er toch iets mis met de code. Misschien aan te raden om zoals eerder gezegd sessions te gebruiken?
hmmmm zal proberen.. maar ik blijf tog ff doorzoeken
naar die van djenzie ofzo ;( maar ik probeer :)

Reageren