Gå til innhold

Mysql_fetch_row() funker ikke


Anbefalte innlegg

Skrevet (endret)

Noen som vet hva som er galt med denne kodebiten:

while($mysql_row=mysql_fetch_row($result)) {
$_SESSION['id']=mysql_row['id'];
$_SESSION['username']=mysql_row['username'];
$_SESSION['lastlogin']=date("Y-m-d H:i:s");
print_out("Du er nå innlogget.$_SESSION[username]");
}

Har prøvd å luke ut ting med //

og jeg har funnet ut at det er mysql_fetch_row den har problemer med. Men jeg har brukt akkurat den samme koden på et annet script og finner ikke feilen. Er det noen som kan hjelpe meg?

 

Full kode

 

<?php
include 'faste/db-info.php';
function print_out($print_out) {
 include 'faste/topp.php';
 echo '<h2>Logg inn!</h2>';
 if($print_out!="") {echo "<p>$print_out</p>";}
 echo '
<form action="" method="post">
<p>
Brukernavn: 
<input type="text" name="username" /><br />
Passord: 
<input type="password" name="password" /><br />
<a href="glemt_passord.php">Glemt passordet</a><br />
<input type="submit" value="Logg inn" /></p>
</form>';
 include 'faste/bunn.php';
 exit();
} //slutt på funsjon print_out()


if($_POST) { //Bruker sender login form
if($_POST['username']=="" || $_POST['password']=="") {
print_out('Du har ikke skrevet inn brukernavn og passord.');
}
if(preg_match("/[^a-z0-9]/i", $_POST['username']) || preg_match("/[^a-z0-9]/i", $_POST['password'])) {
print_out("Brukernavn eller passord inneholder tegn som ikke er lov.");
} 

//Skjekker om riktig login i database
$username=$_POST['username'];
$password=md5($_POST['password']);
$query="SELECT username FROM users WHERE username='$username' AND password='$password'"; //string til DB
$result=mysql_query($query);
if($result="") {
mysql_error();
mysql_close($mysql_connect);
print_out("Brukernavn og/eller passord er feil.<br />$password");
} //end if
else {
session_start();
while($mysql_row=mysql_fetch_row($result)) {
 $_SESSION['id']=mysql_row['id'];
 $_SESSION['username']=mysql_row['username'];
 $_SESSION['lastlogin']=date("Y-m-d H:i:s");
 print_out("Du er nå innlogget.$_SESSION[username]");
}
/*
$_SESSION['id']='1365';
$_SESSION['username']='JonT';
$session_username=$_SESSION['username'];
$_SESSION['lastlogin']=date("Y-m-d H:i:s");
print_out("Du er nå innlogget.$_SESSION[username]");
*/
} //end else
} //slutt på end if($_POST)

else {
print_out("");
} //slutt på end if($_POST) else
?>

 

 

Får denne feilmeldingen:

Parse error: syntax error, unexpected '[' in C:\Programfiler\xampp\htdocs\login.php on line 43
Endret av JonT
Videoannonse
Annonse
Skrevet
while($mysql_row=mysql_fetch_row($result)) { // variabelen heter $mysql_row
$_SESSION['id']=mysql_row['id']; // her står det mysql_row
$_SESSION['username']=mysql_row['username'];// her står det mysql_row
$_SESSION['lastlogin']=date("Y-m-d H:i:s");
print_out("Du er nå innlogget.$_SESSION[username]");
}

Skrevet

Som frøknen over prøver å si, du har glemt å angi variabelprefikset($) når du bruker $mysql_row til å sette sesjonsvariablene.

Skrevet (endret)

Tusen takk.

Jeg er ikke ny begynner, men det er ofte jeg glemmer et eller annet eller skriver noe feil, og jeg greier aldri finne feilen.

Endret av JonT
Skrevet

Hmm..

Det oppsto enda en feil. Fikk denne feilmeldingen:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\Programfiler\xampp\htdocs\login.php on line 42
Skrevet

if($result="") {
mysql_error();
mysql_close($mysql_connect);
print_out("Brukernavn og/eller passord er feil.<br />$password");
} //end 

 

Du setter $result til "" istedenfor å sjekke om strengen er tom (noe du strengt tatt skal gjøre med funksjonen empty())

 

strenger skal sammenlignes med strcmp eller strcasecmp

Skrevet

Takk.

I tillegg til denne feilen fant jeg enda en mer vesentlig feil.

Jeg hadde glemt å velge database.

Hater disse skrivefeilene og alle ting som er så dødsviktige å ha med.

 

Men selfølgelig når jeg har løst et problem dukker det selfølgelig opp ett nytt ett.

Bruker nå denne koden:

session_start();
$mysql_row=mysql_fetch_row($result);
 $_SESSION['id']=$mysql_row['id'];
 $_SESSION['username']=$mysql_row['username'];  //Feilen antagelig her.
 $_SESSION['lastlogin']=date("Y-m-d H:i:s");
 $_SESSION['permission']=$mysql_row['permission'];
 include 'faste/topp.php';
 echo '<h2>Logg inn</h2>';
 echo "<p>Du er nå innlogget som $_SESSION[username]</p>";
 include 'faste/bunn.php';

 

Feilmelding:

Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

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