Originariamente inviato da Tobler
Mettiamo che io abbia una variabile POST chiamata "nome" e nella sessione ho anche una SESSION con lo stesso nome.
Nel momento in cui per qualsiasi motivo faccia
$nome = $_POST['nome']
anche la variabile di sessione acquisirà il valore che c'era in quella POST!
Per risolvere chiamo tutte le variabili di sessione con due underscore davanti ($_SESSION['__nome'] per intenderci).
Strano, non trovate?
Potresti postare un esempio di codice che riproduce il problema?
Ho provato a simularlo, ma non ci sono riuscito:
Codice PHP:
<?php
error_reporting(E_ALL ^ E_NOTICE); // disabilito i notice, giusto per risparmiare codice;
session_start();
$_SESSION['test'] = isset($_SESSION['test']) ? $_SESSION['test'] : 'session';
print('$test = ' . $test . '
');
print('$_POST["test"] = ' . $_POST["test"] . '
');
print('$_SESSION["test"] = ' . $_SESSION["test"] . '
');
print('$_GET["test"] = ' . $_GET["test"] . '
');
print('
');
$test = $_POST['test'];
print('$test = ' . $test . '
');
print('$_POST["test"] = ' . $_POST["test"] . '
');
print('$_SESSION["test"] = ' . $_SESSION["test"] . '
');
print('$_GET["test"] = ' . $_GET["test"] . '
');
?>
<form method="post" action="?test=get">
<input type="hidden" name="test" value="post" />
<input type="submit" />
</form>
Originariamente inviato da michelepi
Non ricordo bene ma se hanno lo stesso nome vanno a scalare, non so se ha precedenza $_SESSION o $_POST.
Forse ti riferisci a $_REQUEST (di cui sconsiglio l'utilizzo) e non a $_POST.