Avatar billede fojensen Nybegynder
09. maj 2002 - 00:20 Der er 17 kommentarer og
1 løsning

Session på windows-server, har du nogen erfaringer ?

Jeg kan ikke få en simpel session til at virke på min windows-server hos azero.dk.

Jeg har testet med et forholdsvis simpelt script, bare for at se at sessions virker, men jeg kan ikke få det til at spille.
se test på: http://www.vindehelsinge.dk/login/session_test1.php
læg mærke til URL-linien - der bliver tilføjet query-string med session-id og navn på session_test1.php men ikke på session_test2.php.

Det samme test-script er også lagt op på http://www.mikl.dk/ses/session1.php (hos en tidligere hjælper fra eksperten) og her spiller det.

Har nogen en ide til hvad der skal gøres for at få det til at virke på min server.
Avatar billede repsac Nybegynder
09. maj 2002 - 00:22 #1
prøv at lave følgende to filer:


-----------------------fil1.php-----------------------
<?php
session_start();
session_register('test');
$test = 'whatever';
?>

<a href="fil2.php">fil2.php</a>
----------------------------------------------


-----------------------fil2.php-----------------------
<?php
session_start();

echo $HTTP_SESSION_VARS['test'] . '    - hvis der står whatever i denne linie skal du skrive: $http_session_vars["variabelnavn"] for at hente det du har gemt :)';

echo "<br>";

echo $test . '    - hvis der står whatever i denne linie skal du bare skrive: $variabelnavn for at hente det du har gemt :)';
?>
----------------------------------------------
Avatar billede repsac Nybegynder
09. maj 2002 - 00:22 #2
Virker noget af det? (for det _burde det!)
Avatar billede fojensen Nybegynder
09. maj 2002 - 00:36 #3
Jeg er måske lidt tung i det, for jeg forstår måske ikke helt resultatet af testen.
Prøv lige at se på resultatet - testen ligger på test på: http://www.vindehelsinge.dk/login/fil1.php og lad mig høre din mening.
Avatar billede fojensen Nybegynder
09. maj 2002 - 00:56 #4
respac > Jeh har forstået testen nu, og hverhen
echo $HTTP_SESSION_VARS['test'] eller
echo $test henter variablen frem.

når fil2.php vises bliver session-id tilføjet som query-string...
Avatar billede fojensen Nybegynder
09. maj 2002 - 01:08 #5
er der ikke andre der har erfaring, gerne fra en windows server ?
Avatar billede martin1000ben Nybegynder
09. maj 2002 - 01:24 #6
Ja da ... på min PHP 4.1.2 virker sessions perfekt :)
Både på Windows 98 + 2000 og XP så det spiller ...

MEEEN hvis du nu har fået PHP 4.2 så ska du til at lære at bruge de super globale arrays da global_register er slået fra, så henter man en session sådan her:

$_SESSION['test'];

og poste metoden i en form er således
$_POST['navn'];

og get metoden
$_GET['alder'];

og diverse server variabler
$_SERVER['document_root'];

osv osv osv.
Avatar billede fojensen Nybegynder
09. maj 2002 - 01:35 #7
martin1000ben > min er PHP Version 4.0.3pl1, og der kan ses mere om dens opsætning på http://www.vindehelsinge.dk/phpinfo.php
Men vend endelig tilbage hvis du har et bud - jeg er ganske vist på vej i seng nu, men jeg hører gerne mere...
Avatar billede martin1000ben Nybegynder
09. maj 2002 - 03:04 #8
I øvrigt kunne det være lækkert at få kildekoden til dine oprindelige filer
http://www.vindehelsinge.dk/login/session_test1.php

Man får jo ik rigtig meget ud af at bare kigge på siden vel :)
Avatar billede martin1000ben Nybegynder
09. maj 2002 - 03:06 #9
mit første bud er at du ikk starter sessionen på din side 2 .. med session_start som det ALLERFØRSTE!!! efter den første <?
Avatar billede kao Nybegynder
09. maj 2002 - 11:49 #10
REPSAC har ret !!

Dit problem er overførsel af variabel mellem skærmbillederne.
Man kan sætte PHP op med globale variable on eller off.
Default (og som det også er på Azero) er off (Dette af sikkerheds hensyn)
De er så formentlig sat til on på din kammerats server.

Men på Azero skal du selv overføre variable fra HTTP variable til PHP variable.

Det gøres lettest med nedenstående skrift (http.inc), som jeg også bruger i min session

Jeg har også Azero som webhotel og jeg kan godt få det til at virke -
Prøv : http://www.purpurdata.dk/test/sess_start.php

Og nu overføres variablen til den nye session.

Min source ser sådan ud :
Sess_start.php :

<?php
session_start();
session_register('test');
echo "Hej du er session : ".session_id()."<br/>";

?>
<html><body>
<form action="SESS_2.php" method="post">
  <input name="test">
  <input type="submit">
  </form>
</body></html>
******************
Sess_2.php :

<?php
session_start();
include ("http.inc");
echo "Hej du er session : ".session_id()."<br/>";
echo '$Test ER LIG MED  '.$test;
?>
************************************
Http.inc :

<!-- Hent HTTP variabler ind i PHP variabler  -->
<?php
if($HTTP_POST_VARS){
  foreach($HTTP_POST_VARS as $Key=>$Value)
  {
    $$Key = $Value;
  }
}

if($HTTP_SESSION_VARS){
  foreach($HTTP_SESSION_VARS as $Key=>$Value)
  {
    $$Key = $Value;
  }
}

if($HTTP_COOKIE_VARS){
  foreach($HTTP_COOKIE_VARS as $Key=>$Value)
  {
    $$Key = $Value;
  }
}

if($HTTP_GET_VARS){
  foreach($HTTP_GET_VARS as $Key=>$Value)
  {
    $$Key = $Value;
  }
}

if($HTTP_SERVER_VARS){
  foreach($HTTP_SERVER_VARS as $Key=>$Value)
  {
    $$Key = $Value;
  }
}

if($HTTP_ENV_VARS){
  foreach($HTTP_ENV_VARS as $Key=>$Value)
  {
    $$Key = $Value;
  }
}
?>
Avatar billede mikl-dk Nybegynder
09. maj 2002 - 16:25 #11
Den på mikl.dk har jeg desværre slettet. Der er nok ikke nogle, der får brug for den, men så I ikke tror, at det er jeres com der er noget i vejen med; det er det ikke. Filerne er blevet slettet :)
Avatar billede fojensen Nybegynder
09. maj 2002 - 16:57 #12
mikl-dk > det er også ok, og tak for indsatsen i det tidligere spørgsmål http://www.eksperten.dk/spm/205415 - men det kom aldrig til at fungerede på min server.
Avatar billede fojensen Nybegynder
09. maj 2002 - 17:00 #13
kao > det var lige noget der virkede.
Jeg har ellers selv forsøgt at overføre variable fra HTTP variabler til PHP variabler efter de forskrifter der er beskrevet på http://www.azero.dk/?/support/programmering/php/faq/ .
Her står bl.a. at "Register_globals = off" og der er beskrevet indholdet af en fil med et lignende indhold, som de foreslår at man includerer i (alle) sine scripts.
Jeg kan se at du har udvidet din include-fil i forhold den azero anbefaler, og jeg kan også se at du kun anvender den på filen "sess_2.php"
Kan fejlen være at jeg har includeret den i både fil1 og fil2 ? - i hvert fald vil jeg teste videre med grundlag i dine testfiler, som jeg ved virker på azero.
Både tak og point til kao...
Avatar billede fojensen Nybegynder
10. maj 2002 - 00:44 #14
kao > Ja - det var lige noget der virkede, men det virker på en anden måde end jeg først troede.
Du laver et method=POST fra en formular til at få variablen med videre til næste side, og derfor er det ikke $HTTP_SESSION_VARS['test'] der kalber variablen frem på næste side, men $HTTP_POST_VARS['test'].
Når jeg eksempelvis vil have det lille test-script fra respac til at køre, så må jeg lave linken om til en submit via en formular ligesom dit, og jeg får kun variablen frem på næste side, hvis jeg ændrer hans " echo $HTTP_SESSION_VARS['test'] " til " echo $HTTP_POST_VARS['test'] "
Ved du eller nogen andre hvad man gør for at få variablen lagret med session, og kaldt frem med session på næste side?
Avatar billede fojensen Nybegynder
10. maj 2002 - 15:44 #15
Ja det er nok mest rigtigt at oprette en nyt spørgsmål om emnet, og med de nye erfaringer jeg har gjort her.
Avatar billede fojensen Nybegynder
10. maj 2002 - 15:46 #16
Det nye spørgsmål hedder http://www.eksperten.dk/spm/209678, og løsningen kommer forhåbentlig her.
Avatar billede fojensen Nybegynder
28. maj 2002 - 23:51 #17
Her kommer løsningen - for det kan lade sig gøre:
måden at registrere session på i fil1.php laves om til
$HTTP_SESSION_VARS['test'] = 'whatewer';
så de simple testfiler fommer til at se sådan ud:

-----------------------fil1.php-----------------------
<?php
session_start();
$HTTP_SESSION_VARS['test'] = 'whatewer';
?>

<a href="fil2.php">fil2.php</a>
-------------------------------------------------------

og så har den variablen "test" med til næste side, hvar den kan skrives ud ved hjælp af:
echo $HTTP_SESSION_VARS['test'];

-----------------------fil2.php-----------------------
<?php
session_start();

echo $HTTP_SESSION_VARS['test'] . '    - hvis det første ord i denne linie er whatever skal du bare skrive: $http_session_vars["variabelnavn"] for at hente det du har gemt :)';
echo "<br>";
echo $test . '    - hvis det første ord i denne linie er whatever skal du bare skrive: $variabelnavn for at hente det du har gemt :)';
?>
-------------------------------------------------------
Avatar billede fojensen Nybegynder
28. maj 2002 - 23:55 #18
oversættelse af stavefejlene:
fommer = kommer
hvar = hvor
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