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
36336
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 septembre 2022
- 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

3 réponses

NHenry
Messages postés
14998
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 septembre 2022
326
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
14998
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 septembre 2022
326
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
36336
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 septembre 2022
4 351
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
36336
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 septembre 2022
4 351
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
36336
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 septembre 2022
4 351
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