Erreurs

Résolu
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   -  
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai 2 erreurs : Warning: require(config/database.php): failed to open stream: No such file or directory in C:\wamp\www\rs\pages\register.php on line 89

Fatal error: require(): Failed opening required 'config/database.php' (include_path='.;C:\php\pear') in C:\wamp\www\rs\pages\register.php on line 89
Call Stack


Voici mon register.php :
<h1>Inscription</h1>

<?php	  
if (!isset($_POST['submit']))
{
?>

<form method="POST" action="">

   <label for='sexe'>Sexe</label>
   <select name="sexe">
           <?php echo isset($sexe)?'<option value='.$sexe.'>'.$sexe.'</option>':""; ?>
           <?php echo $sexe != 'Homme' ?'<option value="Homme">Homme</option>':""; ?>
           <?php echo $sexe != 'Femme' ?'<option value="Femme">Femme</option>':""; ?>          
 </select><br /><br/>
 
 <label for="pseudo">Votre pseudo : </label>
 <input type="text" name ="pseudo" value='<?php echo isset($pseudo) ? $pseudo :""; ?>'><br />
 
 <label for="password">Votre password : </label>
 <input type="password" name ="password"><br />
 
 <label for="repeatpassword">Repetez votre password : </label>
 <input type="password" name ="repeatpassword"><br />
 
 <label for="email">Veuillez saisir votre email : </label>
 <input type="text" name ="email" value='<?php echo isset($email) ? $email :""; ?>'><br />
 
 <label for="apropos">A propos de vous </label>
 <textarea rows="6" cols="30" name="apropos"><?php echo isset($apropos) ? $apropos : ""; ?></textarea><br /><br />
 
 <input type="submit" value="S'inscrire" name="submit">
 
</form>

<?php

}
else
{
              
		$sexe = htmlspecialchars(strip_tags($_POST['sexe']));
        $pseudo = htmlspecialchars(strip_tags($_POST['pseudo']));
        $password = htmlspecialchars(strip_tags($_POST['password']));
        $repeatpassword = htmlspecialchars(strip_tags($_POST['repeatpassword']));
        $email = htmlspecialchars(strip_tags($_POST['email']));
        $apropos = htmlspecialchars(strip_tags($_POST['apropos']));       
    
    
    if(empty($pseudo))
       {
      $errors[] ="Veuillez saisir un pseudo";
    }
    
    if (empty($password))
    {
      $errors[] ="Veuillez saisir un password";
    }
    
    if($password != $repeatpassword)
    {
     $errors[] = "Vos deux password doivent être identiques";
    }
    
    if(!filter_var($email,FILTER_VALIDATE_EMAIL))
    {
     $errors[] = "Votre adresse email n'est pas correcte";     
    }
    
    if(empty($apropos))
    {
     $errors[] = "Veuillez vous décrire en quelques lignes";    
    }
    
    if(!empty($errors))
    {
     foreach($errors as $error)
     {
      echo "<div class='error'>".$error."</div>";
     }
      } 
	   inscrire_utilisateur($pseudo,$password,$email,$sexe,$apropos);
                        die('Inscription terminée, vous pouvez vous <a href=\'index.php?page=login\'>connecter</a>');
}
?>

<?php

require('config/database.php');
require('includes/functions.php');

 
 //si le formulaire a été soumis
 if(isset($_POST['register'])) {

  // si tous les champs sont remplis
  if(not_empty(['name', 'pseudo', 'email', 'password', 'password_confirm'])) {

   $errors = []; //tableau contenant l'ensemble des erreurs

   extract($_POST);

  

   //si le pseudo est deja dans la bdd
   if(is_already_in_use('pseudo', $pseudo, 'users')) {
    $errors[] = "Le pseudonyme est déja utilisé.";
   }

   //si l'adresse mail est deja dans la bdd
   if(is_already_in_use('email', $email, 'users')) {
    $errors[] = "L'adresse e-mail est déja utilisée.";
   }


   //si il y a 0 erreur
   if(count($errors) == 0) {

    
        //enregistrement du membre dans la base de données
        $q = $db->prepare('INSERT INTO users(name, pseudo, email, password)
                  VALUES(:name, :pseudo, :email, :password)');
        $q->execute([

         'name' => $name,
         'pseudo' => $pseudo,
         'email' => $email,
         'password' => ($password)

        ]);

        redirect('index.php');

   } else {
    save_input_data();

   }

  } else {

   //si tous les champs ne sont pas remplis
   $errors[] = "Veuillez remplir s'il vous plaît tous les champs";
   save_input_data();


  }

 } else {
  clear_input_data();
 }


?>


<?php require('views/register.views.php'); ?>



Et mon functions.php :

<?php
try 
{
  $bdd = new PDO ('mysql:host=localhost;dbname=rs;charset=utf8', 'root', '');
}
catch(Exception $e) 
{
  die('Erreur : '.$e->getMessage());
}

function inscrire_utilisateur($pseudo,$password,$email,$sexe,$apropos)
{
  Global $bdd;
  
  $password=sha1($password);
  $sql = "INSERT INTO utilisateurs(pseudo,password,email,sexe,apropos)
          VALUES (:pseudo,:password,:email,:sexe,:apropos)";
  $result = $bdd->prepare($sql);
  $result->bindValue('pseudo', $pseudo, PDO::PARAM_STR);
  $result->bindValue('password', $password, PDO::PARAM_STR);
  $result->bindValue('email', $email, PDO::PARAM_STR);
  $result->bindValue('sexe', $sexe, PDO::PARAM_STR);
  $result->bindValue('apropos', $apropos, PDO::PARAM_STR);
  $result->execute();
}

//vérifie que les données ne sont pas en double dans la base de données
if(!function_exists('is_already_in_use')) {
 function is_already_in_use($field, $value, $table) {
  global $db;

  $q = $db->prepare("SELECT id FROM $table WHERE $field = ?");
  $q->execute([$value]);

  $count = $q->rowCount();

  $q->closeCursor();

  return $count;
 }
}




Que faire svp ? Merci d'avance

1 réponse

totoyo47 Messages postés 260 Date d'inscription   Statut Membre Dernière intervention   134
 
"Que faire ?"

L'erreur dit que require ne trouve pas le fichier au chemin spécifié. Donc, le chemin que tu as renseigné n'est pas bon.
Rajoute un slash / au début du chemin pour voir.
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
J'ai pas compris ^^
0
totoyo47 Messages postés 260 Date d'inscription   Statut Membre Dernière intervention   134
 
Comprends-tu au moins la signification de tes 2 erreurs ?
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
nn
0
totoyo47 Messages postés 260 Date d'inscription   Statut Membre Dernière intervention   134
 
Pour ce script php, tu dis que tu as besoin des fichiers database.php et functions.php (require). Or, tu as une erreur :
"Warning: require(config/database.php): failed to open stream: No such file or directory in C:\wamp\www\rs\pages\register.php on line 89 "

"require(config/database.php)" => la fonction qui rencontre un problème (warning)
"failed to open stream: No such file or directory" => ne trouve pas le fichier database.php par rapport au chemin spécifié

Donc, le chemin n'est pas bon. Essaie en faisant :
"require("/config/database.php");

Pour comprendre les chemins, je te conseille de lire quelques tutoriels comme celui-ci : http://www.php-astux.info/chemins-relatif-absolu.php
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,
La réponse est bonne (concernant le pourquoi de l'erreur) .. la solution peut-être pas

Donc, le chemin n'est pas bon. Essaie en faisant :
"require("/config/database.php");

La question à se poser est :
A quel endroit as tu placé tes fichiers database.php et functions.php ?
Les as tu mis au même endroit que ton script ou se trouvent ils dans d'autres répertoires de ton site ?
0