TestMax.dk Paster
  • Forside
  • Print
  • Bookmark
  • Kontakt
  • SiteMap


infobox infobox
 

Nub søger hjælp $_SESSION

16-10-2008 02:07:52
 
 
Muligheder (Anmeld)
Skrevet af edeks
Kliks 1106
Kategori PHP Generelt
Hey allesammen, som sagt er jeg ikk stor bruger af PHP, men fatter bare ikk lige at det her ikk vil virke, for synes jeg har gjort det tusinde gange før.

Jeg er ved at lave et lille simpelt (!! SIMPELT !!) login system. Havde forestillet mig at det skulle fungere så nemt at når man logger på vil en session ved navn $_SESSION["cs_login"] = "on";. Altså at den er "on" når man er logget ind.

Mit problem er bare at efter man er logget ind, vil den ikk gemme min session. Når siden går fra <form> siden (login.php) til mysql_query siden (login_pass.php), fungere den fint, men så snart jeg skifter væk fra min login_pass.php forsvinder mine sessions, og den husker hverken ID, username, nickname, eller noget som helst andet.

Kig lige på koden engang, for er pænt træt af det her..

login_pass.php

include("db.php");
                                   
               $brugernavn = $_POST["brugernavn"];
               $password = $_POST["password"];
               $login = mysql_query("SELECT * FROM users WHERE brugernavn = '$brugernavn'");
               $logindata = mysql_fetch_array($login);
                                   
                     if($password == $logindata["password"]) {
$_SESSION["cs_login"] = "on";
                            $_SESSION["cs_id"] = $logindata["id"];
                            $_SESSION["cs_brugernavn"] = $logindata["brugernavn"];
                            $_SESSION["cs_nickname"] = $logindata["nickname"];
                            echo "You have been logged in with success as user: <b>" . $_SESSION["cs_brugernavn"] . "</b>";

                     }
                     else
{
                            echo "You have failed to be logged in. Please try again!";
                     }


Hvor jeg har min:

<?php
               if($_SESSION["cs_login"] == "on"){
               include("profil_menu.php");
               }
               else
{
               include("login_menu.php");
               }
?>


Ved ikk om det er dårligt forklaret, men altså:

Når jeg logger ind, finder den fint nok ud af om brugeren findes eller ej.
Hvis ikk skriver den bare skrid hjem, hvis den gør skriver den fint linjen:
echo "You have been logged in with success as user: <b>" . $_SESSION["cs_brugernavn"] . "</b>";
. Der kan den sagtens finde min $_SESSION["cs_brugernavn"]. Men så snart jeg linker til et andet sted, kan den ikke finde mine sessions frem igen. f. eks har jeg også en profil side hvor de er bestemt efter id. Altså:


<a href=profile.php?id=<?php echo $_SESSION["cs_id"]; ?>>My Profile</a>


Den fatter den også i starten, men så snart jeg linker væk skriver den bare i URL line: http://localhost/sites/profile.php?id= . Altså uden tal. Hvor den før skrev tallet efter "=" tegnet..

Jeg skriver dårligt når jeg er vred, og i må satme vide hvordan det er at sidde og glo efter en skide fejl i et simpelt script som det her, og jeg er ved at brænde totalt af!
Plz. Hjælp nubben..
 
infobox infobox


infobox infobox
 
#1kar(Anmeld) 16-10-2008 02:09:49
 
 
hey kan se du ikke har nogle start_session(); i nogle af filerne. har du den ?
90% af alle teenagere ville dø hvis Arto havde en systemfejl og blev permanent lukket. Hvis du er en af de 10% der ville grine, copy & paste dette til din signatur.
 
infobox infobox

infobox infobox
 
#2edeks(Anmeld) 16-10-2008 02:11:29
 
 
Ja jeg har også session_start(); med i toppen på alle mine .php filer :(
 
infobox infobox

infobox infobox
 
#3kar(Anmeld) 16-10-2008 02:16:20
 
 
slet alle dem og kun ha en i index.php eller din main fil
90% af alle teenagere ville dø hvis Arto havde en systemfejl og blev permanent lukket. Hvis du er en af de 10% der ville grine, copy & paste dette til din signatur.
 
infobox infobox

infobox infobox
 
#4edeks(Anmeld) 16-10-2008 02:26:51
 
 
Nu slettede jeg lige alle mine <?php session_start(); ?> i toppen af mine .php dokumenter, det svarer lige nu bare som om at den overhovedet ikk virker :P Altså nu kan den slet ikke finde mine sessions mere, fordi at den jo ikke starter session_start(); i toppen af dokumentet.

Det eneste sted jeg har den lige nu er index.php, må desværre indrømme det kun gjorde det værer..
 
infobox infobox

infobox infobox
 
#5kar(Anmeld) 16-10-2008 02:29:24
 
 
jamen har du ikke en index.php eller en fil hvor du include alle filerne ?

hvis ikke skal det tilbage.. men det så bare ud som om den felj.
90% af alle teenagere ville dø hvis Arto havde en systemfejl og blev permanent lukket. Hvis du er en af de 10% der ville grine, copy & paste dette til din signatur.
 
infobox infobox

infobox infobox
 
#6edeks(Anmeld) 16-10-2008 03:00:50
 
 
jeg stinker til at forklarer sådan noget, men .. Orrgh ja altså mine Sessions holder kun indtil jeg skifter side.. Den bliver ved med at sige at jeg er logget ind, men den gemmer ikk min $_SESSION["cs_id"]; som jeg skal bruge til mit link: <a href=profile.php?id=<?php echo $_SESSION["cs_id"]; ?>>My Profile</a>
 
infobox infobox

infobox infobox
 
#7Znow(Anmeld) 17-10-2008 23:09:36
 
 
ehm, så vidt jeg ved, burde det så ikke være

include "db.php"


Uden ( ) imellem "db.php", eller er det okay at bruge ( )?
Der er styr på lortet!
Eller var det lort på styret?...
 
infobox infobox

infobox infobox
 
#8FairFight(Anmeld) 18-10-2008 02:20:37
 
 
det er okay.
.
 
infobox infobox

Påmindelse ved nyt svar

Ved at tilmelde dig automatisk påmindelse, modtager du en email så snart denne tråd bliver besvaret, dog sender vi kun en mail til dig, også selvom der er kommet flere svar, simpelthen for at spare dig for spam i din indbakke.


infobox infobox
  Svar på tråden  
   
 
 
infobox infobox

infobox infobox
  Læs dette før du sender dit indlæg!  
 
Ved tryk på send knappen accepterer du vores regelsæt som kan læses her
Praktiske informationer
Type Eksempel Resultat
Fed [b]din tekst[/b] din tekst
Kursiv [k]din tekst[/k] din tekst
Understreg [u]din tekst[/u] din tekst
Kode felt [code]din tekst[/code]
din tekst
infobox infobox