[PHP] sessions wel geschreven maar niet gelezen *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • htca
  • Registratie: November 2001
  • Laatst online: 22-09 13:55
Mijn vorige topic ging off topic en werd terecht gesloten:
vorig topic
Echter mijn problem na het omzetten van de code bestaat nog steeds. De session wordt wel weggeschreven in de /tmp directory, echter op de een of andere manier weigert apache hem te te lezen.
Ik heb dit met meerdere scripts geprobeerd die eveneens met globals werkten:
link
Zolang ik in een file blijf werken gaat het goed, maar zodra ik met "header" aan de slag ga gaat het mis.

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21-09 21:47

Creepy

Tactical Espionage Splatterer

En je doet wel een session_start() voordat je iets met een header doet? Heb je een stukje code van wat je nu hebt wat niet werkt (note: alleen de relevante code!) en wat wel werkt? Kan je iets zien aan het verschil tussen die twee?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • htca
  • Registratie: November 2001
  • Laatst online: 22-09 13:55
Wat niet werkt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<? error_reporting(E_ALL); ?>
<? session_start(); ?>
<HTML>
<HEAD><TITLE>Welkom op de beveilgde pagina!</TITLE>
</HEAD>
<BODY>
<?php
echo $_SESSION['user'];
if(!isset($_SESSION['user'])){
$text = "U bent niet goed ingelogd, ga terug naar <A HREF='login.php'>de login pagina</A> of naar <A HREF='registreer.php'>de registreer pagina</A>";
echo($text);
}
else{?>
Welkom, u bent aangemeld als <?php echo($_SESSION['user']);?><BR>
Uw wachtwoord is: <?php echo($_SESSION['wachtwoord']);?>
<P>
<A HREF="loguit.php">Log hier uit!</A>
<?php
}
?>
</BODY>
</HTML>

login.php:
code:
1
2
3
4
5
6
7
<H2>Hier kunt u inloggen!</H2><BR>
Als u een nieuwe gebruiker bent, <A HREF="register.php">kunt u hier registreren</A><P>

<FORM NAME="form1" ACTION="login_2.php" METHOD="post">
E-mail adres: <INPUT TYPE="text" NAME="email" MAXLENGHT="40"><BR>
Wachtwoord: <INPUT TYPE="password" name="wachtwoord" maxlenght="10"> <INPUT TYPE="submit" VALUE="Login!">
</FORM>

login_2.php
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
session_start();
if(!empty($_POST)){
include("connection.php");
$query = "SELECT * FROM users WHERE email='" . $_POST["email"]  ."' AND wachtwoord='". $_POST["wachtwoord"] . "'";

$result = mysql_query($query);

if(mysql_num_rows($result) > 0){
$user = $_POST["email"];
$wachtwoord = $_POST["wachtwoord"];
$_SESSION['user'] = $user;
$_SESSION['wachtwoord'] = $wachtwoord;

header("Location: beveiligd.php");
exit();
}
else {
$text = "U hebt geen goede combinatie van emailadres en wachtwoord gebruikt! <A onclick='javascript: window.back();'>Ga terug</A>";
die($text);
} }
else{
//pagina verkeerd aangeroepen
header("Location: login.php");
}?>

Vanzelfsprekend heb ik een goede user en passwd combinatie.....

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21-09 21:47

Creepy

Tactical Espionage Splatterer

En wat heb je nu zelf al geprobeerd om het aan de gang te krijgen? Iets als de error_reporting verplaatsen NA de session_start() bijv? Welke PHP versie gebruik je nou? En wat werkt er nu precies niet? Zijn de vars leeg? Geeft je query wel output? geen errors? etc.
Geef nu eens wat complete informatie om dit soort vragen uit te sluiten. Je laat echt nog teveel in het midden.

[ Voor 52% gewijzigd door Creepy op 19-01-2005 11:30 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • htca
  • Registratie: November 2001
  • Laatst online: 22-09 13:55
Ik van alles geprobeerd:
- ob_flush en ob_flush_end (geloof dat dit de syntax was)
- session_start verplaatst
- phpid meegegeven (Dan werkt het wel, maar wil ik niet vanwege security)

Verder gebruik lokaal php versie 4.2.2 en 4.3.9 (2 systemen dus) en bij de ISP 4.3.10

In de "tweede" pagina zijn de vars leeg, de output van query is niet leeg, de check op passwd en username is true. Als ik in login_2.php een echo session_id(); dan krijg ik die ook. Echter na het header commando is er niets meer van over en krijg ik in beveiligd niets bij $_SESSION['user'] of session_id.

[ Voor 36% gewijzigd door htca op 19-01-2005 15:44 ]


Acties:
  • 0 Henk 'm!

  • Zenda
  • Registratie: Oktober 2001
  • Laatst online: 06-09 16:17

Zenda

goes milk!

Probeer eens ipv $_SESSION['key'] = $value het volgende:

$key = $waarde;
session_register(key);

Misschien werkt dat, probeer het eens zou ik zeggen.. is oldschool :+

Zenda likes some milk every now and then..


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

PHP:
1
2
<? error_reporting(E_ALL); ?>
<? session_start(); ?>
Dat kan nooit goed gaan. Je hebt namelijk een enter buiten de PHP-tags, nog voor session_start(), die dus ook geoutput wordt. session_start() kan dan geen header meer versturen, en daarom lijkt het me dat dit nooit kan werken.
Zenda schreef op donderdag 20 januari 2005 @ 00:21:
Probeer eens ipv $_SESSION['key'] = $value het volgende:

$key = $waarde;
session_register(key);

Misschien werkt dat, probeer het eens zou ik zeggen.. is oldschool :+
Dat is niet oldschool, dat is dom, aangezien het niet goed kan werken als register_globals op off staat. Zie ook PHP.net.

edit:
:w Erkens ;)

[ Voor 54% gewijzigd door NMe op 20-01-2005 00:26 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

htca schreef op woensdag 19 januari 2005 @ 11:17:
Wat niet werkt:
code:
1
2
<? error_reporting(E_ALL); ?>
<? session_start(); ?>
Je hebt daar een enter in je output zitten voordat je session_start doet ;)

Acties:
  • 0 Henk 'm!

  • htca
  • Registratie: November 2001
  • Laatst online: 22-09 13:55
Ook zonder error_reporting geen succes.

Acties:
  • 0 Henk 'm!

  • htca
  • Registratie: November 2001
  • Laatst online: 22-09 13:55
Zenda schreef op donderdag 20 januari 2005 @ 00:21:
Probeer eens ipv $_SESSION['key'] = $value het volgende:

$key = $waarde;
session_register(key);

Misschien werkt dat, probeer het eens zou ik zeggen.. is oldschool :+
Dit is me juist afgeleerd..... 8)

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Aangezien het wel werkt waneer je de session id meegeeft in de url lijkt me dit eerder een probleem van je browser die geen cookies accepteerd.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • htca
  • Registratie: November 2001
  • Laatst online: 22-09 13:55
Andere sites met cookies werken wel. Overigens heb ik net geprobeerd phpnuke te installen en dat is wel gelukt (weet niet of dat met cookies werkt, lijkt me van wel)
Pagina: 1