Vindstille Skrevet 1. juni 2006 Del Skrevet 1. juni 2006 (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 1. juni 2006 av JonT Lenke til kommentar
CruellaDeVille Skrevet 1. juni 2006 Del Skrevet 1. juni 2006 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]"); } Lenke til kommentar
Peter Skrevet 1. juni 2006 Del Skrevet 1. juni 2006 Som frøknen over prøver å si, du har glemt å angi variabelprefikset($) når du bruker $mysql_row til å sette sesjonsvariablene. Lenke til kommentar
Vindstille Skrevet 1. juni 2006 Forfatter Del Skrevet 1. juni 2006 (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 1. juni 2006 av JonT Lenke til kommentar
Vindstille Skrevet 1. juni 2006 Forfatter Del Skrevet 1. juni 2006 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 Lenke til kommentar
Peter Skrevet 1. juni 2006 Del Skrevet 1. juni 2006 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 Lenke til kommentar
Vindstille Skrevet 2. juni 2006 Forfatter Del Skrevet 2. juni 2006 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 Lenke til kommentar
Vindstille Skrevet 3. juni 2006 Forfatter Del Skrevet 3. juni 2006 Fant problemet. Hadde allered en variablem som het $username og PHP advararte meg da om at global_sessions var off. Takk for hjelpen alle sammen. 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å