[PHP] $_SESSION probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • kunnen
  • Registratie: Februari 2004
  • Niet online
Ik heb de volgende code:

PHP:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php

session_start();
if($_GET['page']=="LOGOUT")
{
 session_unset();
 session_destroy();
 ?>
 <script>document.location="index.php?siteID=<?php echo $_GET['siteID'] ?>"</script>
 <?php
 die("RELOAD");
}

include("includes/functions.php");
if($_GET['siteID']=="")
{
 if($_POST['siteID']=="")
 {
 $viewhome = "YES";
 } else {
 $siteID = f_extract_int($_POST['siteID']);
} 
 
} else {
$siteID = f_extract_int($_GET['siteID']);
}

echo $_SESSION['siteID'] . "<BR>";
echo $siteID . "<BR>";

if($_SESSION['siteID']!="" && $_SESSION['siteID']!=$siteID)
{
session_unset();
session_destroy();
/* ?>
 <script>document.location="index.php?siteID=<?php echo $_GET['siteID'] ?>"</script>
 <?php */
 die("RELOAD");
 
 
} else {
$_SESSION['siteID']=$siteID;
}


En op de een of andere manier verandert de siteID in $_SESSION['siteID'] automatisch als $siteID verandert... Ik verander in de addresbalk siteID van 2 naar 3 en beide echo's geven 3 weer, terwijl $_SESSION['siteID'] nog steeds 2 zou moeten zijn 8)7

Weet iemand wat ik hier fout doe? :r

Acties:
  • 0 Henk 'm!

Verwijderd

Even twee kleine offtopic dingetjes:
PHP:
1
2
3
4
5
6
7
8
if($bla=="")
//liever
if(empty($bla))

if($_GET['siteID']=="")
if($_POST['siteID']=="")
//liever
if(empty($_REQUEST['siteID']))

Acties:
  • 0 Henk 'm!

  • kunnen
  • Registratie: Februari 2004
  • Niet online
Verwijderd schreef op 06 september 2004 @ 14:17:
Even twee kleine offtopic dingetjes:
PHP:
1
2
3
4
5
6
7
8
if($bla=="")
//liever
if(empty($bla))

if($_GET['siteID']=="")
if($_POST['siteID']=="")
//liever
if(empty($_REQUEST['siteID']))
Hey, thx dat $_REQUEST['siteID'] is wel handig ;) Maar nu nog een oplossing voor probleem ;)

Acties:
  • 0 Henk 'm!

  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 14:41

Salandur

Software Engineer

Verwijderd schreef op 06 september 2004 @ 14:17:
Even twee kleine offtopic dingetjes:
PHP:
1
2
3
4
5
6
7
8
if($bla=="")
//liever
if(empty($bla))

if($_GET['siteID']=="")
if($_POST['siteID']=="")
//liever
if(empty($_REQUEST['siteID']))
PHP:
1
if(empty($_REQUEST['siteID']))

deze is altijd gekombineerd $_POST, $_GET en $_SESSION, dus geen onderscheidt (uit eigen ervaring). Dat werkt nog niet.

PHP:
1
2
3
4
if($_GET['siteID']=="")
if($_POST['siteID']=="")
//liever
if(empty($_GET['siteID']) && empty($_POST['siteID']))

Dit levert een beter resultaat op met maar 1 if statement, wat de code wat overzichtelijker maakt.

Ik kan je de oplossing niet geven, wel voor je if-lusje:
PHP:
1
2
3
4
5
6
7
8
9
if(empty($_GET['siteID']) && empty($_POST['siteID'])) {
    $viewhome = "YES"; 
} 
else if (!empty($_POST['siteID'])) { 
    $siteID = f_extract_int($_POST['siteID']); 
} 
else if (!empty($_GET['siteID'])) { 
    $siteID = f_extract_int($_GET['siteID']); 
}

Probeer eens met de functie phpinfo() te achterhalen welke waardes er zijn, dus ook als je via aanroep siteID veranderd

[ Voor 86% gewijzigd door Salandur op 06-09-2004 14:27 ]

Assumptions are the mother of all fuck ups | iRacing Profiel


Acties:
  • 0 Henk 'm!

Verwijderd

Salandur schreef op 06 september 2004 @ 14:21:
[...]

PHP:
1
if(empty($_REQUEST['siteID']))

deze is altijd gekombineerd $_POST, $_GET en $_SESSION, dus geen onderscheidt (uit eigen ervaring). Dat werkt nog niet.
Dan noem je de sessie toch $_SESSION["siteIDses"] ofzo :).


Edit: hoezo zit $_SESSION ook in $_REQUEST?
Request variables: $_REQUEST

Note: Introduced in 4.1.0. There is no equivalent array in earlier versions.

Note: Prior to PHP 4.3.0, $_FILES information was also included in $_REQUEST.

An associative array consisting of the contents of $_GET, $_POST, and $_COOKIE.

This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. You don't need to do a global $_REQUEST; to access it within functions or methods.

If the register_globals directive is set, then these variables will also be made available in the global scope of the script; i.e., separate from the $_REQUEST array. For related information, see the security chapter titled Using Register Globals. These individual globals are not autoglobals.

[ Voor 60% gewijzigd door Verwijderd op 06-09-2004 14:46 ]


Acties:
  • 0 Henk 'm!

  • kunnen
  • Registratie: Februari 2004
  • Niet online
Dan noem je de sessie toch $_SESSION["siteIDses"] ofzo :).
Hmmm, dat kan ik doen, moet ik wel ff 27 files editen :( :/

Acties:
  • 0 Henk 'm!

  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 14:41

Salandur

Software Engineer

Verwijderd schreef op 06 september 2004 @ 14:43:
[...]
Edit: hoezo zit $_SESSION ook in $_REQUEST?

[...]
Je hebt gelijk :) Idd een vergissing van mij, $_COOKIE wordt idd meegenomen en niet $_SESSION

Assumptions are the mother of all fuck ups | iRacing Profiel


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:29

crisp

Devver

Pixelated

register_globals op OFF zetten, of je sessie-variabelen niet dezelfde naam geven als andere variabelen...

Intentionally left blank

Pagina: 1