slippern Skrevet 9. august 2007 Del Skrevet 9. august 2007 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? Lenke til kommentar
Gjest Slettet+142 Skrevet 10. august 2007 Del Skrevet 10. august 2007 (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 10. august 2007 av Slettet+142 Lenke til kommentar
slippern Skrevet 10. august 2007 Forfatter Del Skrevet 10. august 2007 ::Alternativ 1:: La MySQL gjøre all jobbenEndre 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å.. Lenke til kommentar
slippern Skrevet 10. august 2007 Forfatter Del Skrevet 10. august 2007 har fikset det.. la til en ny IF under activation.. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå