Gå til innhold

login script gjør ikke som jeg vil


Anbefalte innlegg

Skrevet

Klikk for å se/fjerne innholdet nedenfor
if(!isset($_SESSION['user']))

$_SESSION['user'] = false;

 

if(!$_SESSION['user'] && $_SERVER['REQUEST_METHOD'] == 'POST')

{

$navn = mysql_real_escape_string($_POST['navn']);

$pass = md5($_POST['pass']);

$_SESSION['username'] = $navn;

$sql = "SELECT password, username, activation, slettet FROM brukere WHERE password='" . $pass . "' AND username='" . $navn . "' ";

$resultat = mysql_query($sql);

if(mysql_num_rows($resultat) == 1)

{

$_SESSION['user'] = mysql_fetch_assoc($resultat);

if(($_SESSION['user']['activation'] != '') && ($_SESSION['user']['slettet'] == '1'))

{

 

session_destroy();

echo "<span class='skrift'>Brukeren er ikke aktivert!</span> <br />";

$_SESSION['user'] = false;

 

 

}

header("Refresh: 0; url=index.php");

}

else

{

session_unset();

session_destroy();

echo '<span class="skrift">Feil brukernavn eller passord</span>';

 

}

}

if(!$_SESSION['user'])

{

?>

 

<form action="" method="post">

<table>

<tr>

<td>

<span class="skrift">Brukernavn</span></td>

</tr>

<tr>

<td><input type="text" name="navn" size="12" /> </td></tr>

<tr><td>

<span class="skrift">Passord</span></td></tr>

<tr>

<td><input type="password" name="pass" size="12" /></td></tr>

<tr><td>

<input type="submit" name="knapp" value="Logg inn" /> <br /></td></tr>

</table>

</form>

 

<?php

if(!isset($_SESSION['username'])){echo '<span class="skrift"><a href="index.php?side=glemtpassord">Glemt passord?</a></span><br /> ';}

else {

echo "";

}

?>

 

<?php

 

}

else{

$username = $_SESSION['username'];

echo "<div class='skrift'>Du er nå logget inn som $username og $status <br /><br /></div>";

echo "<form action='' method='get'>

<p><input type='submit' name='knapp' value='Logg ut'/></p></form>";

 

 

 

 

}

 

?>

 

har dette login scriptet. men uansett om slettet er 1 eller 0.. så kan jeg logge inn.. hvorfor?

Videoannonse
Annonse
Gjest Slettet+142
Skrevet (endret)

::Alternativ 1:: La MySQL gjøre all jobben

Endre denne linjen

$sql = "SELECT password, username, activation, slettet FROM brukere WHERE password='" . $pass . "' AND username='" . $navn . "' ";

til dette:

$sql = "SELECT password, username, activation, slettet FROM brukere WHERE password='" . $pass . "' AND username='" . $navn . "' AND slettet != 1 AND activation = '' ";

 

Og dropp $_SESSION["user"]["slettet"]-sjekken..

::Alternativ 2:: La PHP gjøre jobben som ditt skript gjør, men fiks en vesentlig ting

Om ikke det, kan du heller gjøre denne linjen:

if(($_SESSION['user']['activation'] != '') && ($_SESSION['user']['slettet'] == '1'))

om til denne:

if(($_SESSION['user']['activation'] != '') || ($_SESSION['user']['slettet'] == '1'))

Endret av Slettet+142
Skrevet
::Alternativ 1:: La MySQL gjøre all jobben

Endre denne linjen

$sql = "SELECT password, username, activation, slettet FROM brukere WHERE password='" . $pass . "' AND username='" . $navn . "' ";

til dette:

$sql = "SELECT password, username, activation, slettet FROM brukere WHERE password='" . $pass . "' AND username='" . $navn . "' AND slettet != 1 AND activation = '' ";

 

Og dropp $_SESSION["user"]["slettet"]-sjekken..

::Alternativ 2:: La PHP gjøre jobben som ditt skript gjør, men fiks en vesentlig ting

Om ikke det, kan du heller gjøre denne linjen:

if(($_SESSION['user']['activation'] != '') && ($_SESSION['user']['slettet'] == '1'))

om til denne:

if(($_SESSION['user']['activation'] != '') || ($_SESSION['user']['slettet'] == '1'))

9247059[/snapback]

 

det med sql sjekken går. men på php skal jeg ikke bruke ||, pga activation sjekker om brukeren har aktivert seg, får en mail med en aktiverings url.. og visst brukeren er slettet skal den heller ikke få logget seg på..

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...