Spoon73 Skrevet 15. desember 2006 Skrevet 15. desember 2006 Hei, har et problem som jeg ikke finner ut av. Jeg har en innloggingsside hvor bruker skriver inn brukernavn og passord. Informasjonen blir så sjekket på en ny side (siden under her). Hvis brukernavn og passord er korrekt, blir brukeren sendt videre til hovedsiden. Problemet jeg har, er at dette virker som det skal i Maxthon og IE Explorer, men ikke i Firefox eller Opera. Jeg får ingen feilmelding når jeg prøver i FF eller Opera, men feltene blir bare blanket ut. Her er koden: <?PHP // Define $myusername and $mypassword $myusername=$_POST['myusername']; $myusername = str_replace("'", "", $myusername); $mypassword=$_POST['mypassword']; $mypassword = str_replace("'", "", $mypassword); ob_start(); include ("../db/dbpass.php"); $tbl_name="users"; // Table name // Legger brukernavn inn i session array. $name = $_POST['myusername']; $name = str_replace("'", "", $name); $_SESSION['myusername'] = $name; // Connect to server and select databse. mysql_connect(localhost,$username,$password); @mysql_select_db($database) or die( "Unable to select database"); $sql="SELECT * FROM $tbl_name WHERE id=2 AND username='$myusername' AND password='$mypassword'"; $result=mysql_query($sql); // Mysql_num_row is counting table row $count=mysql_num_rows($result); // If result matched $myusername and $mypassword, table row must be 1 row mysql_close(); if($count==1){ // Register $myusername, $mypassword and redirect to file "R_main.php" session_register("myusername"); session_register("mypassword"); header("location:R_main.php"); exit; } else { $feilmelding = "Feil brukernavn eller passord!"; } ob_end_flush(); ?> På siden som skal komme opp hvis brukernavn og passord er korrekt har jeg denne koden øverst: <?PHP session_start(); if(!session_is_registered(myusername)){ header("location:R_login.php"); } $bruker = $_SESSION["myusername"]; ?> Hvis noen kan forklare meg hvorfor det kun virker i enkelte browsere, så hadde det vært veldig fint. På forhånd takk!
Ståle Skrevet 15. desember 2006 Skrevet 15. desember 2006 Du kan jo prøve meta redirect istedenfor. <meta http-equiv="Refresh" content="2; URL=url">
Ernie Skrevet 15. desember 2006 Skrevet 15. desember 2006 Det kan ha ned med at du ikke følger HTTP-standarden. Den tilsier at det skal være mellomrom mellom "Location:" og URL.
Spoon73 Skrevet 15. desember 2006 Forfatter Skrevet 15. desember 2006 Merkelig det her, for jeg vet at det har fungert før i alle browserne, men nå vil det ikke virke plutselig. Har ikke forandret filene heller... Akkurat samme scriptet fungerer fint på webserveren hvor jeg kjører Firefox 1.5 Sprøtt... Nok en sak å legge i den store haugen med uoppklarte mysterier...?
Spoon73 Skrevet 15. desember 2006 Forfatter Skrevet 15. desember 2006 Det kan ha ned med at du ikke følger HTTP-standarden. Den tilsier at det skal være mellomrom mellom "Location:" og URL. 7508358[/snapback] Funket ikke det heller dessverre...
Gjest Slettet+142 Skrevet 15. desember 2006 Skrevet 15. desember 2006 prøv å gjøre det slik: $host = $_SERVER['HTTP_HOST']; $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); $extra = 'R_main.php'; header("Location: http://$host$uri/$extra"); hentet rett ifra php.net.. håper det virker
Spoon73 Skrevet 16. desember 2006 Forfatter Skrevet 16. desember 2006 (endret) prøv å gjøre det slik: $host = $_SERVER['HTTP_HOST']; $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); $extra = 'R_main.php'; header("Location: http://$host$uri/$extra"); hentet rett ifra php.net.. håper det virker 7509718[/snapback] Koden din fungerer likt som min, altså i Maxthon, men ikke i Firefox. Jeg har funnet ut at det fungerer hvis jeg fjerner koden som står øverst i R_main.php, men problemet med det, er at hvem som helst da kan gå inn på den siden via adressefeltet. I koden under har jeg kommentert bort header... og lagt til echo for å sjekke. <?PHP session_start(); if (!session_is_registered(myusername)) { //header("location: R_login.php"); echo"session IKKE OK"; } else{ echo"session OK"; $bruker = $_SESSION["myusername"]; } ?> "session IKKE OK" kommer opp i Firefox, mens "session OK" kommer opp i Maxthon. Kan det være noe med instillinger i browserene da?? Fatter ingenting av det her... Endret 16. desember 2006 av Spoon73
ZoRaC Skrevet 16. desember 2006 Skrevet 16. desember 2006 (endret) session_is_registered bør ikke brukes lengre... If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered() and session_unregister(). <?PHP session_start(); if (!isset($_SESSION['myusername'])) { echo"session IKKE OK"; } else{ echo"session OK"; $bruker = $_SESSION["myusername"]; } ?> Endret 16. desember 2006 av ZoRaC
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å