kansas86 Skrevet 14. februar 2011 Del Skrevet 14. februar 2011 (endret) 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 14. februar 2011 av kansas86 Lenke til kommentar
kansas86 Skrevet 14. februar 2011 Forfatter Del Skrevet 14. februar 2011 (endret) 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 14. februar 2011 av kansas86 Lenke til kommentar
tombayo Skrevet 14. februar 2011 Del Skrevet 14. februar 2011 (endret) 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 14. februar 2011 av tombayo Lenke til kommentar
kansas86 Skrevet 14. februar 2011 Forfatter Del Skrevet 14. februar 2011 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
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å