Versio

vreemd probleem

Overzicht Reageren

Sander

Sander

05/03/2006 15:45:00
Quote Anchor link
Hallo ik maak gebruik van een sessie genaamd "fa_id". Iedere keer als ik de onderstaande pagina uitvoer wordt de sessie weer leeg. Daarom laat ik de sessie iedere keer echoën om te kijken waar het fout gaat. Bij session echo 6 wordt hij leeg weergeven bij de andere niet. Ik ben er achter dat als ik het stukje "
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? while (list($fid, $fa_id, $sender, $ipsender, $date, $topsub, $topinfo, $lactivity, $locked, $hidden) = mysql_fetch_row($result)){ //bla bla } ?>
" weghaal, dat de sessie gewoon in tact blijft, weet iemand waardoor dat komt?

Script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
session_start();

if($_SESSION['fa_id'] != "0" AND $_SESSION['fa_id'] != "") {
echo "SESSIE 1: ".$_SESSION['fa_id'];
//order
$gorder = htmlspecialchars($_GET['order']);
?>

<script language="JavaScript">
function forum(id)
{
var load = window.open('forums/family/index.php?id='+id,'','scrollbars=yes,menubar=no,height=500,
width=700,resizable=no,toolbar=no,location=no,status=no,top=100,left=100');
}
</script>
<table cellpadding="3" cellspacing="0" class="menu-news">
<tr>
<td class="top-menutb" colspan="5">Family Forum Topics:</td>
</tr>
<tr>
<td><div align="left"><strong>Subject:</strong></div></td>
<td><div align="left"><strong>Started by:</strong></div></td>
<td><div align="left"><strong>Starting date: </strong></div></td>
<td><div align="left"><strong>Last Activity: </strong></div></td>
<td><div align="left"><strong>Reactions:</strong></div></td>
</tr>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
echo "SESSIE 2: ".$_SESSION['fa_id'];
$i = 0;

if ($gorder == 2) {
$result = mysql_query("SELECT * FROM `topicsfforum` WHERE `fa_id` = '".$_SESSION['fa_id']."' ORDER by `date` DESC");
}

elseif ($gorder == 3) {
echo "SESSIE 3: ".$_SESSION['fa_id'];
$result = mysql_query("SELECT * FROM `topicsfforum` WHERE `fa_id` = '".$_SESSION['fa_id']."' ORDER by `lactivity` DESC");
}
else{
echo "SESSIE 4: ".$_SESSION['fa_id'];
$result = mysql_query("SELECT * FROM `topicsfforum` WHERE `fa_id` = '".$_SESSION['fa_id']."' ORDER by `topsub` ASC");
}

echo "SESSIE 5: ".$_SESSION['fa_id'];
while (list($fid, $fa_id, $sender, $ipsender, $date, $topsub, $topinfo, $lactivity, $locked, $hidden) = mysql_fetch_row($result)){

$date2 = date ("d-m-Y G:i:s", $date);

$lactivity2 = date ("d-m-Y G:i:s", $lactivity);

$reactions = mysql_query("SELECT count(fid) FROM `fforum` WHERE `fid` = '$fid' && `fa_id` = '".$_SESSION['fa_id']."'") ;
$reactions2 = mysql_result($reactions, 0);
?>

<tr>
<td><div align="left"><a href="javascript:forum(
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $fid; ?>
)">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $topsub; ?>
</a></div></td>
<td><div align="left">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $sender; ?>
</div></td>
<td><div align="left">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $date2 ?>
</div></td>
<td><div align="left">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $lactivity2; ?>
</div></td>
<td><div align="left">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $reactions2; ?>
</div></td>
</tr>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
$i
++;
}

echo "SESSIE 6: ".$_SESSION['fa_id'];
?>

<tr>
<td colspan="5">&nbsp;</td>
</tr>
<tr>
<td colspan="5">Sort on : <a href="index.php?open=fforum&order=1">Topic Name</a> | <a href="index.php?open=fforum&order=2">Posting Date </a> | <a href="index.php?open=fforum&order=3">Last Activity</a></td>
</tr>
</table>
<a href="index.php?open=fforum&function=newtopic">Add New Topic</a> | <a href="index.php?open=fforum&function=searchtopic">Search for Topic</a>
<BR><BR><BR>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
if(isset($_GET['function'])) {
$function = htmlspecialchars($_GET['function']);

if($function == "newtopic") {
include('forums/family/newtopic.php');
}

elseif($function == "poll") {
include('forums/family/addpoll.php');
}

elseif($function == "searchtopic") {
include('forums/family/searchtopic.php');
}
else{}
}
}
else{
echo "<BR><div align=\"center\"><font color=\"red\"><strong>wat weergeven.</strong></font><div>";
}

?>
Gewijzigd op 05/03/2006 16:39:00 door Sander
 
PHP hulp

PHP hulp

25/05/2012 18:53:38
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Sander

Sander

05/03/2006 16:14:00
Quote Anchor link
Niemand een idee?
 

05/03/2006 16:38:00
Quote Anchor link
ik weet niet hoor,
maar dat eerste lijstje zorgt ervoor dat je iets de database instuurt, niet dat je een session aanmaakt,

als dat niet is waar de session zou moeten ontstaan, dan moet je dat deel van een ander script ook maar ff posten,

kun je btw ff die lange
window.open regel in twee of drie regels hakken, hij verpest de hele lay-out
 
Sander

Sander

05/03/2006 16:42:00
Quote Anchor link
Op een andere pagina wordt $_SESSION['fa_id'] geset. Maar door het uitvoeren van de pagina is die na het uitvoeren van deze pagina leeg. Als ik andere pagina's uitvoer gebeurd dit niet.

(Op die pagina staat gewoon:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? session_start(); $_SESSION['fa_id']  = "1"; ?>
 

05/03/2006 16:45:00
Quote Anchor link
welke PHP versie heb je?
want als je geen PHP 5 hebt is jou manier van de session inschrijven niet mogelijk, dan moet je als volgt te werk gaan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
session_start();
$fa_id="1";
session_register("fa_id");
?>
 
Sander

Sander

05/03/2006 16:48:00
Quote Anchor link
Dat is het niet anders zou die hem niet 5x echoën en de 6de keer niet, zoals ik in het script doe om het te testen.
 

05/03/2006 16:55:00
Quote Anchor link
ik snap de hele nut niet van dit script zo gauw niet,
waarom zou je vijf keer het op willen roepen?

ik denk dat je in jou geval sneller met PHP kunt ORDnen:P

ipv 5 sql query's, belast je je db ook minder
 
Jelmer rrrr

Jelmer rrrr

05/03/2006 17:01:00
Quote Anchor link
Gijs:
welke PHP versie heb je?
want als je geen PHP 5 hebt is jou manier van de session inschrijven niet mogelijk...

Euhm, Gijs, het is sinds versie 4.1 (1999 ongeveer?) Die manier die jij voorstelde wordt ten alle tijden afgeraden tegenwoordig.

Jouw probleem komt denk ik door superglobals. Je gebruikt de sessie $fa_id maar in die list() zit ook een $fa_id. Die overschijven elkaar waarschijnlijk. Probeer het eens met een van beiden een andere naam.
Gewijzigd op 05/03/2006 17:02:00 door Jelmer rrrr
 
Sander

Sander

05/03/2006 17:06:00
Quote Anchor link
ok zal ik proberen, ik ben hem ook aan het overzetten naar een andere server, want in deze server die ik gebruik zitten vaker rare kuren. Ik laat het weten.
 
Sander

Sander

05/03/2006 18:12:00
Quote Anchor link
Het is gelukt, het kwam omdat de naam van de sessie en de variable het zelfde waren. Wel een beetje vreemd!
 
Jelmer rrrr

Jelmer rrrr

05/03/2006 18:18:00
Quote Anchor link
Waarwschijnlijk omdat register_globals aan staat. Voor iedere $_SESSION[$naam] wordt dan een reverence gemaakt ${$naam}, en dus waneer je ${$naam} aanpast, pas je eigenlijk de waarden van $_SESSION[$naam] aan.
 



Overzicht Reageren