Afficher ma $_SESSION après un traitement formulaire sur la même page

lorenzo16000 Messages postés 24 Date d'inscription lundi 13 septembre 2010 Statut Membre Dernière intervention 29 septembre 2011 - 8 sept. 2011 à 14:42
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 - 8 sept. 2011 à 16:43
Bonjour, voilà mon problème, j'ai une administration ou je me sert bien-sure d'un formulaire avec un traitement qui si ce traitement et réaliser correctement j'affiche ma $_SESSION sur la même page, il se trouve que en détruisant ma variable de session en fin de la page par un
<?php $_SESSION['nomVariable'] =  array();?>

elle ne s'affiche pas, parcontre si j'enleve
<?php $_SESSION['nomVariable'] = array();?>
en fin de page elle s'affiche mais reste toujours afficher meme si je change de page et quand je reviens sur la page elle et toujours afficher, mon probleme et que je souhaiterais afficher une variable de $_SESSION sur la même page mais après avoir actualisé la page je souhaite la faire disparaitre.

Mon morceau de Code:

<?php
session_start();
require "../imgClass.php";
require "../config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
mysql_query('SET NAMES '.DB_ENC);

function query($query)  
{  
$query = mysql_query($query) or exit('Erreur SQL !
'.$query.'
'.mysql_error());  
return $query;  
}

if(isset($_POST['id'] )) 
{ 
    //c'est ici, si id n'est pas un nombre on peut arrêter le traitement de l'update 
    if(!ctype_digit($_POST['id'])) {  
        // Ça fait un code html bizarre en sortit 
        exit('Erreur!
Tentative d\'injection SQL!
'); 
    }
    // Ceci "remplace" le extract() par quelque chose de plus concret et plus sécurisé :  
    $id = $_POST['id']; //id est un nombre pas besoin de le protéger 
    $titre = mysql_real_escape_string($_POST['titre']); 
    $description = mysql_real_escape_string($_POST['description']); 
    $lienYoutube = mysql_real_escape_string($_POST['lienYoutube']); 
      
   if(query("UPDATE videos SET 
   titre='". $titre ."',
   description='". $description ."', 
   lienYoutube='". $lienYoutube ."',
   date=NOW() WHERE id=". $id)) 
{
$_SESSION['editVideo'] = '
<li>Contenu vidéo  Modifier avec succée .</li>
<li class ="close-bt"></li>
';
header('location:video.php?id= '.$id.'');

}
else{
$nonmodif = "
<li> ERREUR  de modification du contnue vidéo !</li>
<li class ="close-bt"></li>
";
}
}
?>

3 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
8 sept. 2011 à 15:45
bonjour

$_SESSION['editVideo'] =  '
<li>Contenu vidéo  Modifier avec succée .</li>
<li class ="close-bt"></li>
';


pourquoi ne fais tu pas echo ?

echo '
<li>Contenu vidéo Modifier avec succée.</li>
<li class="close-bt"></li>
';


Bonne programmation !
0
lorenzo16000 Messages postés 24 Date d'inscription lundi 13 septembre 2010 Statut Membre Dernière intervention 29 septembre 2011
8 sept. 2011 à 16:28
Salut cod ^^ merci, en faite j'ai tous stocké dans une variable $resultat = '................'; et je l'affiche ailleurs dans ma page avec un if(isset.......) echo $resultat;
et ça fonctionne, mais je voulais surtout savoir pourquoi on ne peu pas afficher une variable de SESSION sur la meme page de traitement ??
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
8 sept. 2011 à 16:43
tu peux
mais pour détruire une $_SESSION['tableau']['variable']
mieux utiliser unset($_SESSION['tableau']['variable']);

je sais pas ce qui est lié dans tes pages
mais tu peux faire

if('condition'){
$_SESSION['a']=$_SESSION['b']='valeur1';
}else{
$_SESSION['b']=null;
}

et dans une autre page
if($_SESSION['a']===$_SESSION['b']){ ...
}else{
}

Bonne programmation !
0
Rejoignez-nous