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 :

Probleme avec un formulaire lorsqu'il n'y a pas de session de crée


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 23
    Points : 11
    Points
    11
    Par défaut Probleme avec un formulaire lorsqu'il n'y a pas de session de crée
    Bonjour,

    J'ai une page index.php qui utilise les pseudo frame et donc inclu d'autres pages. J'utilise la methode GET pour passer le nom de la page a afficher dans l'url.

    Deplus, j'utilise une session pour identifié l'utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $log = $_POST["login"];
    $_SESSION['login'] = $log;
    Maintenant j'ai un formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <FORM ACTION="index.php?page_gauche=inscription" METHOD="POST"> 
    .................. 
    <INPUT TYPE=submit name="submit" VALUE="envoyé">
    Donc voila ce qui se passe, si l'utilisateur n'est pas identifié alors l'utilisation du formulaire fonctionne correctement.
    Mais si l'utilisateur est identifié, lorsqu'il clique sur le bouton submit du formulaire, au lieu que la page 'index.php?page_gauche=inscription' soit affiché, c'est la page d'accueil qui l'ai !!

    Je ne comprend vraiment pas d'ou peux venir ce probleme.....
    Surtout que tout fonctionne independament des autres, la session fonctionne correctement puisque l'utilisateur est reconnu sur ttes les pages du site, le formulaire fonctionne aussi puisqu'il marche si l'utilisateur est identifié et le passage avec GET du nom de la page dans l'url fonctionne aussi.

    J'ai pas mis de code car y en a tellement, mais demander en moi si vous voulez voir le detail de certaines parties.

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    Comment testes-tu si l'utilisateur est enregistré ? tu peux nous montrer le code ?

    PS : mes tes balises et attributs en minuscules et pensent à fermer toutes tes balises

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Alors dans index.php je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ((!isset($_SESSION['login'])) && (isset($_POST["login"])) && (isset($_POST["mdp"])))
    {
      ...............
      $log = $_POST["login"];
      $_SESSION['login'] = $log;
    }
    et dans la page ou j'ai mon formulaire je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (!isset($_SESSION['login']))
    {
      echo "Vous devez être identifié pour avoir accès à vos photos";
    }
    else 
    { .....
    Donc l'utilisateur peut s'identifier mais si il est identifié le formulaire s'affiche mais il ne fonctionne pas! donc je pense pas que le probleme vienne de la!

    Ce qui est encore plus etrange, c'est qu'en fait j'ai deux formulaires sur deux pages sans aucun lien l'un avec l'autre, mais les deux on ce meme probleme. Celui dont je vous ai parlé, vérifie d'abord si l'utilisateur est connecté avant d'afficher le formulaire, mais le deuxieme formulaire sans fou completement si l'utilisateur est connecté ou pas et pourtant il marche pas non plus si l'utilisateur est connecté et fonctionne si l'utilisateur ne l'est pas!

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    c encore moi !

    Pour ce qui est des balises a fermé et des var en minuscule tout est bon

    En fait le probleme exact que j'observe c'est que lorsque l'utilisateur n'est pas connecté, si j'applique un formulaire du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <FORM ACTION="index.php?page_gauche=inscription" METHOD="POST">
    alors le formulaire fonctionne et je vois dans l'url : index.php?page_gauche=inscription : donc c normal
    Or si je fais la meme chose avec l'utilisateur connecté, et que j'envoi le formulaire, l'url affiche index.php et me ramene a la page du debut et non pas "index.php?page_gauche=inscription"

    Voila je me suis sans doute répété avec un precedent post mais c plus clair comme ca je pense

  5. #5
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Salut

    Celà devient difficile de te suivre si tu tergiverses à chaque fois sur ton problème.
    Ce serait cool que tu reconsidéres ton souci en l'exposant plus précisemment et avec... un ch'tit peu plus de sources.

    Au passage, c'est GET ou POST.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Bon ok c le bordel mes explications, je reprend avec plus de code :

    Donc j'ai un site web dont la page principale 'index.php' inclue 2 autres pages :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    include "page_haut.php";
    et
    include($var_inscription);
    Ce $var_inscription se sert de la méthode GET pour récuperer le nom de la page passée dans l'url:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $var_inscription = $_GET['page_gauche'].'.php';
    L'utilisateur peut s'inscrire, il est alors enregistrer dans la base de données.
    Il peut donc ensuite s'identifier sur le site, a ce moment la, je créer une session avec son login : Ceci est géré dans la page index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $log = $_POST["login"];
    $_SESSION['login'] = $log;
    Pour vérifier si l'utilisateur est bien identifier je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (isset($_SESSION['login'] ))
    {
        echo "bienvenue";
    }
    Jusque la tout fonctionne très bien ...

    Mais j'ai un problème avec mes formulaires, pour exemple je vais prendre le formulaire d'inscription mais le probleme est le meme pour tous les formulaires de mon site:

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <FORM ACTION="index.php?page_gauche=inscription" METHOD="POST">
    <br><br>
     
    <u><?php echo TXT_INSCRIPTION4; ?></u>
    <!--------------- Table pour les données personelles --------------->
    <table border="0" cellspacing="0" cellpadding="0" width="80%" align="left"> 
    <tr>  
       <td width="30%">
    	<font size="2"><?php echo TXT_INSCRIPTION5; ?></font>
    	<br><font size="2"><?php echo TXT_INSCRIPTION6; ?></font>
    	<br><font size="2"><?php echo TXT_INSCRIPTION7; ?></font>
    	<br><font size="2"><?php echo TXT_INSCRIPTION8; ?></font>
    	<br><font size="2"><?php echo TXT_INSCRIPTION9; ?></font>
       </td>
       <td width="70%">
    	<?php echo TXT_INSCRIPTION10; ?> 
                 <INPUT TYPE=radio name=civilite value="mlle"> 
    	<?php echo TXT_INSCRIPTION11; ?> 
                 <INPUT TYPE=radio NAME=civilite value="mme">
    	<?php echo TXT_INSCRIPTION12; ?> 
                <INPUT TYPE=radio NAME=civilite value="mr">
    	<br>
                <? if(isset($_POST["nom"])) 
                { ?>  
                       <INPUT TYPE=text NAME=nom value="<? echo $_POST  ["nom"]; ?>" size="15"> 
                <? 
                 } 
    	else 
                { ?> 
                      <INPUT TYPE=text NAME=nom size="15"> <? 
                } ?>
    	<br><? if(isset($_POST["prenom"])) { ?> 
                <INPUT TYPE=text NAME=prenom value="<? echo $_POST["prenom"]; ?>" size="15"> <? } 
    	else { ?> <INPUT TYPE=text NAME=prenom size="15"> <? } ?>
    	<br><? if(isset($_POST["ddn"])) { ?> 
                 <INPUT TYPE=text NAME=ddn value="<? echo $_POST["ddn"]; ?>" size="15"> <? } 
    	 else { ?> <INPUT TYPE=date NAME=ddn size="15"> <? } ?>
    	 <br><? if(isset($_POST["email"])) { ?> 
                 <INPUT TYPE=text NAME=email value="<? echo $_POST["email"]; ?>" size="30"> <? } 
    	 else { ?> <INPUT TYPE=url NAME=email size="30"> <? } ?>						
         </td>
    </tr>
    </table>
    <br><br><br><br><br><br><br><br>
     <!-----------------Table pour le mot de passe ----------------->
     <u><?php echo TXT_INSCRIPTION13; ?></u><i>
    <?php echo TXT_INSCRIPTION28; ?></i>
     <table border="0" cellspacing="0" cellpadding="0" width="80%" align="left">
     <tr>
          <td width="30%">
    	 <font size="2"><?php echo TXT_INSCRIPTION14; ?></font>
    	 <br><font size="2"><?php echo TXT_INSCRIPTION15; ?></font>
         </td>
         <td width="70%">
    	 <? if(isset($_POST["mdp"])) { ?> 
                 <INPUT TYPE=password NAME=mdp value="<? echo $_POST["mdp"]; ?>" size="10"> <? } 
    	 else { ?> <INPUT TYPE=password NAME=mdp size="10"> <? } ?>
    	 <br><? if(isset($_POST["confirme_mdp"])) { ?> 
                 <INPUT TYPE=password NAME=confirme_mdp value="<? echo $_POST["confirme_mdp"]; ?>" size="10"> <? } 
    	 else { ?> <INPUT TYPE=password NAME=confirme_mdp size="10"> <? } ?>		
          </td>
     </tr>
     </table>
     
    <br><br><br>
    <INPUT TYPE=submit name="submit" VALUE="<?php echo TXT_INSCRIPTION23; ?>">
    </FORM>
    J'utilise le formulaire ensuite comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(isset($_POST["submit"]))
    {
    // récuperation des variables
    $nom = $_POST["nom"];
    ..........................
    puis traitements des infos ............
    Donc je vous explique enfin mon problème, si l'utilisateur n'est pas identifié, et que donc il n'y a pas de $_SESSION['login'] de créer, les formulaires fonctionnent tous correctement ! Mais si l'utilisateur est identifié alors plus aucun formulaire ne fonctionne !! Dans ce cas le formulaire s'affiche correctement mais quand on clique sur le bouton 'submit' on est renvoyé a la page d'accueil et rien ne se passe.

    Voila, j'espère que c'est plus clair car je vois vraiment pas d'ou ca peut venir ..

    Merci a ceux qui prennent le temps de comprendre mon problème

  7. #7
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 74
    Points : 62
    Points
    62
    Par défaut
    bon pour le formulaire d'inscription l'internaute une fois connécter na pas besoin de ce formulaire " a mon avis " ,il doit ce déconnécté pour avoir accé a ce formulaire, pour les autres formulaire tu en parle mem pas , c quoi leur fonction ??!

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    oui je suis d'accord sur le fait que l'utilisateur n'a pas besoin du formulaire d'inscription si il est identifié mais ca change rien au probleme, il me suffira de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(isset($_SESSION['login'])) echo 'vous etes deja inscrit';
    else { ... formulaire ... }
    Mais ca ne change rien, je vous ai mis en exemple le formulaire d'inscription car c'est le premier que j'ai fait, mais j'utilise plus d'une dixaine de methode POST dans mon site c'est pour ca que je vous ai pas parlé des autres, je peux vous donnée un autre exemple (mais je pense pas que ca fera bcp avancé les c choses ):
    Donc voici une autre utilisation d'un formulaire avec methode POST, j'affiche tous les dossiers de photos de l'utilisateur récuperer dans la base de données et lorsque l'utilisateur clique sur un de ses dossiers ca lui affiche les photos contenus dans ce dossier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    .... recherche des dossiers dans la base de deonnees .......
     
    ?><FORM ACTION="index.php?page_gauche=visualisation_photos" METHOD="POST"><?
    	while ($data = mysql_fetch_array($req)) 
    	{ 
    		$temp_dossier = $data['nom_dossier'];
    		?><INPUT TYPE=submit name=dossier VALUE="<?php echo $temp_dossier; ?>"><?
    		echo '<br><br>';	
    	 } 
    ?></FORM><?
    Récuperation du dossier selectionné :

    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
    //  Test si l'utilisateur a ouvert un dossier 
    if(isset($_POST["dossier"]))
    { 
     
    ... recherche des photos dans la base de données ...						
    // Affichage des photos
    while ($data = mysql_fetch_array($req)) 
    { 
    	 $temp_photo = $data['nom_photo']; 
    	 $temp_photo_path = $data['photo_path'];  
    	?> 
    	<img src="<?php echo $temp_photo_path ?>" TITLE="<?php echo $temp_photo ?>" height="100" width="100">
    	<?
    }
    }
    Donc le probleme est tjs le meme, si l'utilisateur n'est pas identifié, les dossiers sont affiché et si l'utilisateur clique sur un de ces dossiers, les images sont affichées.
    Par contre si l'utilisateur est identifié, les dossiers sont bien affiché car aucune methode POST n'est utilisé pour faire ca, mais lorsque l'utilisateur clique sur un de ses dossiers, les photos ne s'affichent pas et c'est la page d'acceuil qui est ouvert.

    Merci pour l'aide

  9. #9
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Puisque ta page index comprend 2 includes soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    include "page_haut.php";
    et
    include($var_inscription);
    et ton formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <FORM ACTION="index.php?page_gauche=inscription" METHOD="POST">
    Cela ne te semblerait pas plus logique de procéder comme suit : ( ??)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    include ('page_haut.php');
    et
    include('page_gauche.php');
    et pour ton formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <FORM ACTION="index.php" METHOD="POST">
    Ceci pour commencer, et ensuite tu traites tes conditions dans cette même page_gauche.
    En tout cas, je procéderais de la sorte.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Je comprend pas bien, si je fais comme tu dis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    include ('page_haut.php');
    et
    include('page_gauche.php');
     
    et pour ton formulaire :
     
    <FORM ACTION="index.php" METHOD="POST">
    Dans ce cas la, j'ouvrirais toujours les 2 memes pages !!!!!!!! Comment faire avec ta méthode pour inclure la page inscription.php dans la page index.php ?? Tu veux que je traite les conditions dans la page_gauche mais j'ai plus de vingt page a inclure dans page_gauche alors ca me semble bien plus simple d'utiliser la methode que j'utilise

    Je repete ma méthode, peut etre mal expliqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Formulaire :
    <FORM ACTION="index.php?page_gauche=inscription" METHOD="POST">
    ............................
    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
    Récuperation de la page dans index.php :
     
    if (isset($_GET["page_gauche"])) 
    {
    	$var_inscription = $_GET['page_gauche'].'.php';
    }
    else
    {
    	$var_inscription = "accueil_gauche.php";
    }
     
    Inclusion des pages :
    <?
    	include($var_inscription);
    ?>
    Je me repete mais tout cela fonctionne parfaitement si aucune session a partir du login n'est créée !!

  11. #11
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Et bien ta page_gauche.php peut contenir un switch, exemple :

    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
     
     
    <?
    switch($page)
    {
     
    case'page1':
    include('page_1.php');
    break;
     
    case'page1':
    include('page_1.php');
    break;
     
    case'page1':
    include('page_1.php');
    break;
     
    default:
    include('page_de_garde.php');
    }
    ?>
    C'est le principe même des pseudos-frames en php ( et peu importe le nombre de pages à exploiter.
    Celle qui sera appelée s'affichera toujours en lieu en place, etc...

    Et pour tes form, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <FORM ACTION="index.php?page=page1" METHOD="POST">
    ou
    <FORM ACTION="index.php?page=page2" METHOD="POST">
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    ben ca reviens au meme que ce que j'ai fait ! sauf que mon code est plus court, au lieu de faire un switch avec 20 case pour les 20 pages que j'ai a inclurent, je passe le nom de la page récuperer avec GET en variable :


    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
    Récuperation de la page dans index.php :
     
    if (isset($_GET["page_gauche"])) 
    {
    	$var_inscription = $_GET['page_gauche'].'.php';
    }
    else
    {
    	$var_inscription = "accueil_gauche.php";
    }
     
    Inclusion des pages :
    <?
    	include($var_inscription);
    ?>
    et au niveau des formulaires c pareil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <FORM ACTION="index.php?page_gauche=inscription" METHOD="POST">
    ............................
    je comprend pas bien ou tu veux en venir, tu me donnes une manière pratiquement identique a ce que j'ai fait, en quoi ta méthode pourrait changer quoi que se soit a mon probleme avec les sessions ?

Discussions similaires

  1. php : probleme avec mon formulaire
    Par rane dans le forum Langage
    Réponses: 39
    Dernier message: 29/06/2006, 20h13
  2. Probleme avec un formulaire html
    Par SarahT dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 05/06/2006, 13h47
  3. probleme avec un formulaire à verifier
    Par vingtcent dans le forum Langage
    Réponses: 18
    Dernier message: 04/05/2006, 18h03
  4. Probleme avec mes formulaire html dans mes pages web
    Par foungnigue dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/12/2005, 19h07
  5. Probleme avec un formulaire!
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 15
    Dernier message: 14/12/2005, 11h18

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