Avatar billede walker Nybegynder
04. august 2002 - 10:54 Der er 24 kommentarer og
1 løsning

SSI & PHP variabler

Hej
Kan nogen hjælpe mig med, hvordan jeg får overført php's session variabler til et shtml(ssi) dokument?
Kan man på nogen måde få serveren til at først parse dokumentet gennem ssi modulet, og så gennem php ? Eller er der en måde man kan få fat i php's sessions variabler uden php?
Det er ikke lykkeds mig at include et php doc...
<!-- #include virtual="doc.php" -->
Avatar billede sukos Juniormester
04. august 2002 - 11:44 #1
Dette virker fint nok for mig:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>SSI og PHP sessions</title>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

</head>
<body>

<!--#include virtual="sesstest.php" -->


</body></html>

Hvor sesstest.php ser så'n ud:

<?php
session_start();
$_SESSION['test'] = "Session_tester!";
$_SESSION['test2'] = "Hvor mange?";
$_SESSION['test3'] = "Vis_alle!";

foreach($_SESSION as $value) {
echo $value ."<br>";
}
?>
Avatar billede walker Nybegynder
04. august 2002 - 11:57 #2
Kan du så også fortælle mig hvorfor jeg ikke kan bruge mine sessions variabler?
<?
    session_start();
    $_SESSION['sessionnr'] = session_id();
    $_SESSION['width'] = $_GET['w'];
    $_SESSION['height'] = $_GET['h'];
    session_register("sessionnr");
    session_register("width");
    session_register("height");
?>

og næste fil ser sådan ud:

<?
  echo $_SESSION['height'];
?>
Avatar billede sukos Juniormester
04. august 2002 - 11:59 #3
Skal:

    session_register("width");
    session_register("height");

ikke være:

    session_register("w");
    session_register("h");

og så:

echo $_SESSION['h'];
Avatar billede sukos Juniormester
04. august 2002 - 12:00 #4
session_register("width"); er jo ikke defineret, men det er $_SESSION['w'];
Avatar billede walker Nybegynder
04. august 2002 - 12:06 #5
Jeg har jo skrevet:
  $_SESSION['width'] = variabel;
skal jeg så ikke registrere:
  session_register('width');
?
Avatar billede sukos Juniormester
04. august 2002 - 12:08 #6
æh, jo? :O)

Jeg prøver lige, men hvad med det eksempel jeg skrev? virker det heller ikke for dig?
Avatar billede sukos Juniormester
04. august 2002 - 12:09 #7
Øh nej, når man bruger:

$_SESSION['navn'] = $var

skal man ikke bruge session_register("var");
Avatar billede sukos Juniormester
04. august 2002 - 12:10 #8
Kun hvis du skrev:

$var = $_GET['w'];
session_register("var");
Avatar billede walker Nybegynder
04. august 2002 - 12:11 #9
Jo, det virker fint, men jeg kan også hente sessions-variablerne fra samme side som de er defineret, men ikke fra næste side... Og det er vel hele meningen med sessionerne... :-)
Avatar billede sukos Juniormester
04. august 2002 - 12:12 #10
Du glemmer vel session_start(); på undersiden? :O)
Avatar billede walker Nybegynder
04. august 2002 - 12:16 #11
ok, jeg har skrevet:
<?
    session_start();
    $_SESSION['sessionnr'] = session_id();
    $_SESSION['width'] = $_GET['w'];
    $_SESSION['height'] = $_GET['h'];
?>
    <SCRIPT LANGUAGE="JavaScript">
    document.location.href = "sesstest.php";

og i sesstest.php brugt din:
    <?php
    foreach($_SESSION as $value) {
    echo $value ."<br>";
    }
    ?>

men der kommer ingenting på skærmen...
Avatar billede walker Nybegynder
04. august 2002 - 12:17 #12
har prøvet at sætte  session_start();  ind i sesstest.php, men stadig ingenting...
Avatar billede sukos Juniormester
04. august 2002 - 12:17 #13
Prøv med:
<?php
session_start();
    foreach($_SESSION as $value) {
    echo $value ."<br>";
    }
    ?>
Avatar billede walker Nybegynder
04. august 2002 - 12:23 #14
Har prøvet det... Du kan prøve at se mine filer på ftp.pandia.dk (usr:sukos, psw:sukos1234)
Avatar billede sukos Juniormester
04. august 2002 - 12:23 #15
Fire filer:

test.shtml:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>SSI og PHP sessions</title>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

</head>
<body>

<!--#include virtual="sesstest.php" -->


</body></html>

sesstest.php:
<?php
session_start();
$_SESSION['test'] = "Session_tester!";
$_SESSION['test2'] = "Hvor mange?";
$_SESSION['test3'] = "Vis_alle!";

foreach($_SESSION as $value) {
echo $value ."<br>";
}
?>
<p>
<a href="test2.shtml">Næste side</a>


test2.shtml:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>SSI og PHP sessions</title>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

</head>
<body>

<!--#include virtual="sesstest2.php" -->


</body></html>

sesstest2.php:
<?php
session_start();

foreach($_SESSION as $value) {
echo $value ."<br>";
}
?>
<p>
sesstest2.php er includet på denne side



Og det virker fint nok.
Avatar billede sukos Juniormester
04. august 2002 - 12:26 #16
Kommer ikke ind
Avatar billede walker Nybegynder
04. august 2002 - 12:33 #17
hmm... min ftp server... Nå, men jeg forstår ikke hvorfor jeg ikke kan få fat i mine $_SESSION variabler, når jeg forlader siden, hvorpå de er oprettet...? Kan det være serverkonfigurering?
Avatar billede sukos Juniormester
04. august 2002 - 12:36 #18
Har du prøvet at teste med de fire filer som nævnt ovenover?
Avatar billede walker Nybegynder
04. august 2002 - 12:41 #19
Ja, nu har jeg... Der kommer intet på test2.shtml siden...
Avatar billede sukos Juniormester
04. august 2002 - 12:43 #20
Kan jeg se en phpinfo() på din side?

<?php phphinfo(); ?>


Har defineret en session.save_path i din php.ini?
Avatar billede sukos Juniormester
04. august 2002 - 12:43 #21
Eller vis hvad der står om sessions i din php.ini
Avatar billede walker Nybegynder
04. august 2002 - 12:54 #22
Min php.ini er sat til 'default'... Men se phpinfo på www.pandia.dk/test/phpinfo.php
ini filen på www.pandia.dk/test/php.html
ini filen er lidt rodet at se på, prøver lige at se hvad jeg kan gøre...
Avatar billede sukos Juniormester
04. august 2002 - 13:01 #23
hmm, prøv at lave en mappe, "sessiondata" på f.eks E:\

åben din php.ini, find session.save_path og skriv:

session.save_path = E:\sessiondata

gem og genstart apache
Avatar billede walker Nybegynder
08. august 2002 - 13:17 #24
Sorry jeg ikke har skrevet tilbage, da min comp gik godt og grundig ned... :-(

Takker for den sidste kommentar... Den fik det til at virke :-))

MVH
Walker
Avatar billede sukos Juniormester
08. august 2002 - 16:46 #25
Bare din comp funker er alt jo godt! :O)

Er iøvrigt blevet lidt klogere på sessions, takket være tipsen, og når man definerer en session på denne måde:

$_SESSION['var'] = $var;

skal man IKKE bruge session_register
Det er kun hvis du gør det på denne måde:

$var = $var2;
session_register("var");

Og for at slette en session, som er oprettet på den første måde:

<?php
session_start();
$_SESSION = array();
session_destroy();
header("Location:eller_what_ever");
exit;
?>

$_SESSION = array();

er LINIEN !
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
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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