/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
php-session fungerer på udbyders webserver~
Fra : Poul Kubel


Dato : 15-04-04 15:58

Hej

Jeg har to sider med følgende php-script:

session1.php:

<?php
if ($navn) {
session_start();
session_register("navn");
}
?>

<html>
<head>
<title>Session1.php</title>
</head>
<body>

<?php if ($_GET['navn']) { ?>

<b>Tak for det!</b><br>
Gå nu videre til <a href="session2.php">session2.php</a>

<?php } else { ?>

<form action="session1.php">
<b>Skriv dit navn - tak!</b><br>
<input type="text" name="navn"><br>
<input type="submit" value="okiedokie">
</form>

<?php } ?>

</body>
</html>

session2.php:

<?php
session_start();
?>

<html>
<head>
<title>Session.php</title>
</head>
<body>
<?php

print "Dit navn er: <b>".$navn."</b>";

?>
</body>
</html>

Mit problem er at scriptet ikke fungerer på min egen computer, når jeg
tester det. Jeg får ingen fejlmeddelelse, men det navn jeg har indtastet i
formularen på session1.php bliver ikke udskrevet på session2.php. Dette
fungerer derimod glimrende på min udbyders webserver (
http://odense.kollegienet.dk/~kubel/session1.php ).

Jeg har sat session.save_path til c:\..\..\session, og når jeg ser efter i
mappen "session" efter at jeg har testet scriptet, har den også efterladt en
fil a la sess_DGF434ffgh...etc. Denne fil indeholder dog ingen oplysninger
hvis jeg åbner den i Notepad, og det burde den vel gøre, eller hvad?

Er der nogen der ved hvad der er galt, eller har et forslag til hvad det
kunne være?

OS: Windows XP
PHP-version: 4.3.4.
Apache-version: 1.3.29.

Mvh.

Poul Kubel



 
 
Poul Kubel (15-04-2004)
Kommentar
Fra : Poul Kubel


Dato : 15-04-04 17:43

Jeg fandt en midlertidig løsning ved at sætte register_globals i php.ini til
"on", men så vidt jeg kan se er det ikke særligt sikkert. Så må jeg jo bare
finde en anden måde at lave scriptet på.

Mvh.

Poul



Kasper Garnæs (15-04-2004)
Kommentar
Fra : Kasper Garnæs


Dato : 15-04-04 23:46

Poul Kubel <kubel@odense.kollegienet.dk> wrote:
> [snip]
> Mit problem er at scriptet ikke fungerer på min egen computer, når jeg
> tester det. Jeg får ingen fejlmeddelelse, men det navn jeg har
> indtastet i formularen på session1.php bliver ikke udskrevet på
> session2.php. Dette fungerer derimod glimrende på min udbyders
> webserver ( http://odense.kollegienet.dk/~kubel/session1.php ).
>
> [snip]
>
> Er der nogen der ved hvad der er galt, eller har et forslag til hvad
> det kunne være?

Husk at bruge $_SESSION arrayet til at tilgå dine variabler i sessionen -
fx.

//sætte en session variabel
$_SESSION["navn"] = $_GET["navn"];

//hente en session variabel
$navn = $_SESSION["navn"];

--
Med venlig hilsen / Regards
Kasper Garnæs
http://kasper.garnaes.dk



Poul Kubel (16-04-2004)
Kommentar
Fra : Poul Kubel


Dato : 16-04-04 12:32


"Kasper Garnæs" <demos@mailme.dk> skrev i en meddelelse
news:c5n3at$4rr$1@news.cybercity.dk...

> Husk at bruge $_SESSION arrayet til at tilgå dine variabler i sessionen -
> fx.
>
> //sætte en session variabel
> $_SESSION["navn"] = $_GET["navn"];
>
> //hente en session variabel
> $navn = $_SESSION["navn"];
>

Nu har jeg prøvet at rode lidt med det, men jeg kan stadig kun få det til at
virke hvis jeg har sat register_globals til "on" i php.ini

Mit php ser således ud:

session1.php:

<?php
if ($_SESSION['navn']) {
session_start();
session_register("navn");
}
?>

<html>
<head>
<title>Session1.php</title>
</head>
<body>

<?php
$_SESSION['navn'] = $_GET['navn'];
$navn = $_SESSION['navn'];
if ($navn) { ?>

<b>Tak for det!</b><br>
Gå nu videre til <a href="session2.php">session2.php</a>

<?php } else { ?>

<form action="session1.php">
<b>Skriv dit navn - tak!</b><br>
<input type="text" name="navn"><br>
<input type="submit" value="okiedokie">
</form>

<?php } ?>

</body>
</html>

session2.php:

<?php
session_start();
?>

<html>
<head>
<title>Session2.php</title>
</head>
<body>
<?php

print "Dit navn er: <b>".$_SESSION['navn']."</b>";

?>

Jeg går ud fra at det er fordi den opfatter $navn som en global variabel og
derfor ikke vil registere den, men jeg kan ikke gennemskue hvordan jeg
ellers kan etablere en relation ml. $_SESSION['navn'] og name="navn" i
formularen.

Poul Kubel



Tonni Aagesen (16-04-2004)
Kommentar
Fra : Tonni Aagesen


Dato : 16-04-04 12:42

Poul Kubel wrote:

> session1.php:
>
> <?php
> if ($_SESSION['navn']) {
> session_start();
> session_register("navn");
> }
> ?>

Du kan ikke læse en session-variabel før session_start()

Her er din kodestump - lettere tilrettet:


session1.php:

<?php
session_start();
?>

<html>
<head>
<title>Session1.php</title>
</head>
<body>

<?php
$_SESSION['navn'] = $_GET['navn'];
if ($_SESSION['navn']) { ?>

<b>Tak for det!</b><br>
Gå nu videre til <a href="session2.php">session2.php</a>

<?php } else { ?>

<form action="session1.php" method="get">
<b>Skriv dit navn - tak!</b><br>
<input type="text" name="navn"><br>
<input type="submit" value="okiedokie">
</form>

<?php } ?>

</body>
</html>

session2.php:

<?php
session_start();
?>

<html>
<head>
<title>Session2.php</title>
</head>
<body>
<?php

print "Dit navn er: <b>".$_SESSION['navn']."</b>";

?>


Mvh
Tonni

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste