Gå til innhold

php session i IE


Anbefalte innlegg

Får ikke PHP session til å virke i IE.

Firefox klarer dette.

 

Jeg har en innlogginsside. På neste side kan folk legge igjen en hilsen, hvor nicket skal være det samme som ved innlogginssiden.

I Internet Explorer blir nick-feltet blankt, men i firefox virker det! Bruker PHP 4.

 

 

Nå har jeg fått lokalisert problemet litt. Hver gang jeg starter siden hvor bruker skal taste inn ett eller annet så lager den en sess_100e06b1148cc57a88d1212bf39ecd3d fil. Hver gang jeg trykker F5 så blir det opprettet en ny sess fil. Men den inneholder ingenting. 0 byte.

Mens hvis jeg logger meg inn så blir det opprettet en sess_xxxxx fil hvor inneholdet er det jeg tastet inn på forrige side. Men pga at det har blitt opprettet flere sess filer klarer den ikke å huske hvem av sess filene som skal brukes (tror jeg). Når jeg bruker firefox blir det ikke opprettet ny sess fil for hver gang jeg tar refresh. Så her er nok den store forskjellen. Men hva gjør jeg? Hvorfor lager IE nye session filer hele tiden ??

Endret av navyboy
Lenke til kommentar
Videoannonse
Annonse
IE kan slite litt med sessions.

header("Cache-control: private");

Dette gjør vanligvis biffen. :)

Takk, men det hjalp ikke.

 

login.php

<?php ob_start(); ?>
<html>
<body>
<?php
header("Cache-control: private");
session_start();

if (isset($_POST['login']) ) {
       $db = mysql_connect('localhost', '****', '****');
       mysql_select_db('gallery');
       $q = mysql_query("select * from users where username = '".$_POST['userna
me']."' and password = '".md5($_POST['password'])."'");

while ($var=mysql_fetch_assoc($q))
       {
       print "test".$_POST['username'];
       print_r($var);
       }


       if (mysql_num_rows($q) > 0) {
               $_SESSION['username'] = $_POST['username'];
echo "<form method='POST' action='hilsen.php'>\n\t
<pre>Username: </pre>
<input type='text' name='username'/>
<br/>\n<pre>Password: </pre>
<input type='password' name='password'/>
<br/>\n <input type='submit' name='login' value='Login'/>\n
</form></body></html>";

 

 

 

 

Denne skal skrive inn brukernavnet bruker tastet i innloggingssiden + ny hilsen. Det er kun ny hilsen som kommer opp. brukernavnet er blankt. Men i FireFox virker det.

 

hilsen.php

<?php
session_start();
header("Cache-control: private");
mysql_connect('localhost','****','****');
mysql_select_db('gallery');

if(isset($_POST['nyhilsen'])) $ny=mysql_query("INSERT INTO gjestebok (id,nick,hi
lsen) VALUES (NULL,'".$_SESSION['username']."','".$_POST['nyhilsen']."')");

<form method="POST" action="hilsen.php">
<input type="text" name="nyhilsen" value="">
<input type="submit" name="kommenter" value="Kommenter" /></form>';
?>

Endret av navyboy
Lenke til kommentar

Er det hele koden ?

Ser isåfall en del feil i login.php. Mangler endel }. Men da er det isåfall merkelig at det fungerer i firefox, forsåvidt. header() og session_start() må settes helt i toppen av scriptet, før noe output (<HTML> osv...)

Lenke til kommentar
Er det hele koden ?

Ser isåfall en del feil i login.php. Mangler endel }. Men da er det isåfall merkelig at det fungerer i firefox, forsåvidt. header() og session_start() må settes helt i toppen av scriptet, før noe output (<HTML> osv...)

Nei det er ikke hele koden, bare klipte ut essensen, godt mulig jeg har glemt å ta med noen tagger etc, men så lenge det virker i firefox er det vel ikke der feilen ligger? Har prøvd flere forskjellig php-filer men får samma feil. Har også fått andre til å lage php-kode til meg, funker på maskinen dems både med IE og FF men ikke når filen ligger på servern min....virker det som.

Lenke til kommentar
Gjest Slettet-rXRozPkg
header() og session_start() må settes helt i toppen av scriptet, før noe output (<HTML> osv...)

Header må ikke ligge i toppen når man bruker output buffering, altså ob_start() og ob_flush()/ob_end_flush(), som det blir gjort her.

Lenke til kommentar

Nå har jeg fått lokalisert problemet litt. Hver gang jeg starter siden hvor bruker skal taste inn ett eller annet så lager den en sess_100e06b1148cc57a88d1212bf39ecd3d fil. Hver gang jeg trykker F5 så blir det opprettet en ny sess fil. Men den inneholder ingenting. 0 byte.

Mens hvis jeg logger meg inn så blir det opprettet en sess_xxxxx fil hvor inneholdet er det jeg tastet inn på forrige side. Men pga at det har blitt opprettet flere sess filer klarer den ikke å huske hvem av sess filene som skal brukes (tror jeg). Når jeg bruker firefox blir det ikke opprettet ny sess fil for hver gang jeg tar refresh. Så her er nok den store forskjellen. Men hva gjør jeg? Hvorfor lager IE nye session filer hele tiden ??

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...