Page 1 sur 1

Aide insertion dans bdd

Posté : 02 sept. 2013, 12:41
par nonozelmar
bonjour après plusieurs recherche sur des sujets dans plusieurs forums j'ai décidé de créer un sujet pour un problème d'insertion de données dans un bdd.
j'ai crée un formulaire d'inscription mais je pense que j'ai fait une erreur dans le code pour l'insertion.
Pouvez vous m'orientez vers la solution ?
Merci d'avance pour votre aide :)
<?php
    if($_POST['Envoyer'])
    {
        if($_POST['pseudo']&&$_POST['mdp']&&$_POST['mdp2']&&$_POST['email'])
        {
            if($_POST['mdp']==$_POST['mdp2'])
            {
                try
                {
                 $connexion = new PDO('mysql:host=*******;dbname=*******', '*******', '*******');
                }
                catch (Exception $e)
                {
                        die('Erreur : ' . $e->getMessage());
                }
                $sql = 'INSERT INTO membre(pseudo, password, email, date_inscription) VALUES(' 
                    . $bdd->quote($_POST['pseudo']) . ','
                    . $bdd->quote($_POST['mdp']) . ','
                    . $bdd->quote($_POST['email']) . ','
                    . $bdd->quote(CURDATE()) . ')';
                try 
                {
                    $bdd->query($sql);
                }
                catch (Exception $e) 
                {
                    echo '<p class="erreur">', $e->getMessage(), '</p>';
                }
            }else echo 'Les deux mots de passe ne correspondent pas';
        }else echo 'Veuillez compléter tous les champs';
    }
?>
<!DOCTYPE html> 
<form method="POST" action="signup.php">
<label for="pseudo">Pseudo : </label><input type="text" name="pseudo" maxlength="20" value="<?php if (!empty($_POST["pseudo"])) { echo stripcslashes(htmlspecialchars($_POST["pseudo"],ENT_QUOTES)); } ?>" /><br/>
<label for="pass">Mot de Passe : </label><input type="password" name="mdp" maxlength="20" value="<?php if (!empty($_POST["motdepass"])) { echo stripcslashes(htmlspecialchars($_POST["motdepass"],ENT_QUOTES)); } ?>" /><br/>
<label for="pass">Confirmation mot de passe : </label><input type="password" name="mdp2" maxlength="20" value="<?php if (!empty($_POST["motdepass"])) { echo stripcslashes(htmlspecialchars($_POST["motdepass"],ENT_QUOTES)); } ?>" /><br/>
<label for="email">Email : </label><input type="text" name="email" maxlength="50" value="<?php if (!empty($_POST["email"])) { echo stripcslashes(htmlspecialchars($_POST["email"],ENT_QUOTES)); } ?>" /><br/>
<label for="action">Action : </label><input type="submit" name="Envoyer" value="Envoyer" />
<input name="Effacer" value="Effacer" type="reset" />
</form>
<br/>

Re: Aide insertion dans bdd

Posté : 02 sept. 2013, 20:36
par niuxe
Salut,

Syntaxiquement, ton code me parait juste. Par contre je ne vois pas l'intérêt des deux try/catch. Logiquement j'en verrai qu'un. Et aussi d'où vient $bdd ?
$bdd->quote(...)
Je t'invite à regarder des tutos sur pdo (http://www.giyf.com/). Regarde dans la doc l'objet pdo Exception et ses autres héritages. Tu apprendras pleins de bonnes petites choses.

Re: Aide insertion dans bdd

Posté : 02 sept. 2013, 21:27
par moogli
Mélange entre $connexion et certainement un script / tuto qui contient $bdd

quand au code

if($_POST['Envoyer'])
{
if($_POST['pseudo']&&$_POST['mdp']&&$_POST['mdp2']&&$_POST['email'])

non utilise issetou empty pour savoir si l'index est présent dans $_POST

par exemple

if(!empty($_POST['Envoyer']))
{
if(!empty($_POST['pseudo']) && !empty($_POST['mdp']) && !empty($_POST['mdp2']) && !empty($_POST['email']))

@+