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 -
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 :
Mon functions.php :
Que faire ? Merci d'avance.
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 erreurs
- Supercopier 2 - Télécharger - Gestion de fichiers
- 2 ecran pc - Guide
- Faire 2 colonnes sur word - Guide
- Whatsapp 2 - Guide
- Word numéro de page 1/2 - Guide
2 réponses
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).
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__
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 :
Au cas où ça ne fonctionnerait toujours pas;
merci d'ajouter ce code dans ta page et de nous en dire le résultat :
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"];
../config/database.php
Donc ton database.php serait dans :
C:\wamp\www\rs\config\database.php
?