Je n'arrive pas à connecter ma page php à ma base de donné [Résolu/Fermé]

Signaler
Messages postés
53
Date d'inscription
vendredi 24 juillet 2015
Statut
Membre
Dernière intervention
8 août 2017
-
Messages postés
32041
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 avril 2021
-
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

Messages postés
14779
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
3 avril 2021
283
As-tu regardé le fichier error.log d'Apache ?
Quel est le message d'erreur ?
Le mot de passe de "root" est "root" ou "" ?
Messages postés
53
Date d'inscription
vendredi 24 juillet 2015
Statut
Membre
Dernière intervention
8 août 2017

Je ne sais pas ou se trouve le fichier error d'apache
Le mdp est root.

Merci de ton aide
Messages postés
14779
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
3 avril 2021
283
Regardes dans le dossier de WAMP, tu devrais avoir un fichier access.log et un error.log, ça te donnera le message d'erreur.
Messages postés
53
Date d'inscription
vendredi 24 juillet 2015
Statut
Membre
Dernière intervention
8 août 2017

Je ne trouve pas le dossier WAMP (j'ai fait une recherche spotling)
Messages postés
32041
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 avril 2021
3 380
Bonjour

pourquoi sur la même page as tu du PDO .. ET ..du mysql_* ???
Messages postés
53
Date d'inscription
vendredi 24 juillet 2015
Statut
Membre
Dernière intervention
8 août 2017

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
Messages postés
32041
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 avril 2021
3 380
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
Messages postés
53
Date d'inscription
vendredi 24 juillet 2015
Statut
Membre
Dernière intervention
8 août 2017

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
Messages postés
32041
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 avril 2021
3 380
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