UrMeMedlem sedan apr. 2001762 inlägg Hej,
Jag har gjort en liten enkel sak med sessioner... det är så att jag hämtar en bild från en mysql databas som jag sedan låter följa med på varje undersida..
Problemet är dock att första gången man går in på en undersida så visas sessions id:et i adressfältet, när man sedan klickar vidare så finns inte sessions id:et i adressfältet längre.. hur får jag bort det i adressfältet första gången? Kanske är jag som kodat lite konstigt ;)
Koden ser ut så här:
<?php
session_start();
include("connectdatabase.php");
if(!$_SESSION['bild1'])
{
$bakgrund = mysql_query("SELECT * FROM bakgrundsbild ORDER BY RAND() limit 1");
$rowbild = mysql_fetch_array($bakgrund);
$bild1 = $rowbild["ejtonad"];
$bild2 = $rowbild["tonad"];
}
session_register('bild1');
session_register('bild2');
?>
Nån som vet varför sessionsid:et visas i adressfältet första gången man går till en undersida? och hur man får bort det?
MatteMedlem sedan aug. 20002 975 inlägg Jag har konstaterat samma sak, men jag har ingen förklaring på det. Men jag har funnit att om man laddar om sidan med en header() efter att sessionen är satt första gången så slipper man det. Ett exempel:
<?php
session_start();
include("connectdatabase.php");
if(!$_SESSION['bild1'])
{
$bakgrund = mysql_query("SELECT * FROM bakgrundsbild ORDER BY RAND() limit 1");
$rowbild = mysql_fetch_array($bakgrund);
$bild1 = $rowbild["ejtonad"];
$bild2 = $rowbild["tonad"];
session_register('bild1');
session_register('bild2');
header("Location: dennasida.php");
exit;
}
?>
UrMeMedlem sedan apr. 2001762 inlägg jo.. men problemet är att den där koden är inkluderad i varje .php fil.. så då laddas ju varje sida om hela tiden :/
Och funkar det att använda $PHP_SELF variablen ifall man skulle göra så?.. tar inte den med sessionsid:et isåfall också? ...
Problemet är att jag har en meny som expanderar beroende på vilken sida man är på, och om sessionsvariabeln är med i adressfältet förstår inte scriptet vilken sida man är inne på :/
MatteMedlem sedan aug. 20002 975 inlägg <?php
session_start();
if (!isset($_SESSION['check'])){
$_SESSION['check'] = "ok";
header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
?>
Nu kommer slingan bara att köras en gång så länge sessionen är aktiv.
jarvkloMedlem sedan juli 20013 378 inlägg Har du session.use_trans_sid påslagen? (kolla med phpinfo() )
Om det är så, så petar PHP in sessionsid:t i adressen med automatik om den får för sig att din webbläsare inte tar emot cookies.
Som jag fattar det hela bör du kunna slå av funktionen med
<?php
ini_set('session.use_trans_sid', 0);
session_start();
...
...
?>
Men om sessionen funkar i det läget är inte helt enkelt att förutse, eftersom PHP uppenbarligen fått för sig att din webbläsare inte vill ha cookies till att börja med...
UrMeMedlem sedan apr. 2001762 inlägg Ahh.. både Mattes och jarvklos förslag fungerar underbart!
Tack så mycket!