login driller

Tags:    php

Jeg har nu efterhånden haft en del problemer med mit login-script.

Nu er det så selve "login-handlingen" der volder problemer:

Mine koder ser sådan ud:

//show.php
form action="show.php?page=login-ok" method="post" name="login" id="login">

<input name="brugernavn" type="text" size="15" style="color: #000000; background-color: #DBE4F3; border: 1px solid #000000">
<
input name="password" type="password" size="15" style="color: #000000; background-color: #DBE4F3; border: 1px solid #000000">

<input name="login" type="image" src="logind.gif" width="60" height="15">
</for>

//login-ok.php(har lavet lidt om på på login koden fra en artikel herfra ukvikleren)

<?php
require("sql.php");
$login = &$HTTP_POST_VARS['show'];

if(empty($login)) {
echo 'Denne side kræver login adgang'; }
else {

$brugernavn = &$HTTP_POST_VARS['brugernavn'];
$password = &$HTTP_POST_VARS['password'];

if(empty($brugernavn) OR empty($password)) {
echo 'Et af felterne er tomme'; }
else {

aabn_sql();
$result_user = mysql_query("select brugernavn from brugere where brugernavn = '$brugernavn'")
or die (mysql_error()); $result_pw = mysql_query("select kodeord from brugere where kodeord = '$kodeord'")
or die (mysql_error());
$array_user = mysql_fetch_array($result_user); $array_pw = mysql_fetch_array($result_pw);

if($array_user['brugernavn'] == $brugernavn AND $array_pw['kodeord'] == $password) {
echo 'korrekt kodeord'; }
else { echo 'forkert kodeord';
}

} }
?>

Når jeg så prøver at logge ind, bliver denne aktiveret:
if(empty($login)) {
echo 'Denne side kræver login adgang'; }

Hvorfor gør den det når jeg er sikker på at alt er korrekt udfyldt?

På forhånd tak



7 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Der er en del småfejl i din html-kode. fx er der ikke et < foran form og der er linjeskift mellem et < og input og du mangler et m i form.

Desuden er de php-variabler du bruger til en gammel version af php.
&$HTTP_POST_VARS hedder $_POST

action i din form fører ikke til den side der tjekker for login.

Med dit script kan man skrive en anden persons brugernavn, og sit eget password, og man bliver logget ind. Brugernavn og password behøver ikke at høre sammen.




lige et tillægsspørgsmål:

Kan man udføre hele login-handlingen i show.php. Altså så variablerne ikke skal sendes til login-ok men derimod til show.php



Ja det kan jeg godt se:D jeg har bare skrevet det ind hurtigt.. men det er ikke html'en der er problemet..


Hvordan kan jeg sikre mig at man kun kan bruge sit eget password og kodeord? Skal jeg ha ID med?





Du skal kun bruge een query

$result_user = mysql_query("select brugernavn from brugere where brugernavn = '$brugernavn' and kodeord = '$kodeord'")
or die (mysql_error());

if(mysql_num_rows==1) {
echo 'korrekt kodeord'; }
else { echo 'forkert kodeord';
}




Okay.. mange tak for det!

Hvis jeg nu vil ha' hele handlingen udført på kun een side, hvordan gør jeg så det? Eller er det ikke muligt?



if($_POST[brugernavn]){
//side der tester om der er logget ind
}
else{
//login form
}



Perfekt:D

Endnu en gang mange tak for hjælpen.. Der er lidt uvp til dig!

Mvh
-Kander



t