PHP: Afficher/modifier les données du formulaire en cours
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 36

PHP: Afficher/modifier les données du formulaire en cours



  1. #1
    olivier147

    PHP: Afficher/modifier les données du formulaire en cours


    ------

    Bonjour à tous,

    J'ai créé un formulaire HTML avec un certains nombre de données que je traite et stocke dans une base SQL via un code PHP, jusque là tout va bien, une nouvelle ligne avec un Id unique est créé.
    Je souhaiterai dans un premier temps que les données que je viens de taper restent dans mon formulaire après leur envoi sur la base, et dans un deuxième temps je souhaiterai pouvoir modifier autant que je veux ce formulaire sans pour autant créer une nouvelle ligne à chaque fois dans ma base.
    Dans l'idée que je m'en fais, après avoir validé mon formulaire, la page se rafraichit et passe en mode "modification" tout en conservant les données du dernier envoi.
    Les prochains enregistrements ne créront pas une nouvelle ligne mais enregistreront mes modifications.

    Concrètement j'imagine la chose comme suit:

    -remplissage de mon formulaire --> clic sur un bouton "enregistrer" --> création ligne avec Id sur la base SQL ---> conservation des données dans le formulaire --> clic sur un bouton modifier --> modification à effectuer --> clic sur enregistrer ---> modification des données dans la base.

    Pouvez vous m'orienter sur la structure à adopter?

    Merci d'avance.

    -----

  2. #2
    imoca

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Utilise un formulaire de la forme form.php?id= par exemple.
    si l'id n'est pas renseigné ou non présent dans la base de donnée, alors les champs seront enregistrés et l'id sera retourné. le script charge form.php?id=valeur_retourné
    sinon l'id correspond a un élément de la BDD, requete sql, puis remplissage du formulaire. ici au lieu d'un bouton envoyer utilise un bouton éditer par exemple
    Utilise UPDATE au lieu de INSERT modifiera l'enregistrement en BDD.

  3. #3
    cherbe

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Citation Envoyé par imoca Voir le message
    Utilise un formulaire de la forme form.php?id= par exemple.
    si l'id n'est pas renseigné ou non présent dans la base de donnée, alors les champs seront enregistrés et l'id sera retourné. le script charge form.php?id=valeur_retourné
    sinon l'id correspond a un élément de la BDD, requete sql, puis remplissage du formulaire. ici au lieu d'un bouton envoyer utilise un bouton éditer par exemple
    Utilise UPDATE au lieu de INSERT modifiera l'enregistrement en BDD.
    Bonsoir
    Autre façon de faire pour incrémenter l'ID entre deux utilisations :
    Avant de charger le formulaire, il faudrait faire une requête sur la base de données pour obtenir le max de la colonne ID. Il suffira d'ajouter 1 à cet ID pour un nouvel enregistrement.

  4. #4
    olivier147

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Bonjour,

    Merci pour votre aide, je patauge un peu j'avoue, je vous mets les deux codes je pense que ce sera plus parlant


    Voici mon premier code HTML qui contient le formulaire



    Code HTML:
    <!doctype xhtml> 
    <html> 
    
    <title>Déclaration</title> 
    
    <style type="text/css">
    
    
    html{
    font-family: "Open Sans", "Segoe WP", "Segoe UI", Helvetica, Arial, sans-serif;
    color: #7F8C9A;
    background: #FCFDFD;
    }
    
    
    h1{
    font-size: 40px;
    font-family:Arial, Helvetica, sans-serif;
    color: #ffffff;
    text-align:center;
    background-color:#757474 ;  
    }
    
    
    
    .déclaration {
    position : absolute;
    top: 80px;
    left: 10px;
    width:760px;
    text-align: left;
    }
    
    
    
    
    
    
    
    a img{
    border: none;
    }
      
    
    
    </style>
    
    
    <H1>#Déclaration</H1>
    
    
    
    <body> 
    
    
    
    <div class="déclaration">
    
    
    <form action="declaration.php" method="post" enctype="multipart/form-data" ="declaration.php" >
    
    
    
    <fieldset class="rotatinglist">
    <legend>Exploitation</legend>
    
    
        
        <label> Exploitation</label>
        <SELECT name="exp" size="1">
        <OPTION>Nord
        <OPTION>Sud
        </SELECT>
        
    
    
    
        <label> Mr.</label>
        <SELECT name="nom" size="1">
        <OPTION>Pierre
        <OPTION>Paul
      
        </SELECT>
        
    
    </fieldset>
    
    <br>
    
    
    
    <fieldset class="rotatinglist">
    <legend>Contexte de l'Incident</legend>
    
    
    
    <br>
    
    <label for="Commune">Commune : </label> 
    <input type="text" name="commune" size="20" id="commune">
    <label for="code">Code Postal :</label> 
    <input type="text" name="code"  style="width:50px;  id="code"><br>
    <label for="Rue">Rue :</label> 
    <input type="text" name="rue" style="width:300px;   id="rue"><br>
    <label for="date">Date de l'incident :</label> 
    <input type="text" name="date" style="width:50px;   id="date"><br>
    <label for="dict">Existence d'une DICT? :</label> 
    <INPUT type="radio" name="choix" Id="oui" value="Oui" > Oui&nbsp;&nbsp;
    <INPUT type="radio" name="choix" Id="non" value="Non" > Non&nbsp;&nbsp;
    <label for="num">N°DICT : </label> 
    <input type="text" name="num" size="20" id="num">
    
    
        <TEXTAREA name="texte" rows=4 cols=61>Indications complémentaires...</TEXTAREA>
        
    <br>
    
    </fieldset>
    <br>
    
    <fieldset class="rotatinglist">
    <legend>Renseignements entreprise</legend>
    
    
    <label for="Nomentreprise">Nom entreprise :</label> 		
    <input type="text" name="nomentreprise" size="20" id="nomentreprise"><br>
    <label for="ville">Ville :</label> 
    <input type="text" name="ville" size="20" id="ville">
    <label for="code2">Code Postal :</label> 
    <input type="text" name="code2" size="20" id="code2"><br>
    <label for="rue2">Rue :</label> 
    <input type="text" name="rue2" size="20" id="rue2">
    <br>
    
    </fieldset>
    
    <p>
    <input type="file" name="fichier" size="30"><br><br><br><br>
    <input type="submit" name="upload"  value="Enregistrer la déclaration">
    
    </p>
    
    </form>
    
    <?php
    print $_POST['choix'];
    ?>
    
    </div>
    
    </body> 
    </html>

    Et voici le PHP qui balance les données sur ma base SQL


    Code PHP:

    <?php 


    // On commence par récupérer les champs 
    if(isset($_POST['nom']))      $nom=$_POST['nom'];
    else      
    $nom="";


    if(isset(
    $_POST['exp']))      $exp=$_POST['exp'];
    else      
    $exp="";

    if(isset(
    $_POST['rue']))      $rue=$_POST['rue'];
    else      
    $rue="";

    if(isset(
    $_POST['commune']))      $commune=$_POST['commune'];
    else      
    $commune="";


    if(isset(
    $_POST['choix']))      $choix=$_POST['choix'];
    else      
    $choix="";



    if(isset(
    $_POST['num']))      $num=$_POST['num'];
    else      
    $num="";



    if(isset(
    $_POST['ville']))      $ville=$_POST['ville'];
    else      
    $ville="";



    if(isset(
    $_POST['code']))      $code=$_POST['code'];
    else      
    $code="";


    if(isset(
    $_POST['nomentreprise']))      $nomentreprise=$_POST['nomentreprise'];
    else      
    $nomentreprise="";


    if(isset(
    $_POST['code2']))      $code2=$_POST['code2'];
    else      
    $code2="";


    if(isset(
    $_POST['rue2']))      $rue2=$_POST['rue2'];
    else      
    $rue2="";




    // On vérifie si les champs sont vides 
    if(empty($nom)  OR empty($exp) OR empty($rue)OR empty($commune)OR empty($choix)
    OR empty(
    $num)OR empty($ville) OR empty($code)OR empty($nomentreprise)OR empty($code2)OR empty($rue2)) 
        { 
        echo 
    '<font color="red">Attention, tous les champs ne sont pas renseignés !</font>'
        } 



    // Aucun champ n'est vide, on peut enregistrer dans la table 
    {
           
    // connexion à la base
    $connexion mysql_connect("localhost.localdomain""XXXX""XXXXXX") or die ("message d'erreur : ".mysql_error($connexion)); 
    $db mysql_select_db("XXXX");  
         
        
    // on écrit la requête sql 
        
    $sql "INSERT INTO infos_tbl(id, nom, exp, rue, commune, choix, num, ville,code,nomentreprise,code2,rue2) 
    VALUES('','
    $nom','$exp','$rue','$commune','$choix','$num','$ville','$code','$nomentreprise','$code2','$rue2')"
         
        
    // on insère les informations du formulaire dans la table 
        
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 

        

        
    mysql_close();  // on ferme la connexion 
         
    }

         
         

    ?>

  5. A voir en vidéo sur Futura
  6. #5
    imoca

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Creer un bdd form avec la table form ayant 2 colonnes id (auto-incremente) et value (int)

    Code:
    <?php 
    $bdd = new PDO('mysql:host=localhost;dbname=form;charset=utf8', 'root', '');
    $v="Entrez une valeur";
    $submit="Enregistrer";
    $complement="";
    if(isset($_GET["id"])){
    	if(isset($_POST["value"])){
    		$value = $_POST["value"] ;
    		$sql = "UPDATE form set value='$value' WHERE id=".$_GET["id"] ;
     
      //exécution de la requête SQL:
    		$bdd->exec($sql);
    		$id=$_GET["id"];
    		unset($_POST);
    		header("Location: form.php?id=".$id);
    	}
    	else{
    	$sql2 = "SELECT  value FROM form WHERE id=".$_GET["id"] ;
    	$reponse = $bdd->query($sql2);
    	$donnees = $reponse->fetch();
    	$v=$donnees[0];
    	$complement="?id=".$_GET["id"];
    	$submit="Editer";}
    }else{
    if(isset($_POST["value"])){
    	
      	$value     = $_POST["value"] ;
     
      //création de la requête SQL:
    $sql = "INSERT  INTO form (value)
                VALUES ('$value') " ;
     
      //exécution de la requête SQL:
    $bdd->exec($sql);
    $sql2 = "SELECT  MAX(id) FROM form" ;
    $reponse = $bdd->query($sql2);
    $donnees = $reponse->fetch();
    unset($_POST);
    header("Location: form.php?id=".$donnees[0]);
    }
    }
    ?>
    <form action="form.php<?php echo $complement; ?>" method="post">
     <p>La valeur : <input type="text" name="value" value="<?php echo $v; ?>"/></p>
     <p><input type="submit" value="<?php echo $submit; ?>"></p>
    </form>
    <?php 
    if($submit=="Editer"){
    	echo "<form action='form.php' method='post'>
     <p><input type='submit' value='Nouvelle Enregistrement'></p>
    </form>";
    }
     ?>

  7. #6
    cherbe

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Bonsoir
    Il faudrait que lorsque l'utilisateur valide le formulaire en mode création, cela pointe vers une autre page PHP.
    Dans celle-ci, tu recopie le code HTML du formulaire.
    Tu complète avec du PHP et du javascript :
    Code:
    <?php
       $rq=mysql_query("select * from infos_tbl where ID=max(ID)"); //ça récupère les valeurs qui viennent d'être insérées
    ?>
    //Ensuite, tu créé un javascript qui va remplir les champs du formulaire avec les valeurs de la requête :
       <script>
          document.getElementById('commune').value=<?php mysql_result($rq,4,0);?>;
          document.getElementById('code').value=<?php mysql_result($rq,8,0);?>;
    .
    .
    .
      </script>

  8. #7
    olivier147

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Bonjour,

    J'ai bien lu vos réponses, je ne pourrais essayer tout cela que demain. Je vous tiens au courant du rendu.

    Merci ; -)

  9. #8
    olivier147

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Bonjour à tous,

    J'ai avancé dans mon projet grâce à vous

    Cependant je suis devant une nouvelle difficulté, je voudrais récupérer une donnée dans une ligne de mon enregistrement sql en cours pour l'utiliser afin de nommer un dossier que je créée avec le même nom.



    Là je vais chercher la donnée qui m’intéresse de mon dernier enregistrement, c'est à dire la valeur dans la colonne "DS"

    Code PHP:
    $reponse mysql_query("SELECT DS  FROM infos_tbl ORDER BY ID DESC LIMIT 0,1");

    while (
    $donnees mysql_fetch_array($reponse) ){
    echo 
    $donnees['DS'];

    Ensuite, je voudrais créer un sous dossier qui porterai le même nom que ma donnée "DS" dans le dossier "Upload" pour y insérer un fichier.

    Code PHP:
    if( isset($_POST['upload']) ) // si formulaire soumis
    {


    $dossier "upload/$donnees["DS"]";
    if(!
    is_dir($dossier)){
       
    mkdir($dossier); 
    C'est là que je bloque, je dois pas utiliser la bonne syntaxe ou quelque chose m’échappe surement mais il ne parvient pas à récupérer la valeur de "DS"
    C'est cette ligne qui pose problème : $dossier = "upload/$donnees["DS"]";

    Avez vous une idée??

    Merci

  10. #9
    cherbe

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Citation Envoyé par olivier147 Voir le message
    Code:
    $dossier = "upload/$donnees["DS"]";
    essaie :
    Code:
    $dossier = 'upload/'.$donnees["DS"];
    J'ai volontairement remplacé le 1er jeu de quotes par des apostrophes.

  11. #10
    olivier147

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Bonjour Cherbe,

    Alors, je n'ai pas de message d'erreur mais le dossier ne se créé par pour autant....

  12. #11
    cherbe

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Citation Envoyé par olivier147 Voir le message
    Alors, je n'ai pas de message d'erreur mais le dossier ne se créé par pour autant....
    Remarques :
    - il manque une accolade fermente. Si tu indentais ton code, tu l'aurais vu tout de suite.
    - Es-tu sûr de pouvoir utiliser mkdir ? Certains hébergeurs désactivent ce genre de commandes.
    - Pendant la phase de test/debug, utilise l'instruction ERROR_REPORTING(E_ALL) pour que PHP t'informe des erreurs rencontrées.

    met cette instruction pour voir ce que contient la variable :
    echo $dossier;
    autre test :
    Code:
    if(!is_dir($dossier))
         {
          echo "le dossier n'existe pas";
          if(mkdir($dossier))
               {
                echo "dossier cree";
                }
          else
               {
                echo "echec de creation du dossier";
               }
       }

  13. #12
    olivier147

    Re : PHP: Afficher/modifier les données du formulaire en cours

    J'ai finalement réussi avec les instructions suivantes

    Code PHP:
    $row=mysql_fetch_assoc($reponse);
    $DS $row['DS'];
               
               

    // on ferme la connexion à mysql
    mysql_close();




    if( isset(
    $_POST['upload']) ) // si formulaire soumis
    {


    $dossier "upload/$DS";
    if(!
    is_dir($dossier)){
       
    mkdir($dossier); 
    Merci Cherb

  14. #13
    olivier147

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Encore besoin de tes conseils Cherb

    Dans mon formulaire j'ai deux boutons radio, je dois choisir entre "oui" et "non".
    Lorsque je rappelle mon formulaire je souhaite qu'il conserve et checked le choix précédent, mais ça ne fonctionne pas, il garde bien en mémoire le choix puisque je le retrouve en faisant un echo mais la case coché est toujours la case "non"

    Vois tu pourquoi?


    Code PHP:

    <INPUT type="radio" name="choix" Id="oui"  disabled="true"   value="oui" <?php if(isset($_POST['choix'])=="oui") {echo 'checked="checked"';}?> onClick="afficher();" /> Oui&nbsp;&nbsp;
    <INPUT type="radio" name="choix" Id="non" disabled="true"   value="non" <?php if(isset($_POST['choix'])=="non") {echo 'checked="checked"';}?> onClick="cacher();" /> Non&nbsp;&nbsp;
    Dernière modification par olivier147 ; 20/11/2015 à 15h37.

  15. #14
    cherbe

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Citation Envoyé par olivier147 Voir le message
    Code:
    <INPUT type="radio" name="choix" Id="oui"  disabled="true"   value="oui" <?php if(isset($_POST['choix'])=="oui") {echo 'checked="checked"';}?> onClick="afficher();" />
    Tu as plusieurs erreurs.
    Essaie :
    Code:
    <INPUT type="radio" name="choix" Id="oui"  disabled="true"   value="oui" <?php if(isset($_POST['choix']) and $_POST['choix']) =="oui") {echo '"checked"';}?> onClick="afficher();" />
    A quoi sert disabled="true" ?

  16. #15
    olivier147

    Re : PHP: Afficher/modifier les données du formulaire en cours

    disabled="true" sert à griser les champs de formulaire, je les fais apparaitre lorsque je clic sur un bouton "modifier"...

    je vais essayer ton code

  17. #16
    olivier147

    Re : PHP: Afficher/modifier les données du formulaire en cours

    L'erreur suivante s'affiche:

    Parse error: syntax error, unexpected T_IS_EQUAL in /appli/projects/e-box/apache_2.2.24/htdocs/e-box/declaration.php on line 231


    La ligne 231 correspond au code que tu m'as confectionné.

  18. #17
    cherbe

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Citation Envoyé par olivier147 Voir le message
    L'erreur suivante s'affiche:
    Parse error: syntax error, unexpected T_IS_EQUAL in /appli/projects/e-box/apache_2.2.24/htdocs/e-box/declaration.php on line 231
    Oups, il y a une parenthèse fermante en trop : $_POST['choix'])

  19. #18
    olivier147

    Re : PHP: Afficher/modifier les données du formulaire en cours

    J'arrive bien à ce résultat normalement?

    Code PHP:

    <INPUT type="radio" name="choix" Id="oui"  disabled="true"   value="oui" <?php if(isset($_POST['choix']) and $_POST['choix'] =="oui") {echo '"checked"';}?> onClick="afficher();" />Non&nbsp;&nbsp;
    <INPUT type="radio" name="choix" Id="non"  disabled="true"   value="non" <?php if(isset($_POST['choix']) and $_POST['choix'] =="non") {echo '"checked"';}?> onClick="afficher();" />Non&nbsp;&nbsp;
    Là plus rien n'est checké

  20. #19
    cherbe

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Citation Envoyé par olivier147 Voir le message
    J'arrive bien à ce résultat normalement?

    Code PHP:

    <INPUT type="radio" name="choix" Id="oui"  disabled="true"   value="oui" <?php if(isset($_POST['choix']) and $_POST['choix'] =="oui") {echo '"checked"';}?> onClick="afficher();" />Non**
    <INPUT type="radio" name="choix" Id="non"  disabled="true"   value="non" <?php if(isset($_POST['choix']) and $_POST['choix'] =="non") {echo '"checked"';}?> onClick="afficher();" />Non**
    Là plus rien n'est checké
    Affiche le code source de la page de résultat et regarde comment il a écrit la balise <INPUT.../>
    Je suspecte un problème d'espace.
    Il faudrait peut-être mettre : echo ' "checked" ';
    ou echo '&nbsp;"checked"&nbsp;';

  21. #20
    imoca

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Met un echo "checked"; ou bien un echo 'checked="checked" ';

  22. #21
    olivier147

    Re : PHP: Afficher/modifier les données du formulaire en cours

    J'ai essayé avec ceci mais ça ne fonctionne pas:

    Code PHP:

    <input type="radio" name="choix" Id="oui"  disabled="true"   value="oui" <?php if(isset($_POST['choix']) and $_POST['choix'] =="oui") {echo'checked="checked"';}?> onClick="afficher();" />Oui&nbsp;&nbsp;
    <input type="radio" name="choix" Id="non"  disabled="true"   value="non" <?php if(isset($_POST['choix']) and $_POST['choix'] =="non") {echo'checked="checked"';}?> onClick="afficher();" />Non&nbsp;&nbsp;

  23. #22
    imoca

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Peu tu montrer le code html engendré?

  24. #23
    olivier147

    Re : PHP: Afficher/modifier les données du formulaire en cours

    je n'ai pas de message d'erreur, seulement la case n'est pas cochée...

  25. #24
    cherbe

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Citation Envoyé par olivier147 Voir le message
    je n'ai pas de message d'erreur, seulement la case n'est pas cochée...
    Dans mon message 551, je te demandais le code source de la page HTML;
    IOMOCA t'as fais la même demande.

  26. #25
    olivier147

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Désolé pour la réponse tardive, j'ai réussi à m'en sortir, je me suis abstenu à ne pas demander d'aide pour faire marcher mer neurones ^^
    Cependant, je bute à nouveau sur broutille mais qui me bloque.

    J'ai créé une ligne de code avec une variable qui sera injecté dans ma base de données SQL que je récupère ensuite sous forme de lien dans une requête

    Code PHP:

    $supprimer
    ="<a href=delete.php?DS=$DS><img src=Images/delete.png border=0 onclick=return confirm('Etes vous sûre de vouloir supprimer ce dossier ?'); alt=Supprimer></a>"


    Cette ligne de code me permet de rediriger ma page vers un code php pour supprimer la ligne SQL souhaitait

    Code PHP:

    <?php


    // connexion à la base
    $connexion mysql_connect("localhost.localdomain""xxxxxx""xxxxxxxxxxxxxx") or die ("message d'erreur : ".mysql_error($connexion)); 
    $db mysql_select_db("xxxx); 
    mysql_query("
    set names 'utf8'");

    $DS = isset($_GET['DS']) ? mysql_real_escape_string($_GET['DS']) : '';

    $requete = mysql_query('DELETE FROM infos_tbl WHERE
    DS="'.$DS.'" ')or die(mysql_error());

    header ("
    Location$_SERVER[HTTP_REFERER]" );

    ?>
    Seulement, les deux (') semble poser problème puisque j'ai ce message d'erreur:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Etes vous sûre de vouloir supprimer ce dossier ?'); alt=Supprimer>')' at line 3

    Lorsque j'enlève les deux (') ça passe mais évidement le message popup d'alerte ne fonctionne pas.

    Avez vous une idée pour contourner le problème??

    Merci
    Dernière modification par olivier147 ; 08/01/2016 à 09h16.

  27. #26
    Tryph

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Salut,

    ça fait super longtemps que j'ai pas fait de PHP/HTML/Javascript, mais il me semble que l'erreur vient de cette partie de ton code:
    Code:
    onclick=return confirm('Etes vous sûre de vouloir supprimer ce dossier ?');
    ça devrait plutôt ressembler à ça:
    Code:
    onclick="return confirm('Etes vous sûre de vouloir supprimer ce dossier ?');"
    onclick étant un attribut d'une balise HTML, tu dois entourer sa valeur par des guillemets.

    mais comme tu utilises déjà des guillemets pour entourer la chaine $supprimer au complet, tu vas devoir échapper les guillemets de l'attribut onclick, comme ceci:
    Code:
    $supprimer="<a href=delete.php?DS=$DS><img src=Images/delete.png border=0 onclick=\"return confirm('Etes vous sûre de vouloir supprimer ce dossier ?');\" alt=Supprimer></a>";

  28. #27
    olivier147

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Bonjour Tryph,

    Je te remercie ça fonctionne parfaitement
    J'avais vu l'oubli des guillemets que j'avais ajouté par la suite mais je ne parvenais à les échapper....

    Encore merci

  29. #28
    olivier147

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Bonjour,

    Tout le monde!!

    Je suis de nouveau dans la misère avec une ligne de code.
    j'ai mis en place un système d'identification et une session_start.
    Pour ce qui est de l'identification, pas de soucis, je renseigne mon "login" + "mot de passe", la vérification se fait sur la base et je peux me connecter.

    Ma table est sous cette forme: 'login','pass','rang'

    Le rang sert à donner des droits particuliers selon le profil (rang=0 lecture seule; rang=2 modification)

    Pour cela j'utilise les codes suivants pour la vérification de l'identification et la création de la session_start:

    Code PHP:

    <?php
    // on se connecte à MySQL 
    include("config2.php");

    if(isset(
    $_POST) && !empty($_POST['login']) && !empty($_POST['password'])) {
    $_POST['password'] = $_POST['password'];
      
    extract($_POST);
      
    // on recupére le password de la table qui correspond au login du visiteur
      
    $sql "select password, from table_utilisateur where login='".$login."'";
      
    $req mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

      
    $data mysql_fetch_assoc($req);

      if(
    $data['password'] != $password) {
        echo 
    '<div class="alert alert-dismissable alert-danger">
      <button type="button" class="close" data-dismiss="alert">x</button>
      <strong>Oh Non !</strong> Mauvais login / password. Merci de recommencer !
    </div>'
    ;
      }
      
      else {
        
    session_start();
        
    $_SESSION['login'] = $login;
        
        
        
        echo 
    '<div class="alert alert-dismissable alert-success">
      <button type="button" class="close" data-dismiss="alert">×</button>
      <strong>Yes !</strong> Vous etes bien logué, Redirection dans 5 secondes ! <meta http-equiv="refresh" content="5; URL=dashboard">
    </div>'
    ;


       
    header("Location:Sinistres.php"); // redirection si OK
      
    }    
    }
    else {
      
    $champs '<p><b>(Remplissez tous les champs pour vous connectez !)</b></p>';
    }


    ?>

    Ensuite mon code me bascule vers ma page d'acceuil "Sinistres.php"

    Au début de celle-ci j'ai ma session_start:

    Code PHP:

    <?php session_start();

    /*
    si la variable de session login n'existe pas cela siginifie que le visiteur
    n'a pas de session ouverte, il n'est donc pas logué ni autorisé à
    acceder à l'espace membres
    */
    if(!isset($_SESSION['login'])) {
      echo 
    'Vous devez vous identifier';
      include(
    'login.php');
      exit;
      
      
    }

    ?> 

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html>

    .........

    </html>


    Là où j'ai un soucis c'est lorsque je veux faire appel à 'rang'.
    J'avais dans l'idée que ma session_start conserverait mes données 'login', 'pass', et 'rang'
    Mais il semble que non puisque si je fais un echo de 'rang' rien ne s'afficher, alors que pour 'login' il n'y a pas de soucis.....
    Deuxième chose étrange, si j'utilise
    Code PHP:
    $_SESSION['login'
    dans une fonction, il me dit que l'index 'login' n'existe pas, alors qu'il me le renvoi bien avec ECHO....

    Bref il doit y avoir quelque chose que je loupe.


    Pouvez vous me donner un petit coup de mais svp
    Dernière modification par olivier147 ; 01/02/2016 à 14h57.

  30. #29
    cherbe

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Pas bien sûr de moi mais ça me semble logique :

    tu démarres un session si le login est correct ;
    Dans la page suivante, tu as remis un session_start. Est-ce qu'elle ne ferme pas la session précédente en écrasant ses variables ?
    Et même si la précédente n'est pas fermée, il y a confusion car 2 sessions sont ouvertes.
    Essaie en supprimant session_start dans la seconde page.
    Dernière modification par cherbe ; 01/02/2016 à 15h16.

  31. #30
    olivier147

    Re : PHP: Afficher/modifier les données du formulaire en cours

    Voilà ce qu'il me met si je supprime la session_start sur la seconde page:

    Notice: "Undefined variable: _SESSION in /appli/projects...."

    En plus du "Notice: Undefined variable: login in /appli/projects...."

    Pour le 'login' ce qui est incompréhensible c'est qu'il me l'affiche bien en echo....je comprends pas

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Enregistrement des données d'un formulaire(en mode feuille de données)
    Par lordgodgiven dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 28/09/2011, 13h15
  2. Pb Formulaire InfoPath vers base données Acces 2007
    Par invite4aaa7617 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 11/06/2009, 07h27
  3. Afficher sur un LCD des données séries, RS232 vers LCD
    Par crocu dans le forum Électronique
    Réponses: 0
    Dernier message: 27/03/2009, 12h32
  4. Afficher le résultat d'un calcul dans un formulaire web
    Par invite234d9cdb dans le forum Internet - Réseau - Sécurité générale
    Réponses: 1
    Dernier message: 20/08/2008, 10h38
  5. Comment récupérer les données d'un formulaire avec php?
    Par invite8f80ea32 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 0
    Dernier message: 04/05/2008, 12h44