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

Résolu
dannezri Messages postés 52 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
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 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
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 52 Date d'inscription   Statut Membre Dernière intervention  
 
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 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
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 52 Date d'inscription   Statut Membre Dernière intervention  
 
Je ne trouve pas le dossier WAMP (j'ai fait une recherche spotling)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour

pourquoi sur la même page as tu du PDO .. ET ..du mysql_* ???
0
dannezri Messages postés 52 Date d'inscription   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 52 Date d'inscription   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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