Gå til innhold

MYSQL henting med sammenligning av variabler[LØST]


Anbefalte innlegg

Videoannonse
Annonse

her er koden hittil, med escape string:

 

<?
$e_post=$_POST['epost'];
$passord=$_POST['pass'];

$password = md5($passord);
$esc = mysql_escape_string($e_post);
mysql_connect ("host", "user", "pass") or die ('My SQL Error: ' . mysql_error());
mysql_select_db ("db");
$query = mysql_query("SELECT * FROM `kunde` WHERE epost='".$esc."' AND passord='".$password."'") or die("MySQL Login Error: ".mysql_error()); 
$row = mysql_fetch_array($query);
$mail = $row["epost"];
$pwd = $row["pass"];
if (($esc == $mail) && ($password == $pwd)):
echo "bruker logget inn";
elseif (($esc == $mail) && ($password != $pwd)):
echo "feil passord, prøv igjen";
else:
echo "feil bruker, er du registrert?";
endif;
?>

 

men det eneste som dukker opp av echoene er: feil passord.. hva kan være galt?

 

stripslashes() ? hvor?

Endret av phun-ky
Lenke til kommentar

tror kanskje du bommer litt, men skal prøve å forklare litt:

 

$passord=$_POST['pass'];

henter passorder i formen

 

$password = md5($passord);

krypterer passordet, strengen havner i $password

 

mysql_connect ("host", "user", "pass") 

pass her er fiktivt for sikkerhetsgrunner

 

AND passord='".$password."'") 

henter fram bruker og passord fra tabellen (passordet ligger kryptert i tabellen)

 

$pwd = $row["pass"];

henter ut feltet "pass" i tabellen og legger den i variabelen $pwd

 

if (($esc == $mail) && ($password == $pwd)):

sjekker det krypterte passordet som bruker tastet inn mot det krypterte passordet som ligger i tabellen..

 

skjønner du? eller var dette feil?

 

er kanskje en dum måte å gjøre det på, er vel enklere på den måtet at man henter bare bruker fra tabellen og så sjekker om passordet matcher, for å hindre feil.. eller?

Lenke til kommentar

Jeg tror du misforstod litt.

Har du to rader i tabellen hvor passordet er lagra?

en som heter pass og en annen som heter passord

For det spørringen din nå gjør er å hente ut informasjon fra rader der epost er $esc, og passord er $password

for deretter å hente ut fra $row["pass"] raden.

 

leif.

Endret av LoS
Lenke til kommentar

hm.. det er sql queryen som er feil, får ikke hentet ut noe fra databasen...

 

$query = mysql_query("SELECT * FROM kunde WHERE epost='".$esc."'")

funker ikke, men rett i db'en funker denne:

 

SELECT * 
FROM kunde
WHERE epost = "minmail\@yahoo.com" LIMIT 0 , 30

 

det må være variabelen som stusser, eller innsettingen av den,.

 

EDIT: la på addslashes og stripslashes, men det hjalp ikke..

Endret av phun-ky
Lenke til kommentar

Når du kjører spørringen på den måten så trenger du ikke gjøre det på den måten der.

$query = mysql_query("SELECT * FROM kunde WHERE epost = '$esc'")

skal funke like bra.

Har du prøvd uten mysql_escape_string?

mysql_escape_string må brukes hele veien hvis det skal funke.

dessuten så kan du prøve å legge spørringen i en egen variabel, også skrive den ut, for å se hva som står der.

altså:

$sql = "SELECT * FROM kunde WHERE epost = '$esc' AND passord = '$password'";
$query = mysql_query($sql);
// resten av scriptet
echo $sql; // helt på slutten f.eks.

Lenke til kommentar

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å
×
×
  • Opprett ny...