Aleks855 Skrevet 7. desember 2012 Del Skrevet 7. desember 2012 (endret) Hei, Driver og tukler litt med PHP, og har en veldig, veldig basic login-form. Problemet er at den funker helt fint på localhost (XAMPP), men ikke på webserver (Domeneshop). Index-fila ser slik ut: <!DOCTYPE html> <?php require 'core.inc.php'; require 'connect.inc.php'; if (loggedin()) { echo 'You are logged in.'; } else { include 'loginform.inc.php'; } ?> loggedin()-funksjonen ligger i core.inc.php, som ser slik ut: <!DOCTYPE html> <?php ob_start(); session_start(); $current_file = $_SERVER['SCRIPT_NAME']; function loggedin() { if (isset($_SESSION['user_id']) && !empty($_SESSION['user_id'])) { return true; } else { return false; } } ?> Problemet ligger sannsynligvis i en av disse. If-setninga i index-fila fungerer helt fint. Den viser loginform hvis brukeren ikke er logget inn, og viser en echo hvis brukere er logget inn. Det som skjer når jeg laster opp de samme filene til webhotellet, er at innlogginga går helt fint, den viser "Invalid user/pass" hvis brukeren har tastet feil bruker/passord (gjennom en mysql_query), men når brukeren taster RIKTIG bruker pass, så viser den bare innloggings-skjemaet igjen, bare uten feilmeldinga. Så den ser ut til å merke at det er riktig brukernavn/passord, men den inkluderer likevel loginform-fila. Noen som ser en blatant feil? Synes det er rart at det fungerer på localhost, men ikke på webhotell. EDIT: Ved nærmere sjekk, så ser jeg at localhost lager cookie med SESSIONID, men det gjør ikke sida som ligger på webhotellet. Er det noe spesielt jeg må legge til i koden for å sørge for at det fungerer på alle servere? Endret 7. desember 2012 av Aleks855 Lenke til kommentar
Kompjut Skrevet 10. desember 2012 Del Skrevet 10. desember 2012 Du kan ikke ha noe output før du kaller start_session(). Hvis du flytter dette kallet helt øverst, altså før DOCTYPE, så bør det fungere fint. Vil anbefale deg å, i testmiljøet ditt, aktivere error_reporting i PHP. Det kan du enten gjøre i php.ini eller ved å skrive følgende kode først i index.php: <?php session_start(); // husk denne her error_reporting(E_ALL); ini_set("display_errors", 1); ?> 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å