Petites sessions en php
Résolu/Fermé
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
-
16 mai 2008 à 13:27
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 - 21 mai 2008 à 18:45
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 - 21 mai 2008 à 18:45
A voir également:
- Petites sessions en php
- Marketplace petites annonces - Guide
- Easy php - Télécharger - Divers Web & Internet
- Petite amie virtuelle en français - Accueil - Intelligence artificielle
- Free nombre de sessions maximum atteint ✓ - Forum Réseaux sociaux
- Bouton php - Forum PHP
18 réponses
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
16 mai 2008 à 13:47
16 mai 2008 à 13:47
UP :)
inuman
Messages postés
19
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
16 mai 2008
16 mai 2008 à 14:00
16 mai 2008 à 14:00
Salut,
j'ai quelque petite questions:
ou stocke tu les mot de passe et login parce que si l'utilisateur doit s'enregistrer pour avoir accès a la fameuse page et a chaque fois devoir se réenregistrer pour reavoir accès a ta page a mon avis ça aura le dont d'énerver l'utilisateur.
sinon ça donne ça
tu as normalement un input dans un formulaire pour saisir le nom et le mot de passe et un bouton valider (ton formulaire doit être en méthode POST)
ça donne donc if(($_POST['login']==$nom1) &&($_POST['mdp']==$mdp1))
{
header("location: /index2.php"); /*include sert si tu redirige par exemple dans un div*/
}
else
{
header("location: /index1.php"); /*la tu reviens a ta première page
}
si tu veut contrôler que tes champ ont été replis tu contrôle avec if(!empty($_POST['login']))
qui veut dire en bon français si ton champ est pas vide alors tu fait le reste
j'ai quelque petite questions:
ou stocke tu les mot de passe et login parce que si l'utilisateur doit s'enregistrer pour avoir accès a la fameuse page et a chaque fois devoir se réenregistrer pour reavoir accès a ta page a mon avis ça aura le dont d'énerver l'utilisateur.
sinon ça donne ça
tu as normalement un input dans un formulaire pour saisir le nom et le mot de passe et un bouton valider (ton formulaire doit être en méthode POST)
ça donne donc if(($_POST['login']==$nom1) &&($_POST['mdp']==$mdp1))
{
header("location: /index2.php"); /*include sert si tu redirige par exemple dans un div*/
}
else
{
header("location: /index1.php"); /*la tu reviens a ta première page
}
si tu veut contrôler que tes champ ont été replis tu contrôle avec if(!empty($_POST['login']))
qui veut dire en bon français si ton champ est pas vide alors tu fait le reste
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
18 mai 2008 à 21:29
18 mai 2008 à 21:29
Mes mot de passe ne sont stocké nul part... En fait, c'est un tout petit site, avec genre 5 personnes, et chacune ont un Prénom, et le mot de pass est le même pour tous. C'est un site privé...
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
18 mai 2008 à 23:37
18 mai 2008 à 23:37
Bsr
Voici un petit exemple :
liste_users.php
Dedans tu ajoutes tes autres utilisateurs
index1.php
index2.php
Copie ces 3 fichiers sous le même répertoire avec les noms ci-dessus
Attention ! si tu changes le nom des pages modifies également les noms dans les includes et les redirections
Voilà
Voici un petit exemple :
liste_users.php
<?php $valid_passwords = array(); $valid_passwords["hack"] = "net"; $valid_passwords["super"] = "mario"; $valid_passwords["php"] = "php"; $valid_users = array_keys($valid_passwords); function check($user, $pass) { global $valid_passwords,$valid_users; return (in_array($user, $valid_users)) && ($pass == $valid_passwords[$user]); } ?>
Dedans tu ajoutes tes autres utilisateurs
index1.php
<?php session_start(); include("liste_users.php"); // Si demande de déconnexion explicite on efface la session if (isset($_POST['deconnexion']) && ($_POST['deconnexion']=='1')) { session_unset(); } // On teste d'abord si les identifiants sont dans la session $user = isset($_SESSION['user']) ? $_SESSION['user'] : null; $pass = isset($_SESSION['pass']) ? $_SESSION['pass'] : null; $ok = check($user,$pass); if (!$ok) { session_unset(); $user = isset($_POST['user']) ? $_POST['user'] : null; $pass = isset($_POST['pass']) ? $_POST['pass'] : null; $ok = check($user,$pass); if ($ok) { $_SESSION['user'] = $user; $_SESSION['pass'] = $pass; } } if ($ok) { // Il faut une url absolue pour la redirection $url = "http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/" . "index2.php"; header("Location: $url"); exit; } ?> <html> <body> Pour continuer veuillez d'abord vous identifiez svp <form action="<?php echo htmlentities($_SERVER['PHP_SELF']);?>" method="post"> <table> <tr> <td>Utilisateur</td> <td><input type="text" id="user" name="user" value=""></td> </tr> <tr> <td>Mot de passe</td> <td><input type="password" id="pass" name="pass" value=""></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="Connexion"></td> </tr> </table> </form> </body> </html>
index2.php
<?php session_start(); include("liste_users.php"); // On teste d'abord si les identifiants sont dans la session $user = isset($_SESSION['user']) ? $_SESSION['user'] : null; $pass = isset($_SESSION['pass']) ? $_SESSION['pass'] : null; $ok = check($user,$pass); if (!$ok) { session_unset(); // Il faut une url absolue pour la redirection $url = "http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/" . "index1.php"; header("Location: $url"); exit; } ?> <html> <body> Bienvenu <?php echo $user;?> sur l'espace sécurisé <form action="index1.php" method="post"> <input type="hidden" value="1" name="deconnexion"> <input type="submit" value="Déconnexion"> </form> </body> </html>
Copie ces 3 fichiers sous le même répertoire avec les noms ci-dessus
Attention ! si tu changes le nom des pages modifies également les noms dans les includes et les redirections
Voilà
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
19 mai 2008 à 09:40
19 mai 2008 à 09:40
Super sympa, merci a tous !!!!!!!
VIVE LE PHP !
VIVE LE PHP !
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
19 mai 2008 à 09:45
19 mai 2008 à 09:45
Attend, il y a une erreure !
"
Warning: Cannot modify header information - headers already sent by (output started at /www/bordinfo/test/protec_test/liste_users.php:1) in /www/bordinfo/test/protec_test/index1.php on line 37"
Qu'est-ce que cela signifit ?
J'ai bien modifier l'url, mais rien y change ! HELP !
"
Warning: Cannot modify header information - headers already sent by (output started at /www/bordinfo/test/protec_test/liste_users.php:1) in /www/bordinfo/test/protec_test/index1.php on line 37"
Qu'est-ce que cela signifit ?
J'ai bien modifier l'url, mais rien y change ! HELP !
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
19 mai 2008 à 17:01
19 mai 2008 à 17:01
Bjr
Que tu as envoyé autre chose qu'un header() avant la ligne 37 par ex un echo "..."
Poste la code de ta page
Que tu as envoyé autre chose qu'un header() avant la ligne 37 par ex un echo "..."
Poste la code de ta page
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
20 mai 2008 à 14:05
20 mai 2008 à 14:05
Voici le code source :
index1.php (formulaire)
index2.php (page d'arrivée)
liste_user.php
Merci d'avance pour vos réponses...
index1.php (formulaire)
<?php session_start(); include("liste_users.php"); // Si demande de déconnexion explicite on efface la session if (isset($_POST['deconnexion']) && ($_POST['deconnexion']=='1')) { session_unset(); } // On teste d'abord si les identifiants sont dans la session $user = isset($_SESSION['user']) ? $_SESSION['user'] : null; $pass = isset($_SESSION['pass']) ? $_SESSION['pass'] : null; $ok = check($user,$pass); if (!$ok) { session_unset(); $user = isset($_POST['user']) ? $_POST['user'] : null; $pass = isset($_POST['pass']) ? $_POST['pass'] : null; $ok = check($user,$pass); if ($ok) { $_SESSION['user'] = $user; $_SESSION['pass'] = $pass; } } if ($ok) { // Il faut une url absolue pour la redirection $url = "http://bordinfo.olympe-network.com/test/protec_test/" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/" . "index2.php"; header("Location: $url"); exit; } ?> <html> <body> Pour continuer veuillez d'abord vous identifiez svp <form action="<?php echo htmlentities($_SERVER['PHP_SELF']);?>" method="post"> <table> <tr> <td>Utilisateur</td> <td><input type="text" id="user" name="user" value=""></td> </tr> <tr> <td>Mot de passe</td> <td><input type="password" id="pass" name="pass" value=""></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="Connexion"></td> </tr> </table> </form> </body> </html>
index2.php (page d'arrivée)
<?php session_start(); include("liste_users.php"); // On teste d'abord si les identifiants sont dans la session $user = isset($_SESSION['user']) ? $_SESSION['user'] : null; $pass = isset($_SESSION['pass']) ? $_SESSION['pass'] : null; $ok = check($user,$pass); if (!$ok) { session_unset(); // Il faut une url absolue pour la redirection $url = "http://bordinfo.olympe-network.com/test/protec_test/" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/" . "index1.php"; header("Location: $url"); exit; } ?> <html> <body> Bienvenu <?php echo $user;?> sur l'espace sécurisé <form action="index1.php" method="post"> <input type="hidden" value="1" name="deconnexion"> <input type="submit" value="Déconnexion"> </form> </body> </html>
liste_user.php
<?php $valid_passwords = array(); $valid_passwords["hack"] = "net"; $valid_passwords["super"] = "mario"; $valid_passwords["php"] = "php"; $valid_users = array_keys($valid_passwords); function check($user, $pass) { global $valid_passwords,$valid_users; return (in_array($user, $valid_users)) && ($pass == $valid_passwords[$user]); } ?>
Merci d'avance pour vos réponses...
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
20 mai 2008 à 15:28
20 mai 2008 à 15:28
brj
T'Oh ! (_8(|)
Remplace
par
idem pour index1 et ça devrait mieux fonctionner ;-)
Je t'invite également à te documenter sur les variables superglobales renvoyées par
$_SERVER[] ici http://fr.php.net/manual/fr/reserved.variables.server.php
T'Oh ! (_8(|)
Remplace
if ($ok) { // Il faut une url absolue pour la redirection $url = "http://bordinfo.olympe-network.com/test/protec_test/" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/" . "index2.php"; header("Location: $url"); exit; }
par
if ($ok) { // Il faut une url absolue pour la redirection $url = "http://bordinfo.olympe-network.com/test/protec_test/index2.php"; header("Location: $url"); exit; }
idem pour index1 et ça devrait mieux fonctionner ;-)
Je t'invite également à te documenter sur les variables superglobales renvoyées par
$_SERVER[] ici http://fr.php.net/manual/fr/reserved.variables.server.php
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
20 mai 2008 à 17:34
20 mai 2008 à 17:34
Tjrs le même message d'erreur ! :(
HELP !
HELP !
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
20 mai 2008 à 18:22
20 mai 2008 à 18:22
Vérifie que dans chacun de tes fichiers tout au début qu'avant la balise <?php tu n'as pas laissé un ou plusieurs espaces
<?php doit être au tout début et rien d'autre avant
<?php doit être au tout début et rien d'autre avant
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
20 mai 2008 à 18:31
20 mai 2008 à 18:31
Merci php, en fait il y avai un espace devan <?php de unser_liste.php.
Tout marche, merci à tous, mais juste une derniére question (oui je suis chient), pourquoi qand les identifiants sont correct, index2.php se transforme en "http://bordinfo.olympe-network.com/test/protec_test/index2.phpbordinfo.olympe-network.com/test/protec_test/index2.php" ???
Seul index2.php devrais figurer...
Merci d'avance...
Tout marche, merci à tous, mais juste une derniére question (oui je suis chient), pourquoi qand les identifiants sont correct, index2.php se transforme en "http://bordinfo.olympe-network.com/test/protec_test/index2.phpbordinfo.olympe-network.com/test/protec_test/index2.php" ???
Seul index2.php devrais figurer...
Merci d'avance...
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
20 mai 2008 à 21:09
20 mai 2008 à 21:09
héhéhé l'erreur classique (je l'ai faite aussi au début alors hein on se moque pas non mais ! ;-)
Pour l'adresse tu dois avoir une erreur dans ton code soit au niveau de tes header("Location ...") soit dans le code de ta page index2.php dans d'autres includes dont tu te sers peut être
C'est quoi le code exact de ta page index2.php ?
Pour l'adresse tu dois avoir une erreur dans ton code soit au niveau de tes header("Location ...") soit dans le code de ta page index2.php dans d'autres includes dont tu te sers peut être
C'est quoi le code exact de ta page index2.php ?
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
20 mai 2008 à 21:24
20 mai 2008 à 21:24
Le code de index2.php ne t'aprendra pas grand chose, mais le voici :
Quand a index1.php le RE, RE, RE, RE voici :) :
Voila. Une solution ?
<?php session_start(); if(!isset($_session['login']))(include(index.php)); else exit ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Bienvenue !</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" /> </head> <body> <h1>TADA !</h1> </body> </html>
Quand a index1.php le RE, RE, RE, RE voici :) :
<?php session_start(); include("liste_users.php"); // Si demande de déconnexion explicite on efface la session if (isset($_POST['deconnexion']) && ($_POST['deconnexion']=='1')) { session_unset(); } // On teste d'abord si les identifiants sont dans la session $user = isset($_SESSION['user']) ? $_SESSION['user'] : null; $pass = isset($_SESSION['pass']) ? $_SESSION['pass'] : null; $ok = check($user,$pass); if (!$ok) { session_unset(); $user = isset($_POST['user']) ? $_POST['user'] : null; $pass = isset($_POST['pass']) ? $_POST['pass'] : null; $ok = check($user,$pass); if ($ok) { $_SESSION['user'] = $user; $_SESSION['pass'] = $pass; } } if ($ok) { // Il faut une url absolue pour la redirection $url = "http://bordinfo.olympe-network.com/test/protec_test/index2.php" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/" . "index2.php"; header("Location: $url"); exit; } ?> <html> <body> Pour continuer veuillez d'abord vous identifiez svp <form action="<?php echo htmlentities($_SERVER['PHP_SELF']);?>" method="post"> <table> <tr> <td>Utilisateur</td> <td><input type="text" id="user" name="user" value=""></td> </tr> <tr> <td>Mot de passe</td> <td><input type="password" id="pass" name="pass" value=""></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="Connexion"></td> </tr> </table> </form> </body> </html>
Voila. Une solution ?
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
20 mai 2008 à 21:32
20 mai 2008 à 21:32
Au risque de me rééééééééééééééééééééééépéter ce code ci-dessous est faux !!!!!
Il faut le remplacer par :
Si tu codes directement l'url absolue en "dur" tu n'as pas besoin de reconstruire l'url à partir de la position de la page
actuelle en utilisant les variables $_SERVER[]
Décidément t'es dur à convaincre D'Oh ! (j'adore les Simpsons)
if ($ok) { // Il faut une url absolue pour la redirection $url = "http://bordinfo.olympe-network.com/test/protec_test/index2.php" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/" . "index2.php"; header("Location: $url"); exit; }
Il faut le remplacer par :
if ($ok) { // Il faut une url absolue pour la redirection $url = "http://bordinfo.olympe-network.com/test/protec_test/index2.php"; header("Location: $url"); exit; }
Si tu codes directement l'url absolue en "dur" tu n'as pas besoin de reconstruire l'url à partir de la position de la page
actuelle en utilisant les variables $_SERVER[]
Décidément t'es dur à convaincre D'Oh ! (j'adore les Simpsons)
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
21 mai 2008 à 11:54
21 mai 2008 à 11:54
Désolé, autant pour moi... mais ya tjrs ce PB... Tu parle de quelle page ? index.php ? Si c'est le cas, ya toujours cette adresse : http://bordinfo.olympe-network.com/test/protec_test/bordinfo.olympe-network.com/test/protec_test/index2.php
Une correction ?
Une correction ?
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
21 mai 2008 à 17:37
21 mai 2008 à 17:37
Bonjour
Dans toutes les pages où tu as mis un header() supprime les références au tableau $_SERVER
et écrit directement
En remplacant ###### par le véritable nom de ta page
Maintenant si l'adresse que tu cites fonctionne (ce qui semble apparemment le cas) alors tu as dû créer ce chemin pour le moins compliqué sur le serveur de ton hébergeur autrement tu aurais une erreur page not found
Contrôle en te connectant par FTP que tous est correcte
Dans toutes les pages où tu as mis un header() supprime les références au tableau $_SERVER
et écrit directement
$url = "http://bordinfo.olympe-network.com/test/protec_test/######.php"; header("Location: $url");
En remplacant ###### par le véritable nom de ta page
Maintenant si l'adresse que tu cites fonctionne (ce qui semble apparemment le cas) alors tu as dû créer ce chemin pour le moins compliqué sur le serveur de ton hébergeur autrement tu aurais une erreur page not found
Contrôle en te connectant par FTP que tous est correcte
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
21 mai 2008 à 18:45
21 mai 2008 à 18:45
C'étai déjà comme ca... Mais bon tan pis, je vous ai tous assez emmerdé comme ça, je clot le sujet et je vérais ça plus tard.
Merci à tous...
Merci à tous...
16 mai 2008 à 13:32