Gå til innhold

Stoppe while viss true.


Anbefalte innlegg

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 av Fjott
Lenke til kommentar
Videoannonse
Annonse

$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

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 av Fjott
Lenke til kommentar

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 av Loomy
Lenke til kommentar

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 av Fjott
Lenke til kommentar

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 av kakkle
Lenke til kommentar
$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
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

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...