[PHP] Page protégée + PHP [Débutant]

Résolu/Fermé
Ooda Messages postés 58 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 5 juin 2010 - 22 févr. 2010 à 13:46
Ooda Messages postés 58 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 5 juin 2010 - 24 févr. 2010 à 10:37
Bonjour,
J'ai un problème, je suis en train d'apprendre le php sur le site du zero et j'ai un problème : J'ai mis une page protégée par Mot De Passe et à l'intérieur, un emploi du temps en PHP ou je rentre ce que j'ai a faire dans la journée mais le problème c'est que quand je rentre une donnée dans mon emploi du temps, il me renvoi sur la page où je doit rentrer le message

Je vous donne la page + le code pour que vous puissiez essayer et m'aider.
http://animesgratuits.com/protection.php
Le code est : jc23ch7e

En plus de cela, je vous montre mon code :

Voici la totalité de mon code :


<?php
if (isset($_POST['mot_de_passe']))
{
$mot_de_passe = $_POST['mot_de_passe'];
}
else
{
$mot_de_passe = "";
}

if ($mot_de_passe == "jc23ch7e")
{

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Administration</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
<link rel="shortcut icon" href="images/anime.ico" />
</head>
<body>
<div id="en_tete">

</div>
<?php include("menu.html"); ?>
<div id="corps">
<h2>Administration</h2><br><br>


<h2>Emploi du temps :</h2>

<?php
if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
{
if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
{
// D'abord, on se connecte à MySQL
mysql_connect("serveur", "login", "mdp");
mysql_select_db("BDD");

// Ensuite on enregistre le message
mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')") or exit(mysql_error());

}
}

?>

<form action="protection.php" method="post">
<table><tr><td>
Travail : <br /><input type="text" name="pseudo" /><br />
Description : <br /> <textarea name="message" rows="10" cols="35" type="text"/></textarea><br />

<input type="submit" value="Envoyer" />

</form>
</td><td>

<?php

mysql_connect("serveur", "login", "mdp");
mysql_select_db("BDD");

$reponse = mysql_query("SELECT * FROM minichat ORDER BY ID LIMIT 0,2");

while ($donnees = mysql_fetch_array($reponse) )
{
?>

<p><strong> Travail à faire :</strong><br /><?php echo $donnees["pseudo"]; ?><br/><strong> Description :</strong> <br /> <?php echo $donnees["message"]; ?></p>

<?php
}

?>
</td></tr></table>
<?php
}
else
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>AnimesGratuits - Admin</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="animegratuit.css" />
<link rel="shortcut icon" href="images/anime.ico" />

</head>
<body>
<div id="en_tete">

</div>
<?php include("menu.html"); ?>
<div id="corps">
<h2>Administration</h2>
<h3>Mot de passe :</h3>
<form action="protection.php" method="post">
<p>
<input type="text" name="mot_de_passe" /> <input type="submit" value="Valider" />
</p>
</form>

</div>


</body>
</html>
<?php
}
?>

Voila. Je voudrais savoir, une fois que j'ai rentré le mot de passe et que je suis dans mon administration, comment rentrer des données sans retourner a la page où l'on rentre le mot de passe.

Merci
A voir également:

10 réponses

Titial69 Messages postés 259 Date d'inscription lundi 22 février 2010 Statut Membre Dernière intervention 11 mars 2010 20
23 févr. 2010 à 14:45
Ben en fait j'ai fait des fautes de frappes, le nom de l'input est peudo_entre et on test la variable pSeudo_entre donc c'est sur que ca ne va pas marcher.

Par contre attention tu as oublié la fin du if et le le else : voici le code complet correct :
<?php 
session_start();
$mdp = motdepasse;
$pseudo = pseudo;
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Administration</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<link rel="stylesheet" media="screen" type="text/css" title="Design" href="animegratuit.css" />
      <link rel="shortcut icon" href="images/anime.ico" />
 </head>
    <body>
  <div id="en_tete">
   
</div>
<div id="corps">
		<h2>Administration</h2>

<?php
//on a entre son mot de passe

if(isset($_POST['mdp_entre']) && isset($_POST['pseudo_entre']))
{
if($_POST['mdp_entre']==$mdp && $_POST['pseudo_entre']==$pseudo)
{
$_SESSION['pseudo']=$pseudo;
$_SESSION['mdp']=$mdp;
}
}
?>
<?php
$pseudo_verif = $_SESSION['pseudo'];
$mdp_verif = $_SESSION['mdp'];

if($mdp_verif==$mdp && $pseudo_verif==$pseudo)
{
?>
Contenu
<?php
}
else
{
?>

<form action="protection.php" method="post" />
MDP : <input type="text" name="mdp_entre" />
Pseudo : <input type="text" name="pseudo_entre" />
<input type="submit" value="ok" />
</form>
<?php
}
?>
  </div>
2
c'est normal
tu demande l'authentification à chaque fois

pour que ca fonctionne
1 - vérification nom+mot de passe
2 - si ok, création d'une session utilisateur
3 - si session utilisateur existe, alors affichage de la page

https://www.php.net/manual/fr/function.session-start.php

si tu t'en sors pas je te donnerai le code
0
Ooda Messages postés 58 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 5 juin 2010 3
22 févr. 2010 à 14:11
Merci =)
J'essaie ce que tu m'as donné et je te tient au courrant =)
0
Ooda Messages postés 58 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 5 juin 2010 3
22 févr. 2010 à 14:26
Désolé mais j'y arrive pas ^^"
J'ai cmmencer le php il y a pas longtemps donc je comprend pas tout ^^"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ooda Messages postés 58 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 5 juin 2010 3
22 févr. 2010 à 15:30
HELP plizz tu peux me mettre sur la voie stp ?
0
Titial69 Messages postés 259 Date d'inscription lundi 22 février 2010 Statut Membre Dernière intervention 11 mars 2010 20
22 févr. 2010 à 16:44
Comme la dit garf :

Dans ton code :

tu ouvre les session
dans les variable de session tu regarde si la variable "pseudo" vaux quelque chose (ou tout autre variable)
si oui : affichage de la page
SI non : affichage formulaire connexion
-> Si mdp et pseudo bon : création de la session, création de la variable "pseudo"

Attention, les session utilise les cookies (certains ne les acceptent pas)

Pour utiliser les session :
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/913348-variables-superglobales#ss_part_2

0
Ooda Messages postés 58 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 5 juin 2010 3
22 févr. 2010 à 19:12
Je ne connais pas bien les session and co ...
POuvez vous me donner un bout de code et me dire ou le place svp ?
0
Titial69 Messages postés 259 Date d'inscription lundi 22 février 2010 Statut Membre Dernière intervention 11 mars 2010 20
22 févr. 2010 à 19:23
Tout au dessus avant le doctype :
<?php 
session_start();
?> 


Et pour mettre la valeur de ta variable en session :
$_SESSION['peudo']=$pseudo;
$_SESSION['mdp']=$mdp;


Après pour tester ta connexion :
if($_SESSION['peudo']==$pseudo && $_SESSION['mdp']==$mdp)


Au final ca doit te donner un truc comme ca :

<?php 
session_start();
?> 
....

<?php
//on a entre son mot de passe
if(isset($_POST['mdp_entre']) && isset($_POST['pseudo_entre']))
{
if($_POST['mdp_entre']==$mdp && $_POST['pseudo_entre']==$pseudo)
{
$_SESSION['peudo']=$pseudo;
$_SESSION['mdp']=$mdp;
}
}
<?php
$pseudo_verif = $_SESSION['peudo'];
$mdp_verif = $_SESSION['mdp'];

if($mdp_verif==$mdp && $pseudo_verif==pseudo)
{
//on affiche la page
}
else
{
//on affiche le formulaire
<form action="" method="post">
MDP : <input type="text" name="mdp_entre" />
Pseudo : <input type="text" name="peudo_entre" />
<input type="submit" value="ok" />
</form>
}




Un truc comme ca
0
Ooda Messages postés 58 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 5 juin 2010 3
23 févr. 2010 à 11:15
Bonjour, j'essaie de comprendre et j'arrete pas de faire des essais mais ca ne marche pas.
Je te montre mon code et peux tu me dire ce qui ne va pas stp ?

<?php 
session_start();
$mdp = motdepasse;
$pseudo = pseudo;
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Administration</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<link rel="stylesheet" media="screen" type="text/css" title="Design" href="animegratuit.css" />
      <link rel="shortcut icon" href="images/anime.ico" />
 </head>
    <body>
  <div id="en_tete">
   
</div>
<?php include("menu.html"); ?>
<div id="corps">
		<h2>Administration</h2>

<?php
//on a entre son mot de passe

if(isset($_POST['mdp_entre']) && isset($_POST['pseudo_entre']))
{
if($_POST['mdp_entre']==$mdp && $_POST['pseudo_entre']==$pseudo)
{
$_SESSION['peudo']=$pseudo;
$_SESSION['mdp']=$mdp;
}
}
?>
<?php
$pseudo_verif = $_SESSION['peudo'];
$mdp_verif = $_SESSION['mdp'];

if($mdp_verif==$mdp && $pseudo_verif==$pseudo)
{
?>


Là il y a mon script "emploi du temps" puis :

<form action="protection.php" method="post" />
MDP : <input type="text" name="mdp_entre" />
Pseudo : <input type="text" name="peudo_entre" />
<input type="submit" value="ok" />
</form>
<?php
}
?>
  </div>


  </body>
</html>
0
Ooda Messages postés 58 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 5 juin 2010 3
24 févr. 2010 à 10:37
Merci j'ai reussi =)
Merci beaucoup
0