Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1574 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Base de donnée

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Base de donnée

n°2255823
neoxus
Posté le 15-04-2015 à 13:45:13  profilanswer
 

Salut tout le monde
 
Alors j'ai un petit problème:
 
Je suis en Terminale STI2D et je dois faire un projet pour le bac, j'ai donc choisi avec mon coéquipier de faire un système de vidéosurveillance avec un raspberry et son module caméra, ainsi qu'un site possédant un espace membre afin que l'utilisateur puisse s'inscrire et se connecter et avoir accès à la vue de sa caméra.  
 
Bref: ma parti à moi est de faire le site ainsi que l'espace membre. Mais je bloque sur la page d'inscription. En effet lorsque l'utilisateur s'inscrit et clique sur le bouton "s'inscrire" les données qu'il entre (pseudo, mail, mot de passe) ne se met pas dans ma base de donnée. Je suis sous wamp et utilise phpmyadmin pour la base de donné  
Si vous avez besoin de précisons ou d'infos n'hésitez pas  
Vous trouverez ci-dessous le code de ma page inscription
 
Merci pour les futures réponses :)  
 
<?php
 
$bdd = new PDO('mysql:host=127.0.0.1;dbname=base;charset=utf8', 'root','');
 
if(isset($_POST['forminscription']))
{
    $pseudo = htmlspecialchars($_POST['pseudo']); // enlève les caractères html, évite les injections de codes( securité)
        $mail = htmlspecialchars($_POST['mail']);
        $mail2 = htmlspecialchars($_POST['mail2']);
        $mdp = sha1($_POST['mdp']); // crypte le mot de passe en sha1 (sécurité)
        $mdp2 = sha1($_POST['mdp2']);
    if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mail2']))
    {
        $pseudolength = strlen($pseudo); // analyse le nbre de caractère dans notre pseudo
       if($pseudolength <= 255)
       {
        if($mail == $mail2)
        {
            if(filter_var($mail, FILTER_VALIDATE_EMAIL)) // oblige l'utilisateur a rentré un email valide
          {
 
          }
          else  
          {
            $erreur = "Votre adresse mail n'est pas valide";
          }
          if ($mdp == $mdp2)
          {
             $insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse) VALUES(?, ?, ?" ); //prepare la base de donné
             $insertmbr->execute(array($pseudo, $mail, $mdp));
             $erreur = "Vous êtes bien inscrit. Bienvenue :)";
          }
          else  
          {
            $erreur = "Les deux mots de passe doivent être similaire";
          }
        }
        else  
        {
          $erreur = " Les deux emails doivent être identique";
        }
       }
       else
       {
        $erreur = "Votre pseudo ne doit pas dépasser 255 caractères.";
       }
 
     
    }
    else
    {
        $erreur = "Tous les champs doivent être remplis";
    }
}
 
?>
 
<!DOCTYPE html>
<html>
<head>
     <title>inscription</title>
   <meta http-equiv="content-type"
      content="text/html;charset=utf-8"/>
 
</head>
 
<body>
 <div align="center">
 <h2>Inscription</h2>
 <br/><br/>
 
 <form method="post" action=" ">
   
 
   <table>
    <tr>
     <td align="right"> <!-- permet de rapprocher le plus possible le texte de la case -->
     <label for="pseudo"> <!--permet de sélectionner automatiquement la case, lorsqu'on clique desssus--> Pseudo:</label>
        </td>
        <td>
            <input type="text"
          placeholder="Votre pseudo" id="pseudo" name="pseudo"  value= "<?php if(isset($pseudo)){echo $pseudo; } ?>" /> <!-- permet de conserver le pseudo si une erreur se produit-->
          </td>
          </tr>
          </form>      
   <tr>
    <td align="right">  
     <label for="mail"> Mail:</label>
        </td>
        <td>
            <input type="email"
          placeholder="Votre mail" id="mail" name="mail" value= "<?php if(isset($mail)){echo $mail; } ?>" />
       </td>
    </tr>
   <tr>
    <td align="right">  
     <label for="mail2"> Confirmation du mail:</label>
        </td>
        <td>
            <input type="email"
          placeholder="Confirmez votre email" id="mail2" name="mail2" value= "<?php if(isset($mail)){echo $mail; } ?>" />
          </td>
      </tr>
 <tr>
    <td align="right">  
     <label for="mdp"> Mot de passe:</label>
        </td>
        <td>
            <input type="password"
          placeholder="Votre mot de passe" id="mdp" name="mdp" />
          </td>
      </tr>
 <tr>
    <td align="right">  
     <label for="mdp2"> Confirmation de votre mot de passe:</label>
        </td>
        <td>
            <input type="password"
          placeholder="Confirmez votre mot de passe" id="mdp2" name="mdp2" />
          </td>
      </tr>
     <tr>
        <td></td> <!-- centre notre bouton d'inscription -->
        <td>
            <input type="submit" name="forminscription" value="Je m'inscris" />
        </td>
    </tr>
 </table>
</form>
<?php
if(isset($erreur))
{
    echo '<font color="red">' .$erreur. "</font>";
}
?>
</body>
 
</html>

mood
Publicité
Posté le 15-04-2015 à 13:45:13  profilanswer
 

n°2255829
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 15-04-2015 à 14:20:44  profilanswer
 

salut,
ton formulaire pointe sur un action=" " (un espace) donc il ne donne pas sur la page en cours ?
teste ceci : au lieu de
 

Code :
  1. if(isset($_POST['forminscription']))


 
mets

Code :
  1. if(!isset($_POST['forminscription']))
  2. {
  3. echo 'formulaire non soumis pour le moment.';
  4. }
  5. else
  6. {


 
et tu verras que le message va apparaitre la première fois que tu charges la page (normal) et quand tu valides le fiormulaire, que se passe-t-il ?
 
PS : peux-tu mettre des balises [code ] sur ton message ?


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°2255833
neoxus
Posté le 15-04-2015 à 14:39:03  profilanswer
 

Quand je valide l'inscription ça affiche le message que j'ai mis c'est à dire "Vous êtes bien inscrit. Bienvenue :)  
 
J'ai pas trop compris à quoi servait la modification que vous m'avez suggérer ?

n°2255834
rufo
Pas me confondre avec Lycos!
Posté le 15-04-2015 à 14:49:07  profilanswer
 

T'as quoi comme msg d'erreur ?
 
$bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse) VALUES(?, ?, ?" );
 
Entre le ? et le guillemet, je pense qu'il manque une )


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2255837
neoxus
Posté le 15-04-2015 à 15:35:20  profilanswer
 

J'ai aucun message d'erreur,  
Le problème c'est que le pseudo mail et mot de passe ne se mettent pas dans la bdd lors de l'inscription

n°2255838
Elanth
Posté le 15-04-2015 à 15:58:53  profilanswer
 

Essais de vérifier la connexion SQL

Code :
  1. try{
  2. new PDO('mysql:host=localhost;dbname=votre_base', 'utilisateur', 'mot_de_passe');
  3. }
  4. catch (PDOException $e) {
  5.     print "Erreur !: " . $e->getMessage() . "<br/>";
  6.     die();
  7. }


Message édité par Elanth le 15-04-2015 à 15:59:30
n°2255841
rufo
Pas me confondre avec Lycos!
Posté le 15-04-2015 à 16:51:09  profilanswer
 

T'as activé au moins le reporting_error à On ?
 
Sais-tu au moins ou passe ton script (dans quelles branches des if/else). Comme je te l'ai fait remarquer, la requête qui se charge de l'enregistrement dans la BD me paraît foireuse niveau syntaxique et ça, c'est un truc que l'interpréteur de php devrait voir su je ne me trompe pas :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2255851
neoxus
Posté le 15-04-2015 à 19:21:47  profilanswer
 

Alors ça j'en sais rien du tout, je suis débutant et j'ai suivi un tuto sur internet, si tu veux, tu peux m'ajouter sur skype je pense qu'on réglera le prblème plus facilement :)  
 
skype: yoneoxus

n°2255876
rufo
Pas me confondre avec Lycos!
Posté le 16-04-2015 à 09:32:34  profilanswer
 

Je fais pas de skype. Ton pb peut tout à fait se régler sur ce forum plus des recherches sur le web. Tu peux déjà faire la vérif que je t'ai demandée concernant le reporting des erreurs de php.
 
Pour le passage dans les if/else de ton script, tu rajoutes des echo "...".


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Base de donnée

 

Sujets relatifs
EXCEL VBA Liaison Excel Base de donnée toute simpleautomatiser la synchronisation de 2 base de donnée mysql et oracle
Wordpress, récupérer une base de donnée ?accès à une base de donnée distante
Problème Importation base de donnéeafficher les infos de ma base de donnée en page html dès l'ouverture
[Symfony 2.3.4] Création d'entité sur base de donnée existanteexcel et base de donnée
Probleme import csv dans une base de donnéevisual basic et base de donnée
Plus de sujets relatifs à : Base de donnée


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR