8768 sujets

Développement web côté serveur, CMS

salut, J'essaie de creer un espace membre pour mon site. j'ai fini la page la page qui permet de s'inscrire et la page de traitement

Code source de la page d'inscription:
<!DOCTYPE html>
<html>
 
    <head>
        <meta charset=utf-8/>
        <title>Inscription</title>
    </head>
     
    <body>
        <form method="post" action="exoVolumeDuCone.php">
            <p>
                 
                Votre email: <input type="email" name="email" placeholder="princelionneln@yahoo.com" required />
                Votre pseudo: <input type="type" name="login" placeholder="Ex: princelionelnzi " required />
                Votre mot de passe: <input type="password" name="password" required />
                <input type="submit" value="Valider le formulaire"/>
            </p>
        </form>
    </body>
 
</html>


Code source de la page de traitement :
<?php
 
include('config.php'); // On inclue le fichier qui contient les paramètres de connexions à la base de données
 
$requete = $bdd->prepare('INSERT INTO membres_tbl(Login, Password, email) VALUES(?,?,?)');
$requete->execute(array(htmlspecialchars($_POST['login']), htmlspecialchars($_POST['password']), htmlspecialchars($_POST['email'])));
 
if ($requete)
{
// Si la requête est exécutée correctement
// Redirection vers une page, ici une page de remerciements
?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>Notre première instruction : echo</title>
            <meta http-equiv="Content-Type" content="text/html;
            charset=iso-8859-1" />
        </head>
        <body>
             
            <h2>Calcul du volume d'un cone a partir de la creation d'une fonction en PHP</h2>
                 
            <?php
            function volumeDuCone ($rayon, $hauteur)
            {
            $volume = $rayon * $rayon * 3.14 * $hauteur * (1/3);
            return $volume;
            }
            $volume = volumeDuCone(3, 1);
            echo 'Le volumes de votre cone de rayon 3 et d\'hauteur 3 est : '.$volume;
            ?>
        </body>
    </html>
<?php
}
 
else
{ // Sinon
    echo 'Inscription non réussie ! Veuillez recommencer.'; // Affichage de cette phrase...
}
 
?>


Maintenat j'essaie de tester pour voir si je peux utiliser les informatons enregistrées dans la base de données pour une connexion mais je vois que je rencontre des problèmes. J'ai d'abord crer un formuaire qui demande le login et le mot de passe du visiteur et si le visiteur sur le bounton de validation du formulaire il est dirigé vers une page de traitement

Code source du formulaire:
<center>
 
<br><br><br><br><br><br>
 
<form name="identification" action="identification.php" method="POST">
Login : <input type="text" name="login">
<br><br>
Password : <input type="password" name="password">
<br><br>
<input type="submit" value="S'identifier !">
</form>
 
</center>


Code source de la page de traitement du formulaire de connexion:
<?php
 
include('config.php');
 
if ($_GET['id'] = 2)
{
// Si on arrive par identification.php?id=2
     
    $verif = $bdd->query('SELECT * FROM membres_tbl WHERE login='$_POST['login']' AND password='$_POST['password']''); // Sélection du login correspond au mot de passe entré par le visiteur
 
    $ok = mysql_query($verif) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // On exécute et on gère l'erreur
 
    if(!mysql_num_rows($ok)) { // Si le login et mot de passe ne correspondent pas
         
        echo '<center><br><br><b>Erreur dans la saisie du login et/ou du mot de passe !</b>';
        echo '<br><br><a href="javascript:history.go(-1)">Retour</a></center>';
         
        exit(); // On arrête le chargement de la page
    }
     
    $modif = "UPDATE membres_tbl SET Password='$_POST[password3]' WHERE Login='$_POST[login]' AND Password='$_POST[password]'"; // Requête de "modification"
     
    mysql_query($modif) or die ('Erreur ! Impossible de modifier votre mot de passe pour des raisons techniques !<br><br>'.mysql_error()); // Exécution de la requête et gestion de l'erreur
     
    echo '<center><br><br><br>Votre nouveau mot de passe : <b>'.$_POST['password3'].'</b>'; // Petit message...
        echo '<br><br><br><a href="votre_page.php"> Votre page</center>'; // Ici affichage d'un lien de votre choix, donc à modifier !!!
         
        exit(); // On arrête le chargement de la page
}
 
if(empty($_POST['login'])) // Si login est vide
    {
    echo '<br><br><center><b><p>Et votre login ?!?</p></b></center>';
    include('form_ident.php'); // On inclus le formulaire d'identification
    exit(); // On arrête le chargement de la page
}
 
if(empty($_POST['password'])) // Si aucun password n'a été donné
    {
    echo '<br><br><center><b><p>Et votre mot de passe ?!?</p></b></center>';
    include('form_ident.php'); // On inclus le formulaire d'identification
    exit(); // On arrête le chargement de la page
    }
 
// On recupère le mot de passe de la table membres_tbl qui correspond au login du visiteur
 
$sql = "SELECT Password FROM membres_tbl WHERE Login='$_POST[login]'";
$req = mysql_query($sql) or die('Erreur !<br>'.$sql.'<br>'.mysql_error()); // On exécute la requête et on gère l'erreur
 
$data = mysql_fetch_array($req); // On met dans un tableau la requete $sql
 
if($data['Password'] != $_POST['password']) // Si le password entré par le visiteur est différent de celui contenu dans la base de données
    {
    echo '<br><br><center><b><p>Vous avez entrez un mauvais mot de passe ou un mauvais login...</p></b></center>';
    include('form_ident.php'); // On inclus le formulaire d'identification
    exit(); // On arrête le chargement de la page
    }
else // Sinon...
    {
    session_start(); // On ouvre une session
    session_register('login'); // On enregistre la variable de session login
    session_register('password'); // On enregistre la variable de session password
    header('Location: ma_page.php'); // Redirection vers la page d'accueil de l'espace membres
}
 
?>


Je poste pour vous demander de m'aider a trouver le problème et aussi à verifier si j'ai des elements a arranger dans mes codes sources.

Merci d'avance.

Prince Lionel N'zi
Modifié par princelionel (25 May 2014 - 06:51)
Bonjour,

Un session_start() et un header() doivent être appelés avant tout traitement HTML, idéalement en début de page avant toute instruction; sinon ça ne pourra jamais fonctionner.
Bonjour,

Un session_start() et un header() doivent être appelés avant tout traitement HTML, idéalement en début de page avant toute instruction; sinon ça ne pourra jamais fonctionner.