2 erreurs

Zakarya93 Messages postés 984 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 ces deux 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 100

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

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(pseudo_existe($email) == 1)
	{
	 $errors[] = "Ce pseudo n'est pas disponible";
    }
	
	if(email_existe($email) == 1)
	{
	 $errors[] = "Cette adresse email existe déjà <br> avez vous oublié votre <a href='#'>password? </a>";
	}
	
    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ée
        $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'); ?>



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 ? Merci d'avance.
A voir également:

2 réponses

NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Simplement, tu as mis un chemin relatif et ça part pas du bon endroit, essayes d'ajouter des "../" devant le chemin et de voir (cela permet de remonter au dossier parent).
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
Pour lequel ? require('config/database.php'); ou require('includes/functions.php'); ? ou require('views/register.views.php') ?
0
NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Le require qui te pose pb, je pense que si un de tes 3 require échoue, les autres aussi échoueront (mais comme l'interpréteur s'arrête à la première erreur ..)
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
Meme problème :( Warning: require(../config/database.php): failed to open stream: No such file or directory in C:\wamp\www\rs\pages\register.php on line 100 et pour l'autre aussi
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
Autre solution ? :)
0
NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
C:\wamp\www\rs\pages\register.php
../config/database.php
Donc ton database.php serait dans :
C:\wamp\www\rs\config\database.php
?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

dans mon www y a pas de dossier "config


Il faut que tu comprennes à quoi servent les lignes de code que tu copie/colle bêtement.....
Commence par lire ceci :
https://www.php.net/manual/fr/function.require.php

Ensuite,
 require("config/database.php")

Indique que le fichier database.php ... qui se trouve dans le dossier config est NECESSAIRE !
Si tu n'as pas de dossier config ... tu changes le chemin par TON dossier ... celui qui contient TON fichier de connexion à ta BDD ( peu importe son nom ! )

Si tu as un fichier de connexion à ta BDD qui s'appelle par exemple : connexionBDD.php ... et qu'il se trouve dans le même dossier que ta page "pages\register.php" .. ... tu remplaces donc la ligne de code par :
 require("./connexionBDD.php")

Si par contre ce fichier se trouve dans ton répertoire RS ... tu peux écrire :
 require("../connexionBDD.php")


Avant de poursuivre le développement de ton site web .. je t'invite fortement à te documenter sur ce que sont les LIENS RELATIFS et à leur fonctionnement....
Tu peux aussi t'intéresser à l'instruction php : __DIR__




0
Zakarya93
 
j'ai mis "require('../functions.php');" mais j'ai Warning: require(../functions.php): failed to open stream: No such file or directory in C:\wamp\www\rs\pages\register.php on line 100
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Zakarya93
 
Ton fichier "functions.php" ... il se trouve où dans ton arboréscence ??
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
dans mon dossier functions, je l'ai renommé "register.functions.php" et j'ai mis aussi connect.php dans le dossier
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention  
 
Et tu l'appelles depuis quelle page ?
Index.php ... ou register.php?
(register.php est appellé directement ou est un INCLUDE dans ta page index ?? )

As tu essayé de simplement faire :
require_once('functions/register.functions.php');


Au cas où ça ne fonctionnerait toujours pas;
merci d'ajouter ce code dans ta page et de nous en dire le résultat :
echo " FILE : " . __FILE__ ;
echo " DIR : " . __DIR__;
echo "php_self :".$_SERVER["PHP_SELF"];
0