session evanescente

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
ciao
ho un piccolo problemino con le sessioni

PHP:
<?php
if(!isset($_SESSION)){
session_start ();
}

?>

<!-- qui varie cose js e css -->

<?php

if(isset($_GET['id_a'])){//qui provengo dalla pagina delle miniarure che comunque devo almeno una volta passarci
	$_SESSION['id_a']=$_GET['id_a'];
}else{
	$id_a=$_SESSION['id_a'];//se non arrivo dalla miniature ricavo $id_a dalla sessione
}

?>

<!-- mostro la foto ed altri dati ricavati da db tra cui $giudizio -->

<?php
if(isset($_POST['meno'])){// qui iniziano i problemi scrivo solo il meno perchè col piu è lo stesso
$giudizio=(int)$giudizio-1; //il var_dump di giudizio mi da valore corretto

/******** E QUI MI SPARISCE IL VALORE $id_a=$_SESSION['id_a']; *******/

var_dump($id_a); // risulta NULL ????? perchè la sessione sparisce?

}

?>

<!-- qui ho il piccolo form di votazione -->

<form name="form1" method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">
      giudizio&nbsp;&nbsp;&nbsp;
      <input name="meno" type="submit" id="meno" value="-">&nbsp;&nbsp;&nbsp;
      <input name="piu" type="submit" id="piu" value="+">
 </form>

non capisco
 
errore da gnocco, risolto
mi ero dimenticato un
$id_a=$_GET['id_a'];
all'inizio quindi venendo da form(mino) id_a ni si annullava non essendovi più il get:crying:
 
mettici anche un controllo per la validazione dell'input su quel GET, meglio abituarsi ad usarli sempre :)
 
ciao
hai ragione, però come faccio a validarlo?
non prsso mettere nell' if

if(isset($_GET['id_a']) && $_GET['id_a']=="123" ){

perche non so quale id è stato selezionato
aggiungerò htmlspecialchars
oppure, potrei fare una

$flag=0;
$query=mysql_query("select id from foto order by id");
while ($riga=msql_fetch_array($query)){
if($_GET['id_a']==$riga['id']) {
$flag=1;
break;
}
}

e in funzione del flag tornare o visionare la foto

che ne pensi?
 
potresti anche validare l'ID controllando che sia numerico con is_numeric()
 

Discussioni simili