Arne Skrevet 31. januar 2006 Del Skrevet 31. januar 2006 (endret) Hei! Eg skal sjekke opp mot ein database om navn og passord er rett. Kjeldekode while ($rad = mysql_fetch_array($resultat)) { $navn = $rad['Brukarnavn']; $brukar = $_POST['navn']; $pass = $_POST['pass']; if ($brukar == $navn) { echo 'Du er logga inn!'; }} Fins det ein måte å stoppe while på slik at eg kan skrive if ( !$brukar == $navn ){ echo 'Gå og logg inn!';} Håpar de forstår kva eg meiner, og korleis eg kan få det til å virke. Takkar på førehand for svar! NYTT SPM!! SJÅ POST NR: 9. Endret 31. januar 2006 av Fjott Lenke til kommentar
kakkle Skrevet 31. januar 2006 Del Skrevet 31. januar 2006 Kan du ikke bare kjøre den testen i sql setningen ? SELECT * FROM navnedatabase WHERE navn='$navn' ? Lenke til kommentar
Arne Skrevet 31. januar 2006 Forfatter Del Skrevet 31. januar 2006 Korleis kan eg bruke den? EG kan ikkje dette, så dette forstod eg ikkje. Lenke til kommentar
kakkle Skrevet 31. januar 2006 Del Skrevet 31. januar 2006 $sql = "SELECT * FROM [tabellnavn] WHERE [navnefelt-navn]=$'navn'"; $resultat = mysql_query($sql) or die("Feil i spørring: $sql <br>".mysql_error()); $ant_funnet = mysql_num_rows($resultat); //Antall funnet med det navnet if($ant_funnet>0) { $navn = $rad['Brukarnavn']; $brukar = $_POST['navn']; $pass = $_POST['pass']; echo "Du er logget inn med navnet ".$navn; } else { echo "Navnet $navn ble ikke funnet i databasen"; } f.eks. Bytt ut det inni [] med dine verdier. Forøvrig så anbefaler jeg deg å lese litt mer om php/mysql. Lag små script som du utvider etterhvert, slik at du lærer det skikkelig, før du begynner å lage noe til websider. Lenke til kommentar
Arne Skrevet 31. januar 2006 Forfatter Del Skrevet 31. januar 2006 Takk, men det sjekkar jo berre om navnet er rett, ikkje passordet. Lenke til kommentar
Loomy Skrevet 31. januar 2006 Del Skrevet 31. januar 2006 For å svare på topic: Du kan hoppe ut av while'en ved å bruke break; Lenke til kommentar
Arne Skrevet 31. januar 2006 Forfatter Del Skrevet 31. januar 2006 (endret) Some confused. Loomy: Korleis kan eg bruke det her? Slik?: while ($rad = mysql_fetch_array($resultat)) { $navn = $rad['Brukarnavn']; $brukar = $_POST['navn']; $pass = $_POST['pass']; if ($brukar == $navn) { echo 'Du er logga inn!'; $rett = true; break; }} if($rett = false){echo 'Pell deg ut, og logg inn med rikig passord!';} Endret 31. januar 2006 av Fjott Lenke til kommentar
Loomy Skrevet 31. januar 2006 Del Skrevet 31. januar 2006 (endret) Ved nærmere studier tror jeg ikke du trenger en loop engang. Dette tror jeg skal funke: $bruker = mysql_real_escape_string($_POST['bruker']; $pass = mysql_real_escape_string($_POST['bruker']); $query = mysql_query("SELECT brukernavn, passord FROM tabell WHERE brukernavn = '$bruker' AND passord = '$pass'"); if(mysql_num_rows($query) == 1) { // Logget inn } else { // IKKE logget inn } Endret 31. januar 2006 av Loomy Lenke til kommentar
Arne Skrevet 31. januar 2006 Forfatter Del Skrevet 31. januar 2006 (endret) Tusen, tusen takk! Har lært mykje Mysql/PHP i dag! Eg lurar på ein ting til eg (når eg først er igang): Eg held på med ei side der du kan opprette nye brukare. <html> <head> <title> ACP - ADMIN_CONTROLPANEL </title> </head> <body> <?php if(isset($_COOKIE['on'])){ // IKKJE FORANDRE! if(isset($_POST['epost']) AND isset($_POST['bruker']) AND isset($_POST['pass'])){ $bruker = $_POST['bruker']; $epost = $_POST['epost']; $pass = $_POST['pass']; $tilkobling = mysql_connect("xxx", "xxx", "xxx"); mysql_select_db("brukare", $tilkobling); $sql = " INSERT INTO brukare (Brukarnavn, Passord, Epost) VALUES ('$bruker', '$pass', '$epost')"; mysql_query($sql, $tilkobling); echo "Brukaren er lagra"; echo "<a href='au.php'>Tilbake</a>"; }//Slutt på hovudinhald. else { echo "<h1>Legge til brukare</h1> <p>Her kan dei som er logga inn lage nye brukare. Du må skrive litt info om brukaren som du skal<br>opprette:</p> <form action='au.php' method='post'> <p>Brukarnamn:</p> <input type='text' name='brukar'> <p>Brukarens passord:</p> <input type='text' name='pass'> <p>E-mailen til brukaren:</p> <input type='text' name='epost'> <input type='submit' value='registrer'>"; }} else { echo "<a href='index.php'><b>Logg inn!</b></a>";} ?> </body> </html> Det er koden min. Når eg køyrer den, kjem eg berre tilbake til hovudmenyen. Kva har eg gjort feil? Endret 31. januar 2006 av Fjott Lenke til kommentar
kakkle Skrevet 31. januar 2006 Del Skrevet 31. januar 2006 Tenker du på loginformen når du sier hovedmenyen ? Du kan ikke bruke AND som en operator i if setningen. Det som skal brukes i dette tilfellet er: && AND = && OR = || Lenke til kommentar
Arne Skrevet 31. januar 2006 Forfatter Del Skrevet 31. januar 2006 Kan eg ikkje bruke AND? Kvifor ikkje? Nei, hovedmeny = der du registrerer brukere. Lenke til kommentar
kakkle Skrevet 31. januar 2006 Del Skrevet 31. januar 2006 (endret) Jaggu kan man visst bruke and og or også... MEn ser at du har en mismatch på bruker / brukar. brukar i form name, og bruker i if setning... Så det kan jo fort være litt trøblete EDIT: <input type='text' name='brukar'> og if(isset($_POST['epost']) AND isset($_POST['bruker']) AND isset($_POST['pass'])){ Endret 31. januar 2006 av kakkle Lenke til kommentar
Arne Skrevet 1. februar 2006 Forfatter Del Skrevet 1. februar 2006 Tusen takk. Prøvar å lage eit script i nynorsk, men det blir ofte ltt rot... Lenke til kommentar
NH Skrevet 1. februar 2006 Del Skrevet 1. februar 2006 $sql = "SELECT * FROM [tabellnavn] WHERE [navnefelt-navn]=$'navn'"; $resultat = mysql_query($sql) or die("Feil i spørring: $sql <br>".mysql_error()); $ant_funnet = mysql_num_rows($resultat); //Antall funnet med det navnet if($ant_funnet>0) { $navn = $rad['Brukarnavn']; $brukar = $_POST['navn']; $pass = $_POST['pass']; echo "Du er logget inn med navnet ".$navn; } else { echo "Navnet $navn ble ikke funnet i databasen"; } f.eks. Bytt ut det inni [] med dine verdier. Forøvrig så anbefaler jeg deg å lese litt mer om php/mysql. Lag små script som du utvider etterhvert, slik at du lærer det skikkelig, før du begynner å lage noe til websider. 5528483[/snapback] Vil bare påpeke at du ikke validerer input, her kan vemsomhelst logge deg inn. om jeg logger meg inn med ' OR 1='1 som brukernavn vil jeg automatisk bli logget inn som den første brukeren mysql_fetch_array finner. Søk på sql-injections på google. Dette kan hjelpe deg en hel masse. Fjern ale < > = , . ' " fra brukernavn og passord før du sender det til $sql spørringen din dette kan gjøres med opptil flere metoder. f.eks preg_match(), htmlentities(), htmlspesialchars() etc Lenke til kommentar
luser32 Skrevet 1. februar 2006 Del Skrevet 1. februar 2006 Som du finner på www.php.net Lenke til kommentar
Arne Skrevet 2. februar 2006 Forfatter Del Skrevet 2. februar 2006 Takk, brukte ein htmlentities. Lenke til kommentar
Albino Skrevet 2. februar 2006 Del Skrevet 2. februar 2006 Tusen takk. Prøvar å lage eit script i nynorsk, men det blir ofte ltt rot... 5532252[/snapback] Jeg ville ikke brukt noen som helst form for norsk når jeg skriver skript. Jeg ville unngått å bruke æøå. Er alltid skeptisk til slikt. Hold deg til engelsk i koden, men det som skal skrives ut til skjermen kan være på nynorsk. Lenke til kommentar
Arne Skrevet 2. februar 2006 Forfatter Del Skrevet 2. februar 2006 Og, takk. *endre* 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å