Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/11/2007, 13h20   #1
Membre régulier
 
Avatar de loopback
 
Inscription : septembre 2006
Messages : 170
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 170
Points : 75
Points : 75
Par défaut Interdire une page

Bonjour,
je ne sais pas si je poste dans la bonne section.
J'utilise une page d'identification login.php et une fois l'internaute identifié il est redirigé vers la page home.php

mais voilà, si je tappe l'url complète vers la page home.php on y a accès directement
Comment éviter ça ?
loopback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2007, 13h26   #2
Membre éclairé
 
Avatar de makmaoui
 
Développeur Web
Inscription : mai 2007
Messages : 282
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2007
Messages : 282
Points : 361
Points : 361
Salut,

utilise les variables de sessions, lors de l'identification tu créé une variable de session identification=true par exemple et au début de page home.php tu testes l'existence de cette variable pour valider que l'utilisateur est identifié. Sinon en cherchant sur le site tu devrais trouver des exemples en voici un.
makmaoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2007, 19h54   #3
Membre régulier
 
Avatar de loopback
 
Inscription : septembre 2006
Messages : 170
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 170
Points : 75
Points : 75
Aucun exemple ne marche convenablement...
loopback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2007, 10h59   #4
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
Donne nous les messages d'erreur que tu rencontres alors que l'on puisse t'aider...

Logiquement, si tu gères déjà une identification, ca ne devrait pas trop poser de problèmes.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2007, 12h21   #5
Membre chevronné
 
Avatar de LeXo
 
Inscription : janvier 2004
Messages : 1 147
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2004
Messages : 1 147
Points : 782
Points : 782
tu mets sous accolade toute ta page avec un

Code :
1
2
3
4
5
if(isset($_SESSION['iduser'])){
...
maPage
...
}
__________________
Plzzz pas de questions par MP.
LeXo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2007, 01h33   #6
Membre régulier
 
Avatar de loopback
 
Inscription : septembre 2006
Messages : 170
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 170
Points : 75
Points : 75
Je n'ai pas d'erreurs justement, je n'ai qu'un page blanche...
J'ai remarqué aussi que dans l'id de session sur le serveur il n'y a rien, il est vide.
loopback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2007, 02h07   #7
Membre du Club
 
Inscription : novembre 2006
Messages : 61
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2006
Messages : 61
Points : 42
Points : 42
Envoyer un message via MSN à gandalf76fr Envoyer un message via Skype™ à gandalf76fr
qu'as tu fais exactement, un exemple de ton code serait pas mal.

sinon :
- as tu bien pensé au session start en debut de chacune de tes pages concernées par l'identification (y compris home.php).
- et un "error_reporting(E_ALL);" en début de chaque page permetrait peut être à php d'être un peu plus bavard concernant les erreures.
gandalf76fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2007, 14h25   #8
Membre régulier
 
Avatar de loopback
 
Inscription : septembre 2006
Messages : 170
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 170
Points : 75
Points : 75
Bonjour,
j'ai bien mi le reporting (all) mais il ne m'affiche aucune erreur.
Pour savoir si les sessions marchait bien sur le système j'ai mi un petit script du site du zéro et ça marche il me transfère bien le login via session mais voilà, sur mon site je dois récupérer le login/password via une base de donnée, la récup&ration se passe bien et ça marche mais lorsque j'essai de mettre le login récupéré en session ça ne va pas.
Toutes les pages d'identification ont un include vers le fichier verif.inc.php qui se présente comme ceci:
Code :
1
2
3
4
5
6
<?php
session_start();
if(!isset($_SESSION['login'])) {
header("Location: login.php");
}
?>
je place donc un include vers cette page au début de chaque page qui a besoin d'un login de session pour être affichée, comme ceci:
Code :
include("includes/verif.inc.php");
Ma page de login est login.php et se présente comme ceci:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
session_start();
include("includes/header.php");
?>
<h2>Espace membre</h2>
<br />
<br />
Connectez-vous dans votre espace membre.
<br />
<br />
<br />
<form name="access" method="post" action="veriflogin.php">
	<table style="margin-left:auto;margin-right:auto;">
		<tr>
			<td style="text-align:right"><p>Identifiant</p></td>
			<td><b>:&nbsp;&nbsp;</b><input type="text" name="login" size="22" maxlength="20" /></td>
		</tr>
		<tr>
			<td style="text-align:right"><p>Mot de passe</p></td>
			<td><b>:&nbsp;&nbsp;</b><input type="password" name="pwd" size="22" maxlength="20" /></td>
		</tr>
	<tr valign="bottom">
	</tr> 
		<tr>
			<td ></td>
			<td><b>&nbsp;&nbsp;&nbsp;</b><input type="Submit" name="submit" value="Connexion" />
[...blablabla...]
la page qui vérifie le login est le script est "veriflogin.php" et se présente comme ceci:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
session_start();
require "includes/connect.inc.php";
 
$login = $_POST['login'];
$pwd = $_POST['pwd'];
 
$sql = "SELECT * FROM `users` WHERE Login = '".$login."' AND Password = '".md5($pwd)."'" or die('Erreur SQL : <br />'.$sql);
$query = mysql_query($sql);
$row = mysql_fetch_object($query);
 
if ($row->Login) {
    header("Location: home.php");
}
else {
    include "error3subscribe.php";
}
mysql_close($connect);
?>
et voici enfin la page surlaquelle il devrait me diriger lorsque les identifiants sont bons "home.php":
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
include("includes/verif.inc.php");
include("includes/connect.inc.php");
include("includes/menu_panel.php");
?>
<h2>Panel de gestion</h2>
<br />
<b>Bienvenue dans votre panel de gestion.</b>
<br />
<br />
Votre dernière connexion date du ...<br />
Voici les informations dont vous avez besoin pour développer votre site web:<br />
<br />
<u>Serveur FTP</u><br />
<b>Adresse :</b> <br />
<b>Login :</b> <br />
<b>Mot de passe :</b> Sauf si vous l avez modifié, il est le même que celui que vous utilisez pour le panel de gestion.<br />
<br />
<u>Serveur MySQL</u><br />
<b>Adresse :</b> <br />
<b>Login :</b> <br />
<b>Mot de passe :</b> <i>cf: FTP</i><br />
<b>Base de donnée :</b>   <br />
<br />
<u>Serveur Web</u><br />
<b>Adresse de votre site web :</b>   <br />
<p>
</p>
<br />
<br />
<?php
include("includes/footer.php");
?>
Une idée ? car lorsque je tente de m'identifier il reste sur la page de login et ne me dirige pas vers home.php !!!
comme s'il ne récupérait pas les id des sessions.
Fin bref, je sèche...
loopback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 01h02   #9
FMC
Invité régulier
 
Inscription : mai 2005
Messages : 25
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 25
Points : 9
Points : 9
J'ai peut-être regardé trop vite, mais tu n'oublierais pas simplement un session_start() sur ta page home.php ?
FMC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 11h53   #10
Membre chevronné
 
Avatar de LeXo
 
Inscription : janvier 2004
Messages : 1 147
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2004
Messages : 1 147
Points : 782
Points : 782
t'as un dossier sessions a la racine de ton serveur ?
__________________
Plzzz pas de questions par MP.
LeXo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 09h49   #11
Membre régulier
 
Avatar de loopback
 
Inscription : septembre 2006
Messages : 170
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 170
Points : 75
Points : 75
Citation:
Envoyé par LeXo Voir le message
t'as un dossier sessions a la racine de ton serveur ?
oui
c 'est résolu
loopback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2007, 09h00   #12
Membre du Club
 
Inscription : novembre 2006
Messages : 61
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2006
Messages : 61
Points : 42
Points : 42
Envoyer un message via MSN à gandalf76fr Envoyer un message via Skype™ à gandalf76fr
Euh question bète : je viens de regarder ton code.

Sur tes pasges où tu vérifie que l'utilisateur est identifié tu vérifie si $_session['login'] est définit.

Mais tu ne le définit null part dans le code que tu nous donne (il devrait être définit sur ta page vériflogin.php normalement :

Code :
1
2
3
4
5
 
if ($row->Login) {
$_SESSION['login']=$login;
    header("Location: home.php");
}
De plus, prend bien garde à vérifier et à protéger de que tu reçois de ton formulaire pour éviter les injections SQL, avec un truc du genre :
Code :
1
2
3
 
$login = mysql_real_escape_string($_POST['login']);
$pwd = mysql_real_escape_string($_POST['pwd']);
http://fr.php.net/mysql_real_escape_string
gandalf76fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h00.


 
 
 
 
Partenaires

Hébergement Web