2 erreurs
Zakarya93
Messages postés
1026
Statut
Membre
-
jordane45 Messages postés 40051 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 40051 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
- Gta 6 trailer 2 - Guide
- Whatsapp 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
?