Sauvegarder les données d'un formulaire avec session

binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour chers membres, j'ai besoin d'aide.

En fait j'ai crée une plateforme qui permet aux utilisateurs de se connecter, de saisir des données et de les afficher. Maintenant au cours de la saisie l'utilisateur doit avoir une page qui lui dit "Bonjour 'username' vous êtes à l'entreprise 'nomagence' et le programme doit stocker username et nomagence dans la session et les enregistrer au moment de l'enregistrement des données du formulaire. Voici les codes qui m'affichent des erreurs.

Merci d'avance!

commande.php


<?php
// Initialize the session
session_start();
$serveur = "localhost";
$dbname = "base";
$user = "root";
$pass = "";
//$agence = $_SESSION["nomagence"];
$_SESSION["agence"] = $_POST;
$username = $_SESSION["username"];
//Si la variable $_POST['truc'] existe, alors $truc = $_POST['truc']  sinon elle vaut NULL 
$agence = isset($_SESSION["nomagence"]) ? $_SESSION["nomagence"] : NULL;

//ou avec !EMPTY() 
//Si la variable $_POST['truc'] existe et n'est pas vide, alors $truc = $_POST['truc']  sinon elle vaut NULL 
$agence = !empty($_SESSION["nomagence"]) ? $_SESSION["nomagence"] : NULL;
$sql='SELECT * FROM users'; 
?>
<html>
     <head>
		 <meta charset="utf-8"/>
		 <link rel="stylesheet" href="inscription.css"/>
		 </head>
<h4>Bonjour, <b>
<?php
 echo htmlspecialchars($_SESSION["username"]);
 ?>
 
 Vous ȇtes à la société
 
 <?php 
 
 echo htmlspecialchars($_SESSION["nomagence"]);
 
 ?>
 </h4>Enrer une nouvelle commande</b>        
        <form action="testcommande.php" method="post">
		<!--<div class="c100">
                <label for="agence">Agence : </label>
                <input type="varchar" id="agence" name="agence">
            </div>
			<div class="c100">
                <label for="nomagent">Nom de l'agent : </label>
                <input type="varchar" id="nomagent" name="nomagent">
            </div>-->
		<div class="c100">
                <label for="datecommande">Date commande : </label>
                <input type="date" id="datecommande" name="datecommande">
            </div>
            <div class="c100">
                <label for="numerocompte">N° Compte Client : </label>
                <input type="varchar" id="numerocompte" name="numerocompte">
            </div>
            <div class="c100">
                <label for="prenom">Prenom : </label>
                <input type="varchar" id="prenom" name="prenom">
            </div>
            <div class="c100">
                <label for="nom">Nom : </label>
                <input type="varchar" id="nom" name="nom">
            </div>
		
			<div class="c100">
                <label for="montant">Montant : </label>
                <input type="float" id="montant" name="montant">
            </div>
			<div class="c100">
                <label for="acompte">Acompte : </label>
                <input type="float" id="acompte" name="acompte">
            </div>
			<div class="c100">
                <label for="solde">Solde : </label>
                <input type="float" id="solde" name="solde">
            </div>
			<div class="c100">
                <label for="datenvoie">Date Envoie : </label>
                <input type="date" id="datenvoie" name="datenvoie">
            </div>
			
            <div class="c100">
                <input type="checkbox" id="statut" name="statut" value="envoie">
                <label for="statut">Envoie</label>
                
            </div>
            
            <div class="c100" id="submit">
                <input type="submit" value="Envoyer">
            </div>
        </form>
</html>


testcommande.php
<?php
    $serveur = "localhost";
    $dbname = "base";
    $user = "root";
    $pass = "";
    
    $agence = $_SESSION["agence"];
	$nomagent = $_SESSION["nomagent"];
	$datecommande = $_POST["datecommande"];
    $numerocompte = $_POST["numerocompte"];
    $prenom = $_POST["prenom"];
    $nom = $_POST["nom"];
    $montant = $_POST["montant"];
    $acompte = $_POST["acompte"];
	$solde = $_POST["solde"];
    $datenvoie = $_POST["datenvoie"];
    $statut = $_POST["statut"];
	
    
    try{
        //On se connecte à la BDD
        $dbco = new PDO("mysql:host=$serveur;dbname=$dbname",$user,'');
        $dbco->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
        //On insère les données reçues
        $sth = $dbco->prepare("
            INSERT INTO commande(datecommande, numerocompte, prenom, nom, montant, acompte, solde, datenvoie, statut, agence, nomagent)
            VALUES(:datecommande, :numerocompte, :prenom, :nom, :monture, :montant, :acompte, :solde, :datenvoie, :statut, :agence, :nomagent)");
        $sth->bindParam(':datecommande',$datecommande);
        $sth->bindParam(':numerocompte',$numerocompte);
        $sth->bindParam(':prenom',$prenom);
		$sth->bindParam(':nom',$nom);
		$sth->bindParam(':montant',$montant);
		$sth->bindParam(':acompte',$acompte);
		$sth->bindParam(':solde',$solde);
		$sth->bindParam(':datenvoie',$datenvoie);
		$sth->bindParam(':statut',$statut);
	    $sth->bindParam(':agence',$agence);
	    $sth->bindParam(':nomagent',$nomagent);
	    $sth->bindParam(':service',$service);

		


        $sth->execute();
        
        //On renvoie l'utilisateur vers la page de remerciement
        header("Location:choixaction.php");
    }
    catch(PDOException $e){
        echo 'Impossible de traiter les données. Erreur : '.$e->getMessage();
    }
?>
A voir également:

23 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour

Et quelles sont les erreurs qui te sont affichées ?
0
binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour, merci Jordan 45 pour votre réponse.

Voici le message d'erreur que j'ai:

( ! ) Notice: Undefined index: nomagence in C:\wamp64\www\suivicommandeV\commande.php on line 36
Call Stack
# Time Memory Function Location
1 0.0004 403144 {main}( ) ...\commande.php:0

En plus il m'affiche seulement bonjour Sylvie (si c'est Sylvie qui est connectée) vous êtes à la société sans citer le nom de l'agence. Merci
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

sans citer le nom de l'agence

Normal .. vu qu'il t'indique :
Undefined index: nomagence

Et comme il est sympa .. il te donne même le nom du fichier et la ligne qui génère cette erreur

C:\wamp64\www\suivicommandeV\commande.php on line 36

autrement dit
echo htmlspecialchars($_SESSION["nomagence"]);


La solution se trouve dans le lien suivant :
https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index


Je vois d'ailleurs que tu utilises
 $_SESSION["nomagence"] 

alors que ton script avait à peu prêt bien commencé... en récupérant PROPREMENT les variables AVANT de les utiliser
$agence = !empty($_SESSION["nomagence"]) ? $_SESSION["nomagence"] : NULL;

par contre.. tu as cette ligne de code ... deux fois...
pourquoi ?


Mais vu, que dans ton formulaire, le champ se nomme "agence" et pas "nomagence" .. je pense que tu as fais une erreur
 <input type="varchar" id="agence" name="agence">

En plus le type varchar .. ça n'existe pas pour un input html ...
il faut mettre text
 <input type="text" id="agence" name="agence">


Je constate également que tu as prévu de faire une requête sql
$sql='SELECT * FROM users'; 

mais tu ne l'utilises nul part ....

Il faut vraiment que tu essayes de comprendre les lignes de code que tu écris au lieu de juste faire des copier/coller un peu au pif ( c'est l'impression que ton code me donne ! )
Et surtout.. savoir prendre deux minutes pour relire ton code.
Et si tu n'avais pas compris le message d'erreur.. et bien il serait temps d'essayer d'apprendre un peu l'anglais ( c'est un minimum quand on se lance dans la programmation).
0
binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour vos remarques. En fait le code marchait très bien mais j'ai voulu maintenant que l'utilisateur n'entre pas nomagence et nomagent et le programme les affiche sur l'écran après s’être identifié. Par contre nomagence c'est le nom du champ dans la table users et agence est dans un autre table (commande) dans laquelle on doit insérer les données du formulaire.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Donc, quel est le code qui est exécuté pour l'authentification de l'utilisateur ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Autre chose, je suis débutante et ce n'est pas ma spécialité. Merci pour votre compréhension.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Il me faut Le code que tu utilises pour "authentifier" les utilisateurs ( nom du fichier + son code )
De là..on avancera progressivement...
0
binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Merci, le voici.

login.php

<?php
// Initialize the session
session_start();
 
// Check if the user is already logged in, if yes then redirect him to welcome page
if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){
    header("location: welcome.php");
    exit;
}
 
// Include config file
require_once "config.php";
 
// Define variables and initialize with empty values
$username = $password = "";
$username_err = $password_err = "";
 
// Processing form data when form is submitted
if($_SERVER["REQUEST_METHOD"] == "POST"){
 
    // Check if username is empty
    if(empty(trim($_POST["username"]))){
        $username_err = "Veuillez entrer votre nom d'utilisateur.";
    } else{
        $username = trim($_POST["username"]);
    }
    
    // Check if password is empty
    if(empty(trim($_POST["password"]))){
        $password_err = "s'il vous plait entrez votre mot de passe.";
    } else{
        $password = trim($_POST["password"]);
    }
    
    // Validate credentials
    if(empty($username_err) && empty($password_err)){
        // Prepare a select statement
        $sql = "SELECT id, username, password, service, nomagence FROM users WHERE username = ? and password = ?";
        
        if($stmt = mysqli_prepare($link, $sql)){
            // Bind variables to the prepared statement as parameters
            mysqli_stmt_bind_param($stmt, 'ss', $username, $password);
            
            // Attempt to execute the prepared statement
            if(mysqli_stmt_execute($stmt)){
                // Store result
                mysqli_stmt_store_result($stmt);
				mysqli_stmt_bind_result($stmt, $id, $username, $password, $service,$nomagence);
                
                // Check if username exists, if yes then verify password
                if(mysqli_stmt_num_rows($stmt) == 1){                    
                   
                        //session_start();
                            
						// Store data in session variables
						$_SESSION["loggedin"] = true;
						$_SESSION["id"] = $id;
						$_SESSION["username"] = $username;                            
						$_SESSION["nomagence"] = $nomagence;                            

						// Redirect user
						if (mysqli_stmt_fetch($stmt)) {						
							if ($service == "agence")
							{
							 header('Location: choix.php');
							}
							else if ($service == "comptabilite")
							{
								header('Location: espacecomptable.php');
							}
							else if ($service == "direction")
							{
								header('Location: espaceadmin.php');
							}
							else if($service == "logistique")
							{
								header('Location: espacelogistique.php');
							}
							
						}
                    
                } else{
                    // Display an error message if username doesn't exist
                    $username_err = "Nom d'utilisateur ou mot de passe incorrect.";
                }
            } else{
                echo "Oops! Quelque chose s'est mal passé. Veuillez réessayer plus tard.";
            }
        }
        
        // Close statement
        mysqli_stmt_close($stmt);
    }
    
    // Close connection
    mysqli_close($link);
}
?>
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
    <style type="text/css">
        body{ font: 14px sans-serif; }
        .wrapper{ width: 350px; padding: 20px; }
    </style>
</head>
<body>
    <div class="wrapper">
        <p>Veuillez saisir vos identifiants pour vous connecter.</p>
        <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
            <div class="form-group <?php echo (!empty($username_err)) ? 'has-error' : ''; ?>">
                <label>Username</label>
                <input type="text" name="username" class="form-control" value="<?php echo $username; ?>">
                <span class="help-block"><?php echo $username_err; ?></span>
            </div>    
            <div class="form-group <?php echo (!empty($password_err)) ? 'has-error' : ''; ?>">
                <label>Password</label>
                <input type="password" name="password" class="form-control">
                <span class="help-block"><?php echo $password_err; ?></span>
            </div>
            <div class="form-group">
                <input type="submit" class="btn btn-primary" value="Login">
            </div>
            <p>Vous n'avez pas de compte? <a href="inscrivezvous.php">S'inscrire maintenant</a>.</p>
        </form>
    </div>    
</body>
</html>
-
0
binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Après quelques corrections je n'ai plus l'erreur mais il ne m'affiche pas nomagence. Il affiche seulement Bonjour, sylvie Vous ȇtes à
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
D'après ton script de connexion, le nom de ton agence est dans
$_SESSION["nomagence"] = $nomagence;


Pourrais tu ajouter, dans ton fichier commande.php
juste après le
session_start(); 


un
 print_r($_SESSION);  

et nous montrer ce que ça t'affiche ?
0
binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Il affiche ceci:

Array ( [loggedin] => 1 [id] => [username] => sylvie[nomagence] => [agence] => Array ( ) )
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Comme tu peux le voir.. ta variable de session ne contient pas les infos de ton user....
Tu as oublié de faire un fetch ..
mysqli_stmt_fetch($stmt);    


// Check if username exists, if yes then verify password
if(mysqli_stmt_num_rows($stmt) == 1){                    

  mysqli_stmt_fetch($stmt);    
  
  // Store data in session variables
  $_SESSION["loggedin"] = true;
  $_SESSION["id"] = $id;
  $_SESSION["username"] = $username;                            
  $_SESSION["nomagence"] = $nomagence;
0
binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Je l'ai fait mais je ne peux plus me connecter.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Tu as un message d'erreur ?
En quoi ne peux tu plus te connecter ?
Faudrait que tu sois un tantinet plus loquace .. car si il faut 50 messages à chaque fois pour obtenir des détails.. je vais vite abandonner.
0
binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Excusez moi je suis désolées, cela montre mon caractère de débutante. En fait je mets le user et le mot de pass et il ne fait rien, il supprime le mot de pass et reste sur la même page sans message d'erreur. Merci encore pour votre aide çà me permet d'avancer.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Teste ce code et dis moi ce que ça t'affiche
<?php
// Initialize the session
session_start ();

//Affichage des erreurs PHP
error_reporting ( E_ALL );
ini_set ( 'display_errors', TRUE );
ini_set ( 'display_startup_errors', TRUE );

// Check if the user is already logged in, if yes then redirect him to welcome page
if ( isset ( $_SESSION["loggedin"] ) && $_SESSION["loggedin"] === true ) {
  header ( "location: welcome.php" );
  exit;
}

// Include config file
require_once "config.php";

// Define variables and initialize with empty values
$username = $password = "";
$username_err = $password_err = "";

//récupération PROPRE des variables AVANT de les utiliser
$username = !empty ( $_POST["username"] ) ? trim ( $_POST["username"] ) : NULL;
$password = !empty ( $_POST["password"] ) ? trim ( $_POST["password"] ) : NULL;




// Processing form data when form is submitted
if ( $_SERVER["REQUEST_METHOD"] == "POST" ) {
  //Juste le temps des tests
  echo "<pre>";
  print_r ( $_POST );
  echo "</pre>";

  // Check if username is empty
  if ( !$username ) {
    $username_err = "Veuillez entrer votre nom d'utilisateur.";
  }

  // Check if password is empty
  if ( !$password ) {
    $password_err = "s'il vous plait entrez votre mot de passe.";
  }

  // Validate credentials
  if ( $username && $password ) {
    // Prepare a select statement
    $sql = "SELECT id, username, password, service, nomagence
                FROM users
                WHERE username = ? and password = ?";

    if ( $stmt = mysqli_prepare ( $link, $sql ) ) {
      // Bind variables to the prepared statement as parameters
      mysqli_stmt_bind_param ( $stmt, 'ss', $username, $password );

      // Attempt to execute the prepared statement
      if ( mysqli_stmt_execute ( $stmt ) ) {
        // Store result
        mysqli_stmt_store_result ( $stmt );

        // Check if username exists, if yes then verify password
        if ( mysqli_stmt_num_rows ( $stmt ) == 1 ) {
          mysqli_stmt_bind_result ( $stmt, $id, $username, $password, $service, $nomagence );
          mysqli_stmt_fetch ( $stmt );
          // Store data in session variables
          $_SESSION["loggedin"] = true;
          $_SESSION["id"] = $id;
          $_SESSION["username"] = $username;
          $_SESSION["nomagence"] = $nomagence;

          // Redirect user
          if ( mysqli_stmt_fetch ( $stmt ) ) {
            switch ( $service){
              case "agence" : 
                $redirectTo = ' choix.php';
              break;
            case "comptabilite" : 
                $redirectTo = ' espacecomptable.php';
              break;
            case "direction" : 
                $redirectTo = ' espaceadmin.php';
              break;
            case "logistique" : 
                $redirectTo = ' espacelogistique.php';
              break;
            default:
              echo " Aucune Agence ne correspond !";
              
              //le temps des tests...
              echo "<br><pre>Resultat de la requête :";
              print_r(array($id, $username, $password, $service, $nomagence));
              echo "</pre>";
              
              
              exit;
              break;
            }
            header('Location :'.$redirectTo);
            exit;
          }
        } else {
          // Display an error message if username doesn't exist
          $username_err = "Nom d'utilisateur ou mot de passe incorrect.";
        }
      } else {
        echo "Oops! Quelque chose s'est mal passé. Veuillez réessayer plus tard.";
        //erreur lors de la requête
        printf ( "Erreur sql : %s\n", mysqli_error ( $link ) );
      }
    }
    // Close statement
    mysqli_stmt_close ( $stmt );
  }

  // Close connection
  mysqli_close ( $link );
}
?>

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Login</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
    <style type="text/css">
      body{ font: 14px sans-serif; }
      .wrapper{ width: 350px; padding: 20px; }
    </style>
  </head>
  <body>
    <div class="wrapper">
      <p>Veuillez saisir vos identifiants pour vous connecter.</p>
      <form action="" method="post">
        <div class="form-group <?php echo (!empty ( $username_err )) ? 'has-error' : ''; ?>">
          <label>Username</label>
          <input type="text" name="username" class="form-control" value="<?php echo $username; ?>">
          <span class="help-block"><?php echo $username_err; ?></span>
        </div>
        <div class="form-group <?php echo (!empty ( $password_err )) ? 'has-error' : ''; ?>">
          <label>Password</label>
          <input type="password" name="password" class="form-control">
          <span class="help-block"><?php echo $password_err; ?></span>
        </div>
        <div class="form-group">
          <input type="submit" class="btn btn-primary" value="Login">
        </div>
        <p>Vous n'avez pas de compte ? <a href="inscrivezvous.php">S'inscrire maintenant</a>.</p>
      </form>
    </div>
  </body>
</html>

0
binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Il permet à l'utilisateur de se connecter selon son profil. Après avoir mis ses paramètres de connexion, il est redirigé vers son espace de travail.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
oui et ?
Je ne t'ai pas demandé à quoi sert le script... ça je l'avais bien compris...

Je t'ai demandé de remplacer ton code par le mien et de tester et de nous dire ce que ça t'affiche
0
binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Il reste sur la même page avec ce message:

Array
(
[username] => sylvie
[password] => passer123
)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
petite erreur de copier/coller

Essaye celui la :
<?php
// Initialize the session
session_start ();

//Affichage des erreurs PHP
error_reporting ( E_ALL );
ini_set ( 'display_errors', TRUE );
ini_set ( 'display_startup_errors', TRUE );

// Check if the user is already logged in, if yes then redirect him to welcome page
if ( isset ( $_SESSION["loggedin"] ) && $_SESSION["loggedin"] === true ) {
  header ( "location: welcome.php" );
  exit;
}

// Include config file
require_once "config.php";

// Define variables and initialize with empty values
$username = $password = "";
$username_err = $password_err = "";

//récupération PROPRE des variables AVANT de les utiliser
$username = !empty ( $_POST["username"] ) ? trim ( $_POST["username"] ) : NULL;
$password = !empty ( $_POST["password"] ) ? trim ( $_POST["password"] ) : NULL;




// Processing form data when form is submitted
if ( $_SERVER["REQUEST_METHOD"] == "POST" ) {
  //Juste le temps des tests
  echo "<pre>";
  print_r ( $_POST );
  echo "</pre>";

  // Check if username is empty
  if ( !$username ) {
    $username_err = "Veuillez entrer votre nom d'utilisateur.";
  }

  // Check if password is empty
  if ( !$password ) {
    $password_err = "s'il vous plait entrez votre mot de passe.";
  }

  // Validate credentials
  if ( $username && $password ) {
    // Prepare a select statement
    $sql = "SELECT id, username, password, service, nomagence
                FROM users
                WHERE username = ? and password = ?";

    if ( $stmt = mysqli_prepare ( $link, $sql ) ) {
      // Bind variables to the prepared statement as parameters
      mysqli_stmt_bind_param ( $stmt, 'ss', $username, $password );

      // Attempt to execute the prepared statement
      if ( mysqli_stmt_execute ( $stmt ) ) {
        // Store result
        mysqli_stmt_store_result ( $stmt );
        $nbRows = mysqli_stmt_num_rows ( $stmt );
        echo "<br> Nombre de résultats trouvés :" . $nbRows;
        // Check if username exists, if yes then verify password
        if ( $nbRows == 1 ) {
          mysqli_stmt_bind_result ( $stmt, $id, $username, $password, $service, $nomagence );
          mysqli_stmt_fetch( $stmt );
           //le temps des tests...
           echo "<br><pre>Resultat de la requête :";
           print_r ( array($id, $username, $password, $service, $nomagence) );
           echo "</pre>";
           
          // Store data in session variables
          $_SESSION["loggedin"] = true;
          $_SESSION["id"] = $id;
          $_SESSION["username"] = $username;
          $_SESSION["nomagence"] = $nomagence;

          // Redirect user
          switch ( $service ) {
            case "agence" :
              $redirectTo = ' choix.php';
              break;
            case "comptabilite" :
              $redirectTo = ' espacecomptable.php';
              break;
            case "direction" :
              $redirectTo = ' espaceadmin.php';
              break;
            case "logistique" :
              $redirectTo = ' espacelogistique.php';
              break;
            default:
              echo " Aucune Agence ne correspond !";
              exit;
              break;
          }
          header ( 'Location :' . $redirectTo );
          exit;
        } else {
          // Display an error message if username doesn't exist
          $username_err = "Nom d'utilisateur ou mot de passe incorrect.";
        }
      } else {
        echo "Oops! Quelque chose s'est mal passé. Veuillez réessayer plus tard.";
        //erreur lors de la requête
        printf ( "Erreur sql : %s\n", mysqli_error ( $link ) );
      }
    }
    // Close statement
    mysqli_stmt_close ( $stmt );
  }

  // Close connection
  mysqli_close ( $link );
}
?>

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Login</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
    <style type="text/css">
      body{ font: 14px sans-serif; }
      .wrapper{ width: 350px; padding: 20px; }
    </style>
  </head>
  <body>
    <div class="wrapper">
      <p>Veuillez saisir vos identifiants pour vous connecter.</p>
      <form action="" method="post">
        <div class="form-group <?php echo (!empty ( $username_err )) ? 'has-error' : ''; ?>">
          <label>Username</label>
          <input type="text" name="username" class="form-control" value="<?php echo $username; ?>">
          <span class="help-block"><?php echo $username_err; ?></span>
        </div>
        <div class="form-group <?php echo (!empty ( $password_err )) ? 'has-error' : ''; ?>">
          <label>Password</label>
          <input type="password" name="password" class="form-control">
          <span class="help-block"><?php echo $password_err; ?></span>
        </div>
        <div class="form-group">
          <input type="submit" class="btn btn-primary" value="Login">
        </div>
        <p>Vous n'avez pas de compte ? <a href="inscrivezvous.php">S'inscrire maintenant</a>.</p>
      </form>
    </div>
  </body>
</html>

et en complément, fais nous une capture écran du résultat...
0
binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
C'est fait et j'ai ceci:

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Ah oui.
Il faut mettre en commentaire la redirection pour l'instant
//header ( 'Location :' . $redirectTo );
//exit;


et je serai toi, je mettrai également en commentaire la redirection liée à la vérif de session du départ
 // header ( "location: welcome.php" );
 // exit;
0
binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Je suis restées sur la même page avec ce message:

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Donc là, on a bien les bonnes infos.
Donc ok;
Réactive les redirections et mets en commentaire les debug
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
0
binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour, j'ai réactivé les redirections et mis en commentaire les debugs et j'ai la 1ère photo.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Montre ton code modifié qu'on regarde ce qui pourrait coincer...
0
binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
<?php
// Initialize the session
session_start ();

//Affichage des erreurs PHP
//error_reporting ( E_ALL );
//ini_set ( 'display_errors', TRUE );
//ini_set ( 'display_startup_errors', TRUE );

// Check if the user is already logged in, if yes then redirect him to welcome page
if ( isset ( $_SESSION["loggedin"] ) && $_SESSION["loggedin"] === true ) {
  header ( "location: welcome.php" );
  exit;
}

// Include config file
require_once "config.php";

// Define variables and initialize with empty values
$username = $password = "";
$username_err = $password_err = "";

//récupération PROPRE des variables AVANT de les utiliser
$username = !empty ( $_POST["username"] ) ? trim ( $_POST["username"] ) : NULL;
$password = !empty ( $_POST["password"] ) ? trim ( $_POST["password"] ) : NULL;



// Processing form data when form is submitted
if ( $_SERVER["REQUEST_METHOD"] == "POST" ) {
  //Juste le temps des tests
  echo "<pre>";
  print_r ( $_POST );
  echo "</pre>";

  // Check if username is empty
  if ( !$username ) {
    $username_err = "Veuillez entrer votre nom d'utilisateur.";
  }

  // Check if password is empty
  if ( !$password ) {
    $password_err = "s'il vous plait entrez votre mot de passe.";
  }

  // Validate credentials
  if ( $username && $password ) {
    // Prepare a select statement
    $sql = "SELECT id, username, password, service, nomagence
                FROM users
                WHERE username = ? and password = ?";

    if ( $stmt = mysqli_prepare ( $link, $sql ) ) {
      // Bind variables to the prepared statement as parameters
      mysqli_stmt_bind_param ( $stmt, 'ss', $username, $password );

      // Attempt to execute the prepared statement
      if ( mysqli_stmt_execute ( $stmt ) ) {
        // Store result
        mysqli_stmt_store_result ( $stmt );
        $nbRows = mysqli_stmt_num_rows ( $stmt );
        echo "<br> Nombre de résultats trouvés :" . $nbRows;
        // Check if username exists, if yes then verify password
        if ( $nbRows == 1 ) {
          mysqli_stmt_bind_result ( $stmt, $id, $username, $password, $service, $nomagence );
          mysqli_stmt_fetch( $stmt );
           //le temps des tests...
           echo "<br><pre>Resultat de la requête :";
           print_r ( array($id, $username, $password, $service, $nomagence) );
           echo "</pre>";
           
          // Store data in session variables
          $_SESSION["loggedin"] = true;
          $_SESSION["id"] = $id;
          $_SESSION["username"] = $username;
          $_SESSION["nomagence"] = $nomagence;

          // Redirect user
          switch ( $service ) {
            case "agence" :
              $redirectTo = ' choixaction.php';
              break;
            case "comptabilite" :
              $redirectTo = ' espacecomptable.php';
              break;
            case "direction" :
              $redirectTo = ' espaceadmin.php';
              break;
            case "logistique" :
              $redirectTo = ' espacelogistique.php';
              break;
            default:
              echo " Aucune Agence ne correspond !";
              exit;
              break;
          }
         header ( 'Location :' . $redirectTo );
         exit;
        } else {
          // Display an error message if username doesn't exist
          $username_err = "Nom d'utilisateur ou mot de passe incorrect.";
        }
      } else {
        echo "Oops! Quelque chose s'est mal passé. Veuillez réessayer plus tard.";
        //erreur lors de la requête
        printf ( "Erreur sql : %s\n", mysqli_error ( $link ) );
      }
    }
    // Close statement
    mysqli_stmt_close ( $stmt );
  }

  // Close connection
  mysqli_close ( $link );
}
?>

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Login</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
    <style type="text/css">
      body{ font: 14px sans-serif; }
      .wrapper{ width: 350px; padding: 20px; }
    </style>
  </head>
  <body>
    <div class="wrapper">
      <p>Veuillez saisir vos identifiants pour vous connecter.</p>
      <form action="" method="post">
        <div class="form-group <?php echo (!empty ( $username_err )) ? 'has-error' : ''; ?>">
          <label>Username</label>
          <input type="text" name="username" class="form-control" value="<?php echo $username; ?>">
          <span class="help-block"><?php echo $username_err; ?></span>
        </div>
        <div class="form-group <?php echo (!empty ( $password_err )) ? 'has-error' : ''; ?>">
          <label>Password</label>
          <input type="password" name="password" class="form-control">
          <span class="help-block"><?php echo $password_err; ?></span>
        </div>
        <div class="form-group">
          <input type="submit" class="btn btn-primary" value="Login">
        </div>
        <p>Vous n'avez pas de compte ? <a href="inscrivezvous.php">S'inscrire maintenant</a>.</p>
      </form>
    </div>
  </body>
</html>

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Il reste des echo et des print_r ... normal que ça ne fonctionne pas !
0
binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour, c'est le code que vous avez modifié biensur qu'il y'a des print_r. Je penses que c'est autre chose. Merci qu'à même pour votre aide.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Je t'ai demandé

Réactive les redirections et mets en commentaire les debug

Ce à quoi tu m'as répondu :

j'ai réactivé les redirections et mis en commentaire les debugs


Donc... tu ne devrais plus avoir aucun echo ou print_r !!!!
0
binousha_1022 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour, oui j'avais pas prêté attention sur les echo et print_r restants. Maintenant j'ai tout commenté j'arrives à me logger mais le nom de l'agence n'apparait toujours pas (sur la page de redirection après logging) et c'était cela l'objet de ma publication.
Merci qu'à même pour votre aide.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Donc,
Une fois que tu es logué, tu arrives sur quelle page ( url dans la barre de navigation de ton navigateur) ?
Montres nous le code qui correspond à cette page .
Et, ajoutes y avant, un
print_r($_SESSION);

juste après le
session_start();


Et montres nous ce que ça t'affiche.
0