Gå til innhold

SESSION funker ikke


Anbefalte innlegg

Hei, jeg har holdt på med å lage en webshop (kodet i PHP) lokalt på PCen min. Jeg bruker xampp til dette. Etter at kodinga ble ferdig, og webshopen viste seg å fungere 100% riktig, så trodde jeg alt var i orden. Neste steget var jo å laste opp mappa med webshopen til en server som jeg leier av www.webhuset.no for å gjøre den klar.

 

Men, det er her problemet ligger. Jeg har lagd en nøyaktig lik database som den jeg bruker på xampp/phpmyadmin. Login-funksjonen ser ut til å svikte. Det fungerer å logge inn, men med en gang jeg skal til en annen .php fil i webshopen som krever innlogging, så logger den meg nemlig ut og omdirigerer meg til index.php (dette er en funksjon jeg lagde for å returnere brukere som ikke var logget inn og prøvde å få aksess på admin-område). Hva kan dette komme av?

 

Som sagt, det fungerer helt fint lokalt på PCen min... Er det noen innstillinger på webserveren som må konfigureres?

Endret av kansas86
Lenke til kommentar
Videoannonse
Annonse

Har feilsøkt, og kommet frem til at det er heller databasen, enn SESSION som er tvilsomt her.

 

Limer inn den delen av koden hvor omdirigeringa skjer:

<?php
session_start();
//check if logged in - users not logged in should NOT have
//access to this page
if(!isset($_SESSION["manager"])){
   header("location: admin_login.php");
   exit();
}
//Be sure to check that this manager SESSION value is in fact in the database
$managerID = preg_replace('#[^0-9]#i','',$_SESSION["id"]);
$manager = preg_replace('#[^A-Za-z0-9]#i','',$_SESSION["manager"]);
$password = preg_replace('#[^A-Za-z0-9]#i','',$_SESSION["password"]);

//Run MySQL query to be sure that this person is an admin and that their 
//password session var equals the database information
//Connect to the MySQL database
include "../storescripts/connect_to_mysql.php";
$sql = mysql_query("SELECT * FROM admin WHERE id='$managerID' AND username='$manager' 
AND password='$password' LIMIT 1");

//Make sure the person exists in database
$existCount = mysql_num_rows($sql); //count the row numbers
if($existCount == 0){ //if not found in database, redirect to index
header("location: ../index.php");
exit();
}
?>

 

 

Det er selve $sql spørringa som returnerer ingenting på webhusets server! Mens den returnerer 1 (som den egentlig skal) på min localhost med xampp!

$existCount = 1 (xampp)

$existCount = 0 (webhuset.no)

Databasene har helt likt oppsett, bortsett fra privilegier og sånt, for det har jeg ikke peiling på (bruker standard oppsett på xampp, men har satt passord på root). Kan forresten tegnsett ha noe med dette å gjøre? Jeg mener phpmyadmin på webhuset.no bruker latin1.swe et eller annet... Mens phpmyadmin på xampp kjører med standardinnstillingen (noe med UTF-8).

Endret av kansas86
Lenke til kommentar

Hvilke verdier har du i $managerID, $manager og $password før mysql_query?

 

edit:

Tegnsettet burde ikke ha noenting å gjøre med dette så lenge det ikke er æ, ø eller å i noen av variablene, da kan du få problemer.

 

Kan du prøve å kjøre denne:

$sql = mysql_query("SELECT * FROM admin WHERE id='$managerID' AND username='$manager' 
AND password='$password' LIMIT 1");

 

med kjente verdier fra databasen i klartekst fremfor variablene?

Har opplevd at mysql er sykt kresen på hvilke tegn som blir brukt i queryen og sånt.

Type " ´ " funker, men ikke " ' ".

Endret av tombayo
Lenke til kommentar

Jeg kjørte spørringa manuelt som du sa og det viser seg at den gir utslag. Så jeg tok og echo'ed ut $managerID, $manager, $password.

 

$managerID ser ut til å skifte verdi, så noe tyder på overskriving av variabelen et annet sted i koden. (lurer på om det ikke er $id = row["id"])

Jeg har fulgt en tutorial, så jeg får bare sette i gang og lete :(

Kan sikkert slette tråden, moderator. Takk for hjelpen likevel.

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å
×
×
  • Opprett ny...