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 :

Utilisation des sessions


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Utilisation des sessions
    Salut je suis débutant.
    J'aimerais réaliser un petit formulaire d'inscription (remplir le formulaire puis enregistrer les données dans une table).

    J'ai essayé de lire les différents tutoriels que j'ai pu trouver.

    Pour faire cela, certains proposent de faire le controle dans le meme fichier que le formulaire (ex: index.php). Si tout est ok, on envoie les info vers un autre fichier pour enregistrement (ex action.php).

    Moi je voudrais, dans index.php avoir simplement le formulaire puis dans action.php réaliser les contrôles. Si ok, en enrégistre dans la table sinon on renvoi l'utilisateur vers le formulaire en indiquant les messages d'erreurs à coté des champs correspondant.
    Pour réaliser cela, on dit ce serait mieux d'utiliser la variable SESSION. Mais en lisant des codes postés sur les forum, j'ai l'impression que celà revient au premier cas (faire tout dans le meme fichier).Et là je suis vraiment perdu.
    Quelques éclaircissement seraient les bienvenus.Pour que çà soit encore mieux voici mon code.

    index.php
    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
     
    <?php session_start(); ?> 
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <form id="form1" name="form1" method="post" action="action.php">
    <table border="1" align="center">
    <tr>
      <th width=150>Prenoms</th>
      <td width=150><input type="text" name="prenom" size="50" value="<?php if ( $_SESSION['prenom'] ) {
      echo($_SESSION['prenom']);
      unset($_SESSION['prenom']);
    }?>" />></td>
    </tr>
    <tr>
      <th>NOM</th>
      <td><input type="text" name="nom" size="50" value="<?php if ( $_SESSION['nom'] ) {
      echo($_SESSION['nom']);
      unset($_SESSION['nom']);
    }?>" />></td>
    </tr>
    <tr bgcolor="#a5a5a5"><th colspan=2 align="center"><input type="submit" name="inscrire" value="S'inscrire" ></tr>
    </table>
    </form>
    </body>
    </html>
    action.php

    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
     
    <?php
         session_start();
    	if(!isset($_SESSION["nom"]) || $_SESSION["nom"]=="") {
    		$_SESSION['erreurs']['nom'] = "Ce champ doit être renseigné.";
    	} else {
    		$nom =$_SESSION["nom"];
    	}
     
    	if(!isset($_SESSION["prenom"]) || $_SESSION["prenom"]=="") {
    		$_SESSION['erreurs']['prenom'] = "Ce champ doit être renseigné.";
    	} else {
    		$prenom =$_SESSION["prenom"];
    	}
     
    	if(($nom != "") && ($prenom != ""))
    	 {
              $server="127.0.0.1";
              $user="root";
              $pwd=""; 
              $conn=mysql_connect ($server, $user, $pwd);
              $bdd = "test"; 
              mysql_select_db ($bdd)
    		  $requete=" insert into personne (nom,prenom)";
              $requete.="values('$nom','$prenom')";
              $execution=mysql_query($requete)or die(mysql_error());
     
    		  if($execution==false)
    	       { die(mysql_error()); }
               else {
                echo "<h2 align='center'>inscription réalisée avec succés<br></h2>";
                  }
    	 }
     
    ?>

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 63
    Points : 67
    Points
    67
    Par défaut
    Le principal avantage des sessions et que tu peux avoir accès à ta variables depuis n'importe quel autre page php sans avoir à revalider quoi que soit. Dans ton cas je trouve cela inutile.

    Le fait de n'avoir qu'une seule page de formulaire qui fait tout (contrôle, message d'erreur , insertion base) évite d'avoir à recoder une partie du formulaire.

    Dans le cas d'une page formulaire avec un traitement sur une autre page (action), il te suffira de copier ton premier formulaire et d'y inclure une value aux input si tu souhaites que ton utilisateur n'est pas à ressaisir les bons champs et un affichage du message d'erreur ou de succès de l'enregistrement.

  3. #3
    Membre habitué
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2008
    Messages : 106
    Points : 152
    Points
    152
    Par défaut
    +1
    Autre chose : isset() + != "" = !empty()
    voir la doc pour empty

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(!empty($_POST['var'])) {
        // POST VAR non vide
    }

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce n'est pas juste lucas74 :
    - PHP est gentil et accepte de travailler avec des variables non déclarées ; cependant il est plus poli de vérifier que la variable existe avant de tester sa valeur.

    - si tu utilises !empty(), tu elimines la possibilité de saisir une valeur zéro.

  5. #5
    Membre habitué
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2008
    Messages : 106
    Points : 152
    Points
    152
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Ce n'est pas juste lucas74 :
    - PHP est gentil et accepte de travailler avec des variables non déclarées ; cependant il est plus poli de vérifier que la variable existe avant de tester sa valeur.

    - si tu utilises !empty(), tu elimines la possibilité de saisir une valeur zéro.
    1-ce n'est pas du tout la question, je veux dire qu'il peut se simplifier la vide avec empty qui teste ET l'existence ET la valeur de la variable, ce qui est plus simple que d'utiliser une fonction + un opérateur

    2-Tu as déjà vu 0 comme non ou prénom ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je pontais que les deux écritures n'étaient pas équivalentes.

    Comme tu le fais remarquer a l'echelle de nom/prenom ca semble indifferent mais déjà si l'utilisateur saisie 0 on lui répondra qu'il n'a rien saisi et s'il saisi 9 sa saisie sera prise en compte.

    Je conseillerais au contraire cent fois à un débutant d'afficher toutes les erreurs PHP et de prendre l'habitude d'écrire un code strict.

  7. #7
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par lucas74 Voir le message
    Autre chose : isset() + != "" = !empty()
    C'est un peu hors-sujet, mais je vois que tu apportes pas mal de contributions, la plupart du temps pertinentes.
    Mais là, c'est franchement pas clair. Si tu veux aider les gens, évites ces formules cabalistiques...

  8. #8
    Membre habitué
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2008
    Messages : 106
    Points : 152
    Points
    152
    Par défaut
    Citation Envoyé par jml94 Voir le message
    C'est un peu hors-sujet, mais je vois que tu apportes pas mal de contributions, la plupart du temps pertinentes.
    Mais là, c'est franchement pas clair. Si tu veux aider les gens, évites ces formules cabalistiques...
    oui avec un peu de recul

Discussions similaires

  1. utilisation des sessions dans les jsp
    Par casho dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 16/08/2006, 19h45
  2. [FPDF] fpdf et utilisation des sessions
    Par kagura dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 11/05/2006, 18h46
  3. incompréhension sur l'utilisation des sessions
    Par cladsam dans le forum Langage
    Réponses: 12
    Dernier message: 31/01/2006, 12h28
  4. Réponses: 5
    Dernier message: 22/08/2005, 16h48
  5. [VB.NET] Utilisation des sessions dans Session_End ?
    Par San Soussy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/02/2005, 16h40

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