Bonjour,

j essaye de creer un espace membre grace a ce tuto
https://grafikart.fr/tutoriels/gestion-membre-229
mais deja a la 8 eme minutes je suis bloque
je recois un message d erreur lorsque je veux mettre une donnee dans le formulaire cree (register.php)

cette erreur est :
Not Found
The requested URL was not found on this server.

Apache/2.4.46 (Win64) PHP/7.3.21 Server at localhost Port 80

et dans la barre de mon navigateur je suis rediriger vers login.php

voici donc les codes que j ai a la 8 eme minutes de la video

pour le register.php

<?php require 'inc/header.php';?>
<h1> s inscrire</h1>
<form action="" method="POST">
<div class="form-group">
<label for="">Pseudo</label>
<input type="text" name="usermane" class="form-control"required/>
</div>
<div class="form-group">
<label for="">Email</label>
<input type="text" name="email"class="form-control"required/>
</div>
<div class="form-group">
<label for="">Mot de passe</label>
<input type="password" name="password"class="form-control"required/>
</div>
<div class="form-group">
<label for="">Confirmer votre mot de passe</label>
<input type="password" name="password_confirm"class="form-control"required/>
</div>
<button type="submit"class="btn btn-primary">M inscrire</button>
</form>
<?php require 'inc/footer.php';?>

puis le footer.php

</div>
</body>
</html>

puis le header.php

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<title>Structure pour un compte d'administration</title>
<!-- Bootstrap core CSS -->
<link href="../css/bootstrap.min.css" rel="stylesheet">
<link href="../css/app.css" rel="stylesheet">
</head>
<body>
<nav class="navbar navbar-inverse">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Compte administration basique</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<?php if (isset($_SESSION['auth'])): ?>
<li><a href="logout.php">Deconnexion</a></li>
<?php else: ?>
<li><a href="register.php">S'inscrire</a></li>
<li><a href="login.php">Se connecter</a></li>
<?php endif; ?>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="container">
<?php if (Session::getInstance()->hasFlashes()): ?>
<?php foreach (Session::getInstance()->getFlashes() as $type => $message ): ?>
<div class="alert alert-<?= $type; ?>" >
<?= $message; ?>
</div>
<?php endforeach; ?>
<?php endif; ?>

20 réponses


Quand tu affiche la page register.php et que celle ci s'affiche bien et qu'ensuite tu clique sur M'Inscrire ça devrait pas te redirriger vers login.php puis qu'il n'y a pas de $_SESSION['auth'] (y a une petite erreur de typo >>:<< ) mais dans le code ça permet juste au menu de s'afficher, du coup quand tu es redirigé sur login.php c'est là où l'erreur s'affiche sur la page ? Parce que à ce moment c'est peut être qu'il ne trouves pas le fichier login.php (j'ai pas trop compris l'erreur) de plus je ne vois pas pourquoi tu serai redirigé vers login.php puisqu'il n'y a rien qui le fait (juste afficher le menu comme je viens de l'expliquer)

Merci pour l aide
en fait je ne clique meme pas sur m inscrire , j ai juste voulu mettre un pseudo pour l essai et direct cela me redirige vers la page login.php , qui bien evidement a ce stade de la video n a pas encore ete cree
j ai beau refaire le register.php mais l erreur est toujours la , il recherche le fichier login.php
la personne qui a cree la video n a pas encore a ce stade de la video cree ce fameux fichier et il n a pas l erreur que j ai ...
pourtant mon fichier register.php est bon ?

De rien, c'est normal on est tous passé par là ;)

Bizarre effectivement, ton register.php est clean oui, car si tu as bien remarqué l'attribut action de form est vide donc quand tu clique ça passe les $_POST['...'] au même fichier register.php, et avant d'aller plus loin dans la vidéo, il faut parser $_POST et voir si ils est vide mais pour revenir à cette redirrection je vois pas du tout d'où ça vient, qui plus est que ça fasse une ERROR NOT FOUND (si j'ai bien compris tu n'est pas encore arrivé à cette étape avec le fichier login.php)

Merci pour l'aide
Oui c'est bien ce que je me dis ...
Es ce le fait que je sois avec wampserver ?
Pourtant j'ai la même infrastructure
Donc un sous dossier inc ou sont place les deux footer.php et header.php
et un dossier principal registration

Je penses pas que ce soit WAMP le problème que poserait l'environnement d'exécution

Tu peux aussi avoir un dossier tuto (laisse comptes comme c'est expliqué) avec un fichier register.php et un sous dossier inc contenant le header.php et le footer.php

Du coup à partir de register.php on peut faire require('inc/header.php'); et require('inc/footer.php'); pour chacun des autres fichiers du tutoriel

Ceci dit ça ne règle pas le problème de redirrection vers login.php et PAGE NOT FOUND

Bonjour,
Qu'elle est le code du fichier index.php ?
La il n'y a pas de redirection donc tu devrais rester sur la page register
Sur ton éditeur de code, tu vois ton code comme sur le forum (c'est a dire avec tout d'aligner à gauche) ? Si oui alors il va falloir apprendre à bien indenter ton code

bonjour
merci pour l aide
a cette etape de la video il n y a pas encore de fichier index.php ...
oui juste pour le fichier register.php je viens de tout remettre en ordre et pas tout mettre a gauche (merci )

c'est bizarre car je ne vois aucune redirection
je vois bien une erreur qui est l'absence du session_start
qu'elle est ton url (avant redirection) ?

au debut j ai cette page comme sur l exemple
http://localhost/comptes/register.php
et des que je clique pour entrer un pseudo je suis ediriger vers
login.php

je viens d essayer sur un vrai serveur j ai la meme erreur

Bonsoir.
Il y a plusieurs erreurs.
Pour commencer, comme l'a dit Carouge10, tu utilises la variable de session, sans même avoir initialisé celle-ci avec:

session_start();

Ensuite, tu utilises une classe nommée

Session

alors que je ne la vois pas sur la page concernée et je ne te vois pas inclure un fichier qui la contiendrait.

bonsoir
n oubliez pas que je debute et donc je fais cela pas a pas

a quel endroit est utilise

session_start();

pour rappel je suis la video seconde par seconde sans rien anticiper afin d avoir toujours le resultat pareil a la la video

Tu as bien raison d'y aller doucement sans te mélanger les pinceaux, il m'arrive souvent de faire appel à Google pour revoir certain concepts

<?php session_start(); ?> peux se mettre en début de fichier PHP et il est préférable de le mettre à cet endroit quand on débute et de toute façon même après, cependant j'ai pas trop l'impression que c'est ça le problème car ceci va juste permettre de stocker des valeurs dans $_SESSION['...'] comme $_SESSION['auth'] qui du coup dans ton code ne contient aucune valeur

Cependant je ne penses pas que ce soit la source du problème mais il faut aussi checker ça déjà

Merci pour l aide
de mon cote c est pareil je suis en train d user google , mais bon a 59 ans plus beaucoup de miracle , il faut plus de temps pour apprendre
ceci dit je viens de faire un essai
j ai retire cette ligne dans register.php
<?php require 'inc/header.php';?>

je n ai plus la mise en forme , mais cela fonctionne
donc c est bien avec ce fichier header.php qu il y a un souci

....
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags must come first in the head; any other head content must come after these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">

<title>Mon super projet</title>

<!-- Bootstrap core CSS -->
<link href="css/app.css" rel="stylesheet">

</head>

<body>

<nav class="navbar navbar-inverse ">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Mon super projet</a>
    </div>
    <div id="navbar" class="collapse navbar-collapse">
      <ul class="nav navbar-nav">
        <li ><a href="register.php">s inscrire</a></li>
        <li><a href="login.php">se connecter</li>

      </ul>
    </div><!--/.nav-collapse -->
  </div>
</nav>

<div class="container">

....

session_start DOIT se mettre en début de fichier, avant tout envoi au navigateur. (html, echo....)
qu'est que tu as comme fichier dans le dossier "comptes" ?
est-ce ton 1 er projet ?
As-tu consulté les logs de wamp ?

omerci pour l aide
oui cela est mon premier projet
j ai un site web et je souhaiterais le diviser en deux
une partie ou les visiteurs ne veraient qu une partie de mon site
une autre ou les membres inscrits pourait tout voir

mais impossible de trouver un tuto
a chaque fois on parle
de register.php
connexion.php
deconnexion.php
index.php

mais comment proteger les pages que je veux qui ne soient visibles aue par les membres inscits

alors pour repondres aux questions
a cette etape de la video je n ai que register.php dans "comptes"
j ai essaye le prjet sur ooowebhost et le resultat est pareil

j ai decortique un peu le fichier et si j enleve
cette ligne tout fonctionne
<li><a href="login.php">se connecter</li>

me dit pas que c'est juste le manque de </ a> qui fait la recdirection ?

si c est bien cela j ai remis le </ a> et tout fonctionne

alors celle-là, elle est bien bonne, 1ère fois que je vois cela
pourtant sur le 1er code, le a fermant est bien là
Si un "expert" veut bien m'expliquer, je suis preneur

ce sont les lois du hassard a mon avis
merci pour l aide