Je n'arrive pas à connecter ma page php à ma base de donné

Résolu/Fermé
dannezri Messages postés 53 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 8 août 2017 - Modifié par NHenry le 3/08/2015 à 17:18
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 4 août 2015 à 00:10
Bonjour,
J'ai ma page d'inscription (avec le code ci dessous), et quand je l'ouvre avec mon navigateur il y a une page blanche (ça veut dire qu'il y a une erreur dans ma page (a la ligne 4 précisément)) et d'autre part la page n'est pas connecte a ma base de donné et je ne sais pas comment dois je faire pour la connecter.

<?php
try
{
  $bdd = new PDO('mysql:host=localhost;dbname=espace_membres;charset=utf8', 'root', 'root', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
}
catch (Exception $e)
{
  die('Erreur : ' . $e->getMessage());
}
if(isset($_POST['forminscription']))
{
$pseudo = htmlspecialchars($_POST['pseudo']);
$mail = htmlspecialchars($_POST['mail']);
$mail2 = htmlspecialchars($_POST['mail2']);
 
 if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2']))
{


$pseudolenght = strlen($pseudo);
if($pseudolenght <= 255)
{
 if($mail == $mail2)
 {
  if(filter_var($mail, FILTER_VALIDATE_EMAIL ))
  {
   if($mdp == $mdp2)
   {
 mysql_connect('localhost','root','');
 mysql_select_db('espace_membres');
 $query = mysql_query("
 
 INSERT INTO membres VALUES ('','$pseudo,$mail,$motdepasse')
 
 
 
 ");
   }
   else
   {
    $erreur = "Vos mots de passes ne correspondent pas";
   }
  }
  else
  {
   $erreur = "Votre adresse mail n'est pas valide";
  }
 }
 else
 {
  $erreur = "Vos adresses mail ne correspondent pas";
 }
}
else
{
 $erreur = "Votre pseudo ne doit pas dépasser 255 caractères ";
}

}
else
{
 $erreur = "Tous les champs doivent être complétés ";
}
}



?>



<html>
 <head>
  <title>Inscription</title>
 </head>
 <body>
  <div align="center">
   <h2>Inscription</h2>
   <br /><br />
   <form method="POST" action="">
    <table>
     <tr>
     <td align="right">
     <label for="Pseudo">Pseudo :</label>
     </td>
    <td>
    <input type="text"
    placeholder="Votre pseudo" id="pseudo" name="pseudo" value="<?php if(isset($pseudo)) {echo $pseudo;} ?> "/>
    </td>
     </tr>
    </table>
    
    
    
   <table>
     <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>
    </table>
    
    
    <table>
     <tr>
     <td align="right">
     <label for="mail2">Confirmation du mail :</label>
     </td>
    <td>
    <input type="email"
    placeholder="Confirmer votre mail" id="mail2" name="mail2" "<?php if(isset($mail)) {echo $mail2;}?> "/>
    </td>
     </tr>
    </table>
    
    
     <table>
     <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>
    </table>
    
    
    
    <table>
     <tr>
     <td align="right">
     <label for="mdp2">Confirmation du mot de passe :</label>
     </td>
    <td>
    <input type="password"
    placeholder="Confirmer votre mot de passe" id="mdp2" name="mdp2" />
    </td>
     </tr>
     
     
     <tr>
      <td></td>
      <td>
       <br />
       <input type="submit" name="forminscription" value="Je m'inscris" />
      </td>
     </tr>
    </table>
   </form>
   <?php
    if(isset($erreur))
    {
     echo $erreur;
    }
    
    ?>
  </div>
 </body>
</html>




Merci

A voir également:

3 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
3 août 2015 à 17:19
As-tu regardé le fichier error.log d'Apache ?
Quel est le message d'erreur ?
Le mot de passe de "root" est "root" ou "" ?
0
dannezri Messages postés 53 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 8 août 2017
3 août 2015 à 19:08
Je ne sais pas ou se trouve le fichier error d'apache
Le mdp est root.

Merci de ton aide
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
3 août 2015 à 19:12
Regardes dans le dossier de WAMP, tu devrais avoir un fichier access.log et un error.log, ça te donnera le message d'erreur.
0
dannezri Messages postés 53 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 8 août 2017
3 août 2015 à 23:14
Je ne trouve pas le dossier WAMP (j'ai fait une recherche spotling)
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
3 août 2015 à 19:20
Bonjour

pourquoi sur la même page as tu du PDO .. ET ..du mysql_* ???
0
dannezri Messages postés 53 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 8 août 2017
3 août 2015 à 23:13
Je ne sais pas, je suis débutant en php et j'ai suivi un tuto a la lettre mais au moment de la connexion a ma base de donné ca ne marchais pas donc j'ai besoin d'un correction dans mon fichier.

Merci
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié par jordane45 le 3/08/2015 à 23:34
Essayes ça :

<?php
//---------------------------------------------------------------------//
//Connexion à la BDD
// (A mettre dans un fichier à part nommé par exemple : cnxBDD.php)
//---------------------------------------------------------------------//

$host = "localhost";
$dbname = "espace_membres";
$user = "root";
$pwd = "root";

try{
  $options =  array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING);
  $bdd = new PDO("mysql:host=".$host.";dbname=".$dbname.";charset=utf8", $user, $pwd ,$options);
}catch (Exception $e){
  echo '<br>Erreur : ' . $e->getMessage();
  exit();
}



Ensuite, dans ton code tu pourras inclure la connexion
en utilisant un REQUIRE
<?php
//--------------------------------------//
// Pour afficher les erreurs PHP
//--------------------------------------//
error_reporting(E_ALL);

//--------------------------------------//
//On importe la connexion à la BDD
//--------------------------------------//
require_once 'cnxBDD.php';

//--------------------------------------//
//Récupération "propre" des variables
// AVANT de les utiliser :
//--------------------------------------//
$pseudo = !empty($_POST['pseudo']) ? htmlspecialchars($_POST['pseudo']) : NULL ;
$mdp = !empty($_POST['mdp']) ? htmlspecialchars($_POST['mdp']) : NULL ;
$mdp2 = !empty($_POST['mdp2']) ? htmlspecialchars($_POST['mdp2']) : NULL ;
$mail = !empty($_POST['mail']) ? htmlspecialchars($_POST['mail']) : NULL ;
$mail2 = !empty($_POST['mail2']) ? htmlspecialchars($_POST['mail2']) : NULL ;


//--------------------------------------//
// Traitement du submit :
//--------------------------------------//
if(isset($_POST['forminscription'])) {

 if( $pseudo && $mdp && $mdp2  &&  $mail && $mail2){

  $pseudolenght = strlen($pseudo);
  
  if($pseudolenght <= 255) {
    if($mail == $mail2) {
      if(filter_var($mail, FILTER_VALIDATE_EMAIL ))  {
       if($mdp == $mdp2) {
         try{
           $sql = "INSERT INTO membres (pseudo,mail,motdepasse) 
                    VALUES (:pseudo,:mail,:motdepasse)";
  
           $params = array(":pseudo"=>$pseudo,":mail"=>$mail,":motdepasse"=>$mdp);
     
           $prepare = $bdd->prepare($sql);
           $prepare->execute($params); 
  
         }catch(Exception $e) {
           echo "<pre><br>".$e->getMessage()."<br>";
           echo "</pre>";
           exit;
         }
      } else {
        $erreur = "Vos mots de passes ne correspondent pas";
      }
    } else {
      $erreur = "Votre adresse mail n'est pas valide";
    }
   } else {
    $erreur = "Vos adresses mail ne correspondent pas";
   }
  }else{
   $erreur = "Votre pseudo ne doit pas dépasser 255 caractères ";
  }

 }else{
   $erreur = "Tous les champs doivent être complétés ";
 }
}
//--------------------------------------//
?>





Cordialement,
Jordane
0
dannezri Messages postés 53 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 8 août 2017
3 août 2015 à 23:55
C'est bon ca marche. Merci beaucoup mais comme tu as l'air bon de le domaine du php je vais un peu abuser de toi avec une autre question. J'ai un site qui est hébergé chez free mais la le problème c'est que je travail avec ma base de donné en local, c'est a dire que quelqu'un d'extérieur a mon réseau ne peut pas s'inscrire alors comment dois je faire pour que quand je vais mettre ma page d'inscription sur mon site (heberge par free) les gens puisse s'inscrire et pour que moi je reçoivent les infos sur ma base de donnée.

Merci d'avance
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
4 août 2015 à 00:10
Créés une bdd chez free...et ansi les données y seront stockées directement. ...
garder la bdd en local n'est clairement pas une bonne solution
0