Formulaire PHP, base de données vide !

Ce topic a été résolu
Elwaid

Elwaid Le 20 mars 2018 à 05:30 (Édité le 25 janvier 2019 à 17:54)

<?php
$bdd = new PDO( 'mysql:dbname = Sledom; host=localhost', 'root', 'root');
if(isset($_POST['forminscription']))
{
        $firstname = htmlspecialchars($_POST['firstname']);
        $lastname = htmlspecialchars($_POST['firstname']);
        $email = htmlspecialchars($_POST['email']);
        $username = htmlspecialchars($_POST['username']);
        $password = sha1($_POST['password']);
    if(!empty($_POST['firstname']) AND !empty($_POST['lastname']) AND !empty($_POST['email']) AND !empty($_POST['username']) AND !empty($_POST['password']))
    {
        
        $usernamelenght = strlen($username);
        if($usernamelenght <= 255)
        {
            if(filter_var($email, FILTER_VALIDATE_EMAIL))
            {
                $insertmbr = $bdd->prepare("INSERT INTO members (firstname, lastname, email, username, password) VALUES (?, ?, ?, ?, ?");
                $insertmbr->execute(array($firstname, $lastname, $email, $username, $password));
                $erreur = "Your account has been created";
                
            }
            else
            {
                $erreur = "Please enter a valid Email Adress";
            }
        }
        
        else
        {
            $erreur ="Your username must not exceed 255 caracters";
        }
        
    }
    else
    {
        $erreur="All fields must be filled";
    }
    
}
?>
<!DOCTYPE html>
    
    <html>
        <head>
            <title>Become Sledomer</title>
            <meta charset="utf-8">
            <link rel="stylesheet" href="style.css">
            <link href="https://fonts.googleapis.com/css?family=Bubbler+One" rel="stylesheet">
            <link href="https://fonts.googleapis.com/css?family=Bungee+Hairline" rel="stylesheet">
        </head>
        
        
      
        <body>
        
            
            <div id= "contenu">                                                                    <!-- everything on my webpage -->
            
                <h1 id= "logo"><a href= "Sledom.html"><img src="IMAGES/LOGO..psd"></a></h1>
                <h1 id= "img1"><a href = "Usersspace.html"><img  src="IMAGES/account.jpg"></a></h1>
                <h1 id= "img2"><a href = "Usersspace.html"><img  src="IMAGES/upload.psd"></a></h1>
                <h1 id= "img3"><a href = "Subscriptions.html"><img  src="IMAGES/alerte.jpg"></a></h1>
                
            </div>
                <h2 id= "slogan"> Find your style <br>Become your own model</h2>
                
                <div id= "menu">
                    <ul id="navigation">
                        <li class="home"><a href= "Sledom.html">Sledom</a></li>
                        <li id= "encours1"><a href= "BecomeSledomer.html"> Become Sledomer</a></li>
                        <li><a href= "Subscriptions.html"> Subscriptions</a></li>
                        <li><a href= "Trends.html"> Trends </a></li>
                        <li><a href= "AboutSledom.html"> About Sledom</a></li>
                    </ul>
                </div>
            
            
            <h1 id= "titlep">Become Sledomer</h1>
         
         
         
         
            
            <h1 id = "sloganpage1"> Sign up to post your look <br> And earn money.</h1>
            
                <div>
                    <h1 id= "signupwith">Sign up with<a href= "http://facebook.com"><img src= "IMAGES/facebook.png"></a><a href= "http://plus.google.com"><img src= "IMAGES/google+.png"></a></h1>
                </div>
                
    
            <h1 id= "OR">OR</h1>
         
         
            <?php 
                if(isset($erreur))
                {
                    echo '<font color="red">' .$erreur. "</font>";
                }
            ?>
         
         
            <form method="post" action="">
            
                <fieldset id=formulaire1>
                    <label for= "first name"></label>
                    <input type= "text" id= "firstname" name="firstname" placeholder="First Name" required="required" value="<?php if(isset($firstname)) {echo $firstname;} ?>"/>
                    
                    <label for= "last name"></label>
                    <input type= "text" id= "last name" name="lastname" placeholder="Last Name" required="required" value="<?php if(isset($lastname)) {echo $lastname;} ?>"/><br> 
                    
                    <label for= "email"></label>
                    <input type= "email" id= "email" name="email" placeholder="Email Adress" required="required" value="<?php if(isset($email)) {echo $email;} ?>"/><br>
                    
                    <label for= "username"></label>
                    <input type= "text" id= "username" name="username" placeholder="Userame" required="required" value="<?php if(isset($username)) {echo $username;} ?>"/><br>
                    
                    <label for= "password"></label>
                    <input type= "password" id= "password" name="password" placeholder="Password" required="required">  
                </fieldset>
            
    
                
                    <input class="signup" type="submit" name = "forminscription" value="Sign Up">
          
            </form>
            
            
            
            <p id="members">Have an account ? | <a href= "Signin.php"> Sign In</a></p>
    
                <div id= "footer">                                                                  <!-- footer -->
                
                
                    <p id= "credit1">©2018 • SLEDOM®    -    All right reserved    |                                            </p>
                    <p id="credit"><a href= Terms&conditions.html>Terms & Conditions</a></p>
                    
                    
                    <div id= "footerlogo">
                        <h1><a href= "Sledom.html"><img src="IMAGES/LOGO1..psd"></a></h1>
                    </div>
                    
                    <div id="footermenu">
                        <ul>                                                                        <!--menu footer-->
                            <p class= "titlemenu">MENU SLEDOM</p>
                            <li><a href= "Sledom.html">Sledom</a></li>
                            <li><a href= "BecomeSledomer.html"> Become Sledomer</a></li>
                            <li><a href= "Subscriptions.html"> Subscriptions</a></li>
                            <li><a href= "Trends.html"> Trends </a></li>
                            <li><a href= "AboutSledom.html"> About Sledom</a></li>
                        </ul>
                    </div>
                
                
                    <div id= "footerpartners">                                                                 
                        <ul>                                                                        <!--menu footer-->
                            <p class = titlepartners > PARTNERS</p>
                            <li><a href= "Creators.html"> Creators</a></li>
                            <li><a href= "Developers.html">Developers</a></li>
                            <li><a href= "Press.html">Press</a></li>
                            <li><a href= "Advertise.html">Advertise</a></li>
                        </ul>
                    </div>
                    
                    <div id= "footerresources">                                                                 
                        <ul>                                                                        <!--menu footer-->
                            <p class = titleresources > RESOURCES</p>
                            <li><a href= "Policy&Safety.html"> Policy & Safety</a></li>
                            <li><a href= "Copyright.html">Copyright</a></li>
                            <li><a href= "Privacy.html">Privacy</a></li>
                            <li><a href= "Help.html">Help</a></li>
                        </ul>
                    </div>
                    
                    <div id= "footerconnect">                                                                 
                        <ul>                                                                        <!--menu footer-->
                            <p class = titleconnect > CONNECT</p>
                            <li><a href= "http://facebook.com"> <img src= "IMAGES/facebook.png"> Facebook</a></li>
                            <li><a href= "http://twitter.com"> <img src= "IMAGES/Twitter.png"> Twitter</a></li>
                            <li><a href= "http://instagram.com"><img src= "IMAGES/Instagram.png"> Instagram  </a></li>
                            <li><a href= "http://plus.google.com"><img src= "IMAGES/google+.png"> Google+ </a></li>   
                        </ul>
                    </div>
                    
               </div>
        
        </body>
    </html>
Bonjour à tous, 

Alors voilà, je suis nouveau sur le site mais aussi en programmation et j'ai suivi le tutu de PrimFX sur l'espace membre, mais voilà que quand j'envois le formulaire, rien n'est transmis à ma base de données. 

Je ne comprend pas où est-ce que j'ai pu faire mon erreur. 

Si quelqu'un à une idée. 

Par avance merci. 
Profil introuvable

Profil introuvable Le 21 mars 2018 à 03:14 (Édité le 21 mars 2018 à 03:16)

Hello 'Elwaid',

-Vérifie que le nom de ta base correspond bien à celui que tu as écrit dans ton script (majuscule, minuscule à respecter)
-Tu utilises quel logiciel pour accéder à PHPMyAdmin ? (EasyPHP, WampServer, XAMPP...etc.)
-Quand tu accèdes à PHPMyAdmin, y-a-t-il un mot de passe à saisir ?
Elwaid

Elwaid Le 21 mars 2018 à 06:28

Hello 'Jerem971' 

Merci pour ta réponse, 

j'ai bien vérifié au niveau des majuscules et minuscules tout est correct, 

concernant le logiciel que j'utilise, c'est MAMP, je travail sur Mac. 

Et dernière réponse, non, je n'ai pas de mot de passe à saisir lorsque j'accèdes à PHPMyAdmin.

Merci encore pour ton retour. 
Balatharas

Balatharas Le 21 mars 2018 à 14:03

@Elwaid active les erreurs avec ce code

error_reporting(E_ALL); 
ini_set('display_errors', '1');

Essaie d'envoyer le formulaire une nouvelle fois
Elwaid

Elwaid Le 21 mars 2018 à 19:47

Hello @Balatharas

J'ai activé les erreurs, tout est normal, lorsque j'envois le formulaire, ça m'indique que mon compte à bien été crée, mais rien dans ma BDD ... :(

Merci encore pour ton aide. 
Elwaid

Elwaid Le 22 mars 2018 à 06:47

Bonjour à vous deux @Balatharas, et @Jerem971

Aujourd'hui bonne nouvelle, j'ai enfin eu le plaisir de voir les informations transiter dans ma base de donnée. 

Merci encore pour votre aide car grâce à toi @Balatharas , j'ai pu voir les erreurs que j'avais alors que j'essayais de corriger le problème. Et grâce à toi @Jerem971, j'ai relu attentivement mon code, je l'ai même supprimé et refais deux fois 😄. (ça m'exerce au moins !). 

Pour ceux qui passe par ici et ont le même problème, voici comment je l'ai résolu : 

J'ai modifié 
$bdd = new PDO( 'mysql:dbname = Sledom; host=localhost', 'root', 'root');
par : 

$pdo = new PDO( 'mysql:dbname=sledom; host=localhost', 'root', 'root');
Oui, oui, juste les espaces qu'il y a a côté du égale entre "dbname" et "sledom" étais mon erreur. (pour info j'ai recommencé plusieurs fois ma DB dans PHPmyadmin ce qui explique pourquoi le nom de ma DB n'a plus de majuscule. 

j'ai également modifié quelque ligne de code que je vous partage, et ça devrait fonctionner pour ce qui le souhaite. 😀 

<?php
error_reporting(E_ALL); 
ini_set('display_errors', '1');
try{
    
$pdo = new PDO( 'mysql:dbname=sledom; host=localhost', 'root', 'root');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
}
catch (Exception $e) {
    die('Erreur : ' . $e->getMessage());
}
if(isset($_POST['forminscription']))
{
        $firstname = htmlspecialchars($_POST['firstname']);
        $lastname = htmlspecialchars($_POST['lastname']);
        $email = htmlspecialchars($_POST['email']);
        $username = htmlspecialchars($_POST['username']);
        $password = htmlspecialchars($_POST['password']);
        
    if(!empty($_POST['firstname']) AND !empty($_POST['lastname']) AND !empty($_POST['email']) AND !empty($_POST['username']) AND !empty($_POST['password']))
    {
        if (preg_match('/[a-zA-Z-\'éèëêaàâäiïîñ]+$/', $_POST['firstname'])){
            
            if (preg_match('/[a-zA-Z-\'éèëêaàâäiïîñ]+$/', $_POST['lastname'])){
                
                if (preg_match('/[a-zA-Z-_\'éèëêaàâäiïîñ0-9]+$/', $_POST['username'])){
                
                    if (preg_match('/[a-z-_0-9]+$/', $_POST['email'])){
                
                        $usernamelenght = strlen($username);
                        if($usernamelenght <= 255 AND $usernamelenght >= 2)
                        {
                            
                            $passwordlenght = strlen($password);
                            if($passwordlenght >= 8)
                            {
    
                                if(filter_var($email, FILTER_VALIDATE_EMAIL))
                                {
                                        if(empty($errors)){
                                        
                                            $req = $pdo->prepare("INSERT INTO users SET firstname = ?, lastname = ?, email = ?, username = ?, password = ?");
                                            $password = password_hash($_POST['password'], PASSWORD_BCRYPT);
                                            $req->execute([$_POST['firstname'], $_POST['lastname'], $_POST['email'], $_POST['username'], $password]);
                                            $message = "Thank you for your registration </br> A confirmation email has been sent";
                                            header("Refresh: 5;URL=Sledom.php");
                                        }
                                        else{
                                            $errors = "les infos ne sont pas envoyées";
                                        }
                    
                                }else{                            
                                    $errors = "Please enter a valid Email Adress";
                                }
                            
                            }else{
                                $errors = "Your password must contain at least 8 characters";
                            }
                        
                        }else{
                            $errors ="Your username must be between 2 and 255 characters long";
                        }
                    
                    }else{
                        $errors = "Please enter a valid Email Adress";
                }
            
                }else{
                    $errors = "Please enter a valid Username";
                }
            
            }else{
                $errors = "Please enter a valid Last Name";
            }
        
        }else{
            $errors = "Please enter a valid First Name";
        }
        
        
    }else{
        $errors="All fields must be filled";
    }
    
}
?>


Encore merci, à bientôt. 


Profil introuvable

Profil introuvable Le 22 mars 2018 à 23:46

Re:

Merci beaucoup de tes remarques et oui je commence toujours à vérifier si le nom de la base correspond bien (un espace, un simple point ou autre chose et c'est la galère).
Bref bonne continuation par la suite 😀
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte