IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Session perdue après validation formulaire


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Par défaut Session perdue après validation formulaire
    Bonjour,

    Quand je valide un formulaire, je perds la session.
    Je vous donne tout le traitement
    Sur la page index.php je commence par
    <?ph
    session_start();

    Sur la page dvd_selection.php je sélectionne un film pour créer une fiche dvd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <input type="radio" name="check[]" value="<?php echo $id_film;?>" <?php if (est_selectionne_check("$id_film")) { echo 'checked';} else if (is_array($check)){ if (in_array("$id_film",$check)) { echo 'checked';}} ?> onclick="javascript:select_film(this.value)">
     
    Avec la fonction javascript je renseigne un input text suivi d'un submit .
     
    <form name="select" method="post" action="index.php?page=ajout_dvd" class="hidden">
    <input type="text" name="selection" value="">
    </form>
    Jusque là pas de problème.

    Quand la page dvd_selection est validée, elle affiche la page ajout_dvd.php dont voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php
    if (isset($_POST['selection'])){
    	$check=$_POST['selection'];
    //création d'une cession
    	$_SESSION['selection'] = $_POST['selection'];
     
    	$sqla = mysql_query("SELECT id_film, titre FROM films WHERE id_film = '$check'");
    	if (mysql_num_rows($sqla) > 0)	{
    		$res = mysql_fetch_array($sqla);
    		$titre = $res['titre'];
    	}
     
    	$sql = mysql_query("SELECT films.id_film, films.titre, films_dvd.id_dvd, films_dvd.id_film, films_dvd.edition FROM films, films_dvd WHERE films.id_film = films_dvd.id_film AND films_dvd.id_film = '$check'");
    	$nb = mysql_num_rows($sql);
    	if ($nb > 0){
    		for ($a = 0; $a < $nb; $a++){
    			$id_film = mysql_result($sql,$a,"id_film");
    			$titre1 = mysql_result($sql,$a,"titre");
    			$edition = mysql_result($sql,$a,"edition");
    			if ($edition == "standard"){
    				$standard= "existe";
    			}
    			else if ($edition == "collector"){
    				$collector = "existe";
    			}
    		}
    	}
    ?>
    <div>
    <?php 
    include('films/fonctions_films.php');
    include('formulaire_ajout.php');
    ?>
    </div>
    la page formulaire.php est bien affichée.

    C'est là que j'ai un problème.
    Quand je le valide je n'ai plus de page incluse (je n'est que ma page index qui s'affiche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <div style="background-color:blue; width:800px;margin-top:15px; margin-left:20px">
    <form name="mon_dvd" method="POST" action="index.php?page=ajout_dvd">
    <table border='1' style='font-size:11px; background-color:#00CCFF; height: 400px' cellpadding='0' cellspacing='0' width='100%'>
     
    ici les lignes et les colonnes du tableau
     
    			<td align='center' colspan='8' style='height:50px'>
    				<input type='submit' name='envoyer' value='Enregistrer les données'></td>
    		</tr>
     
    	</tr>
    </table>
    </form>
    </div>
    J'utilise une session pour afficher l'utilisateur et ça marche donc je comprends pas pourquoi ça marche pas pour faire une session sur l'id d'un film !!!

    Merci d'avance

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    1 est tu sur d'avoir session_start(); dans tous tes fichiers, soit par inclusion, soit noter au début de script.
    2 où se trouve $_SESSION['id_film']?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Bonjour,

    1 est tu sur d'avoir session_start(); dans tous tes fichiers, soit par inclusion, soit noter au début de script.
    2 où se trouve $_SESSION['id_film']?
    Comme je l'ai dit, session_start() est au début de la page index.php
    et sur aucune autre page. Il me semblait que cela était suffisant ?
    Je travaille avec include sur la page index

    je récupère l'id du film sur la la page dvd_selection.php ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form name="select" method="post" action="index.php?page=ajout_dvd" class="hidden">
    <input type="text" name="selection" value="">
    </form>
    C'est une fonction js qui renseigne selection (l'id du film).value Ca ça marche, je récupère bien id sur la page ajout_dvd.php

    la session est là sur la page ajout_dvd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    if (isset($_POST['selection'])){
    	$check=$_POST['selection'];
    //création d'une cession
    	$_SESSION['selection'] = $_POST['selection'];
    l'id du film est bien récupéré mais quand je valide je ne reviens pas sur la page ajout_dvd.
    Mon problème est certainement ici !!!

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Citation Envoyé par philippef Voir le message
    Comme je l'ai dit, session_start() est au début de la page index.php
    et sur aucune autre page. Il me semblait que cela était suffisant ?
    Je travaille avec include sur la page index
    ok.
    Citation Envoyé par philippef Voir le message
    je récupère l'id du film sur la la page dvd_selection.php ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form name="select" method="post" action="index.php?page=ajout_dvd" class="hidden">
    <input type="text" name="selection" value="">
    </form>
    C'est une fonction js qui renseigne selection (l'id du film).value Ca ça marche, je récupère bien id sur la page ajout_dvd.php

    la session est là sur la page ajout_dvd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    if (isset($_POST['selection'])){
    	$check=$_POST['selection'];
    //création d'une cession
    	$_SESSION['selection'] = $_POST['selection'];
    l'id du film est bien récupéré mais quand je valide je ne reviens pas sur la page ajout_dvd.
    Mon problème est certainement ici !!!
    Et tu reviens où, parce que pour moi, tu devrais voir s'afficher ton formulaire formulaire_ajout.php , il faut oir le <form> de celui-ci

  5. #5
    Membre éprouvé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Par défaut
    Je viens de résoudre le problème.
    En fait dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    if (isset($_POST['selection'])){
    	$check=$_POST['selection'];
    //création d'une cession
    	$_SESSION['selection'] = $_POST['selection'];
    je perds le post $_POST['selction'] quand je valide le formulaire, j'ai fais la modification suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    if (isset($_SESSION['selection'])){ 
    $check = $_SESSION['selection'];
    }
    if (isset($_POST['selection'])){
    	$check=$_POST['selection'];
    	$_SESSION['selection'] = $_POST['selection'];
     
    	$sqla = mysql_query("SELECT id_film, titre FROM films WHERE id_film = '$check'");
    	if (mysql_num_rows($sqla) > 0)	{
    		$res = mysql_fetch_array($sqla);
    		$check = $res['id_film'];
    		$titre = $res['titre'];
    		$_SESSION['selection'] = $check;
    Et en plus la fermeture de mon if était mal placée
    J'ai testé plusieurs fois et ça à l'air de marcher.

    Merci à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fermeture popup après validation formulaire
    Par labucque dans le forum Langage
    Réponses: 5
    Dernier message: 30/06/2008, 09h34
  2. ouverture new page apres validation formulaire
    Par jameson dans le forum Langage
    Réponses: 5
    Dernier message: 19/06/2008, 13h04
  3. Reconstruire menu dynamique apres validation formulaire
    Par MANU_2 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 29/11/2007, 10h34
  4. session perdue après rafraichissement ou suivant
    Par platonus2002 dans le forum Langage
    Réponses: 8
    Dernier message: 04/06/2007, 10h10
  5. Réponses: 13
    Dernier message: 04/04/2007, 01h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo