Avatar billede way3000 Nybegynder
04. august 2007 - 20:32 Der er 19 kommentarer og
1 løsning

satte variabler forsvinder i includede filer (uddybes)

Hejsa. Mit site fungerer ca. sådan her.//variabel navnene er lavet om for at lette det hele :)

man logger ind på login.php (med variablerne user og pass)
så kommer man til index.php som først checker om der står noget i $user. Hvis der gør det starter den en session_start(); og sætter variablen $bruger til login navnet. ($user = $bruger)
og includer derefter de sider som brugeren beder om (eks. info.php eller cart.php osv..) (SWITCH)

Mit problem er nu at efter jeg har startet en session og sat en variabel i den, kan jeg ikke trække den ud i de includede sider. skriver jeg eks.
echo "Bruger: " . $bruger; //Bruger:
Det er ret mærkeligt, men hvis nogen kender svaret så sig til jeg er lutter øren.

Spørgsmål er velkomne da det er lidt svært at forklare det hele så alle forstår det´, tror jeg.

Tusind tak
//WaY3000
Avatar billede erikjacobsen Ekspert
04. august 2007 - 20:44 #1
Det vil altid virke, at når

  $user = $_SESSION['user'];
  include("fil.php");

vil $user kunne ses i "fil.php". Tror du ikke det er et almindeligt session-problem. session_start() på alle side (ikke dem der inkludes) ??
Avatar billede way3000 Nybegynder
04. august 2007 - 20:52 #2
session_start();
session_register("bruger");
$user = $bruger;

Sådan gør jeg. men vil lige kikke på det du skrev og så melde tilbage. det satte lige tandhjulene igang :)

forresten hvad mener du med om det er et almindeligt session problem ?

Der vises kun index.php da den side jo includer alle  de andre som $bruger skal vises på ? på login.php er der intet med sessions. den sender bare $user videre til index.php. ?
Avatar billede erikjacobsen Ekspert
04. august 2007 - 20:53 #3
Eller det klassiske funktionsproblem i netop PHP

  $a=7; $b=9;
  function c() {
    global $b;
      print "$a $b";
  }
  c();

vil udskrive " 9", fordi $a ikke er kendt i funktionen.
Avatar billede erikjacobsen Ekspert
04. august 2007 - 20:54 #4
Man bruger ikke, i betydningen: aldrig, session_register. Altid: $_SESSION
Avatar billede way3000 Nybegynder
04. august 2007 - 21:00 #5
Okey. det vidste jeg faktisk ikke. det var faktisk en kanon oplysning. tusind tak :) det skal jeg sq huske.

fandt bare denne på php.net via en guide
http://dk.php.net/manual/da/function.session-register.php

men vil forsøge med dit råd :) tusind tak. bare knald et svar op. ser klart ud somom det virker.
//WaY3000
Avatar billede way3000 Nybegynder
04. august 2007 - 21:02 #6
nu kom jeg i tvivl.  jeg sætter den globale variabel $bruger ved at sætte

$_SESSION["bruger"] = $bruger ik ? eller fattede jeg forkert :P (kunne sq ligne mig)
Avatar billede erikjacobsen Ekspert
04. august 2007 - 21:04 #7
Og på det link glemte du lige at læse de tre "pas på"-er... ;)

Jeg ved ikke hvad det er du vil gøre, så derfor kan jeg ikke sige hvad du skal.
Avatar billede way3000 Nybegynder
04. august 2007 - 21:19 #8
Jeg skal bare have registreret en global variabel så jeg altid uanset hvad på en hvilken som helst side der er inkluderet på index.php kan skrive echo $bruger; og så står ham der er logget ind's navn... :P
Avatar billede way3000 Nybegynder
04. august 2007 - 21:22 #9
Jeg aner ikke hvad jeg har gjort siden jeg ikke kunne læse de 3 pas på'er :P må have været stiv eller noget hehe (nej bare rolig drikker ikke) men du har ret. skal nok bruge $_SESSION["navn"] = "noget"; fra nu af :). tak :)

du har løst mit problem tror jeg. bare kyl et svar så vi kan få den ko ud af verden :P
Avatar billede erikjacobsen Ekspert
04. august 2007 - 21:22 #10
Ok.

1) På alle reelle sider (ikke include)  session_start();  øverst. Måske gør din PHP det allerede.
2) Hvor du ved hvem brugeren er:  $_SESSION['bruger']='kurt', eller tilsvarende
3) Hvor du skal se hvem der er logget ind:  $bruger=$_SESSION['bruger']; if ($bruger=='kurt') { ... }

4) Kig evt. på http://php.net/isset
Avatar billede erikjacobsen Ekspert
04. august 2007 - 21:23 #11
Jeg samler slet ikke på point, tak. Svar selv, accepter eget svar. Og brug dine point til en glad aften i byen...
Avatar billede way3000 Nybegynder
04. august 2007 - 21:24 #12
Ok måske du lige hurtigt kan naile denher også for mig ?

<?
include("DB.php");
$sql = "INSERT INTO pik ('patter') VALUES ('$patter')";
$query = mysql_query($sql) or die("<br><br>Kunne ikke skrive til databasen - Undskyld boss<br><br>" . mysql_error());
?>

den får jeg:

Kunne ikke skrive til databasen - Undskyld boss

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''patter') VALUES ('hund')' at line 1

på. kan du se why ? så slap jeg for at finde svar på den også :P kan ikke se why den er gal. kan godt hente fra den database så connection er go nok.
Avatar billede erikjacobsen Ekspert
04. august 2007 - 21:27 #13
Der er vist for mange ord jeg ikke forstår. Men der er nok også flere slags stroffer end du lige tænker over: ` ' "
Avatar billede erikjacobsen Ekspert
04. august 2007 - 21:29 #14
Så hvis vi bruger et lidt andet vokabolarium:

$sql = "INSERT INTO legehus ('disneysjov') VALUES ('trehjulet cykel')";
Avatar billede erikjacobsen Ekspert
04. august 2007 - 21:29 #15
Og så glemte jeg lige det vigtigste:

$sql = "INSERT INTO legehus (`disneysjov`) VALUES ('trehjulet cykel')";
Avatar billede way3000 Nybegynder
04. august 2007 - 21:36 #16
Hvad er det lige (`disneysjov`) er ? host database eller tabel ?
Avatar billede erikjacobsen Ekspert
04. august 2007 - 21:37 #17
ja ja, det staves: vokabularium  http://www.retskrivningsordbogen.dk/ro/dataservlet?p1=vokab&p2=false&p3=0&p4=10
Erik - tænk før du skriver!
Avatar billede erikjacobsen Ekspert
04. august 2007 - 21:37 #18
`disneysjov` er et feltnavn
Avatar billede way3000 Nybegynder
04. august 2007 - 21:38 #19
Nej nej nej har jeg bare glemt at sætte ` i stedet for ' :P nej da..

Sorry mange gange og igen tusind tusind mange tak for hjælpen :) kan da ikke være dig mere taknemmelig !

/bow hehe.
Avatar billede way3000 Nybegynder
27. februar 2013 - 16:06 #20
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester