Empecher-user-acceder-aux-fichiers-par-url
BapPro
Messages postés
46
Date d'inscription
Statut
Membre
Dernière intervention
-
BapPro Messages postés 46 Date d'inscription Statut Membre Dernière intervention -
BapPro Messages postés 46 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voulant empecher aux users d'acceder par url aux pages qui doivent etre vues qu'apres avoir s'identifier , j'ai fini par trouver ces codes que j'ai mis a l'entete de la page qui s'appelle timesheet.php que je ne veux pas q'on puisse l'acceder par l'url sans s'identifier d'abord:
la patie html
-----
-----
Comme resultat:
1- si je tape la page timesheet.php dans l'url
j'ai bien le message qui s'affiche avec le lien qui envoie vers la page d'idendification
'Vous devez vous connecter.'
2- Mais quand je m'identifie correctement je recois toujours le meme message tandis que je voudrais avoir la page timesheet.php
je ne sais pas encore ce que je dois faire pour que cela fonctionne correctement
je vous poste aussi ma page de traitement
pour vous dire j'aimerais ni la page timesheet.php et manager.php ne peuvent pas etre acceder par l'url qu'apres l'identification du user. A part cela les codes fonctionnent correctement.
Je sollicite votre aide, un peu de patience pour les novices...
Merci
Voulant empecher aux users d'acceder par url aux pages qui doivent etre vues qu'apres avoir s'identifier , j'ai fini par trouver ces codes que j'ai mis a l'entete de la page qui s'appelle timesheet.php que je ne veux pas q'on puisse l'acceder par l'url sans s'identifier d'abord:
<?php if ((!isset($_SESSION['username'])) || ($_SESSION['username'] == '')) {// La variable $_SESSION['username'] n'existe pas, ou bien elle est vide // <=> la personne ne s'est PAS connectée echo '<p>Vous devez vous <a href="index.php">connecter</a>.</p>'."\n"; exit(); } ?>
la patie html
-----
-----
Comme resultat:
1- si je tape la page timesheet.php dans l'url
j'ai bien le message qui s'affiche avec le lien qui envoie vers la page d'idendification
'Vous devez vous connecter.'
2- Mais quand je m'identifie correctement je recois toujours le meme message tandis que je voudrais avoir la page timesheet.php
je ne sais pas encore ce que je dois faire pour que cela fonctionne correctement
je vous poste aussi ma page de traitement
<?php $conn= mysqli_connect('', '', ''); mysqli_query($conn, "USE qbreplace"); if(strlen($_POST['username'])>0 && strlen($_POST['password'])>0) { $u=$_POST['username']; $p=$_POST['password']; $req =mysqli_query($conn, 'select * from user'); while($d=mysqli_fetch_array($req)) { if($d['username']==$u && $d['password']==$p) { session_start(); $_SESSION['username']=$u; $_SESSION['password']=$p; if($d['Type']=='Manager'){ header('Location:manager.php'); } else if($d['Type']=='user'){ header('location:timesheet.php'); } mysqli_free_result($req); } else { header('location:login_view1.php'); } } } else { header('location:login_view2.php'); } ?>
pour vous dire j'aimerais ni la page timesheet.php et manager.php ne peuvent pas etre acceder par l'url qu'apres l'identification du user. A part cela les codes fonctionnent correctement.
Je sollicite votre aide, un peu de patience pour les novices...
Merci
A voir également:
- Empecher-user-acceder-aux-fichiers-par-url
- Url - Guide
- Facebook user - Forum Facebook
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
- The requested url was rejected. please consult with your administrator. ✓ - Forum Réseaux sociaux
6 réponses
Il est plus facile de faire ainsi ..
j'ai crée pour une société une page de sécurité ou les membres ne peuvent pas avoir accès au même page que les administrateurs, elle est aussi sécurisé au niveau des URL au cas ou l'utilisateur non connecté ou celui qui à pas le droit voudrais y avoir accès.
si la personne n'as pas le bon identifiant elle ne peut pas accéder à la page que tu demandes en URL
ensuite tu peux adresser un level pour les utilisateurs et les admin
et ainsi tu fais le même test après
j'ai crée pour une société une page de sécurité ou les membres ne peuvent pas avoir accès au même page que les administrateurs, elle est aussi sécurisé au niveau des URL au cas ou l'utilisateur non connecté ou celui qui à pas le droit voudrais y avoir accès.
if (!isset($_SESSION['id']))
{
header("Location: index.php");
exit;
}
si la personne n'as pas le bon identifiant elle ne peut pas accéder à la page que tu demandes en URL
ensuite tu peux adresser un level pour les utilisateurs et les admin
et ainsi tu fais le même test après
if ($data['level'] == le nombre que tu veux)
{
header("Location: index_membre");
}
Merci bcp pour la reponse, bien que je ne sais pas si j'ai bien plasse les codes.
Je les ai place en tete de la page (timesheet.php) que je ne veux pas que le user puisse acceder par l'url sans se connecter d'abord.
en tapant l'adresse du site suivi de 'timesheet.php' dans l'url je suis bien redirige vers la page index.php qui est la page de connection. Mais lorsque je m'identifie dans la page de connection je ne suis pas dirige vers la page timesheet.php mais plustot vers la meme page......
Il y des trucs qui me manquent bien sur!
voici la page timesheet.php
<?php
session_start();
if (!isset($_SESSION['id']))
{
header("Location: index.php");
exit;
}
?>
le reste de la page
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
------
Je les ai place en tete de la page (timesheet.php) que je ne veux pas que le user puisse acceder par l'url sans se connecter d'abord.
en tapant l'adresse du site suivi de 'timesheet.php' dans l'url je suis bien redirige vers la page index.php qui est la page de connection. Mais lorsque je m'identifie dans la page de connection je ne suis pas dirige vers la page timesheet.php mais plustot vers la meme page......
Il y des trucs qui me manquent bien sur!
voici la page timesheet.php
<?php
session_start();
if (!isset($_SESSION['id']))
{
header("Location: index.php");
exit;
}
?>
le reste de la page
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
------
Logique ce qui suis dois se retrouver théoriquement dans la page connexion.php
A+
$sql = "SELECT * FROM users WHERE Login='".$_POST['Login']."'";
$req = $DB->query($sql) or die ("Erreur SQL");
$data = $req->fetch();
if($data['id'] == 'root')
{
header("location: index.php");
}
A+
J'ai essaye de placer les codes que vous m'avez poste, je ne trouve pas encore de resultat. Un peu de patience c'est ca les novices!
pour m'aider a sortir de ce labyrinthe je propose de poster les codes necessaires et comme ca je me ferai mieux indiquer.
1- page de connection (index.php)
<form id='login' action='traitement.php' method='post' accept-charset='UTF-8'>
<fieldset >
<input type='hidden' name='submitted' id='submitted' value='1'/>
<label for='username' >UserName*:</label>
<input type='text' name='username' id='username' maxlength="50" />
<label for='password' >Password*:</label>
<input type='password' name='password' id='password' maxlength="50" />
<input type='submit' name='Submit' value='Submit' />
2- page de traitement
<?php
$conn= mysqli_connect('', '', '');
mysqli_query($conn, "USE qbreplace");
if(strlen($_POST['username'])>0 && strlen($_POST['password'])>0)
{
$u=$_POST['username'];
$p=$_POST['password'];
$req =mysqli_query($conn, 'select * from user');
while($d=mysqli_fetch_array($req))
{
if($d['username']==$u && $d['password']==$p)
{
session_start();
$_SESSION['username']=$u;
$_SESSION['password']=$p;
if($d['Type']=='Manager'){
header('Location:manager.php');
}
else if($d['Type']=='user'){
header('location:timesheet.php');
}
mysqli_free_result($req);
}
else
{
header('location:login_view1.php');
}
}
}
else{
header('location:login_view2.php');
}
?>
3- une page (timesheet.php) que le user doit acceder qu'apres avoir s'identifie s'il essaie par l'url il doit se diriger automatiquement vers la page de connection index.php
----
----
----
pour m'aider a sortir de ce labyrinthe je propose de poster les codes necessaires et comme ca je me ferai mieux indiquer.
1- page de connection (index.php)
<form id='login' action='traitement.php' method='post' accept-charset='UTF-8'>
<fieldset >
<input type='hidden' name='submitted' id='submitted' value='1'/>
<label for='username' >UserName*:</label>
<input type='text' name='username' id='username' maxlength="50" />
<label for='password' >Password*:</label>
<input type='password' name='password' id='password' maxlength="50" />
<input type='submit' name='Submit' value='Submit' />
2- page de traitement
<?php
$conn= mysqli_connect('', '', '');
mysqli_query($conn, "USE qbreplace");
if(strlen($_POST['username'])>0 && strlen($_POST['password'])>0)
{
$u=$_POST['username'];
$p=$_POST['password'];
$req =mysqli_query($conn, 'select * from user');
while($d=mysqli_fetch_array($req))
{
if($d['username']==$u && $d['password']==$p)
{
session_start();
$_SESSION['username']=$u;
$_SESSION['password']=$p;
if($d['Type']=='Manager'){
header('Location:manager.php');
}
else if($d['Type']=='user'){
header('location:timesheet.php');
}
mysqli_free_result($req);
}
else
{
header('location:login_view1.php');
}
}
}
else{
header('location:login_view2.php');
}
?>
3- une page (timesheet.php) que le user doit acceder qu'apres avoir s'identifie s'il essaie par l'url il doit se diriger automatiquement vers la page de connection index.php
----
----
----
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon je vais faire simple ;) je te met des parties de code que j'ai faite à l'époque pour la société pour laquelle j'ai fait ce travail sers toi en et rajoute ce qu'il faut si ça va toujours pas tu me dis les erreurs que tu as et on verra ;) !
INDEX.PHP
CONNEXION.PHP
CONFIG.PHP
En ce qui concerne tout userpateur voulant venir sur ta page sans être co
Voilà ;) Mais personnellement sur internet, youtube tu as des tuto tout fait qui t'explique bien ça car à l'époque c'est ce qui m'avais servis ;) !
INDEX.PHP
<?php
session_start();
if(isset($_SESSION['id']))
{
if($_SESSION['Login'] == 'root')
{
header("Location: index_securise.php");
exit;
}
header("Location: index_membre.php");
exit;
}
?>
HTML
<form method="post" action="connexion.php" class="login">
<p>
<label for="login">Login:</label>
<input type="text" name='Login'>
</p>
<p>
<label for="password">Password : </label>
<input type="password" name='Password' >
</p>
<p class="login-submit">
<button type="submit" class="login-button">Se connecter'</button>
</p>
CONNEXION.PHP
<?php
session_start();
include("config.php");
if(!empty($_POST['Login']) && !empty($_POST['Password']))
{
$_POST['Login'] = htmlentities($_POST['Login'],ENT_QUOTES);
$_POST['Password'] = htmlentities($_POST['Password'],ENT_QUOTES);
$sql = "SELECT * FROM users WHERE Login='".$_POST['Login']."'";
$req = $DB->query($sql) or die ("Erreur SQL");
$data = $req->fetch();
if(!empty($data['Login']))
{
$_POST['Password'] = md5($_POST['Password']);
if($data['Password'] == $_POST['Password'])
{
if($data['Level'] == '10')
{
session_start();
$_SESSION['Login'] = $_POST['Login'];
$_SESSION['id'] = $data['id'];
$_SESSION['Level'] = $data['Level'];
header("location: index_securise.php");
....
CONFIG.PHP
<?php
try
{
$DB= new PDO('mysql:host=localhost;dbname=lenom','tonid','tonmdp');
$DB->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "Base de données indisponible !!! ";
}
if(isset($_SESSION['id']))
{
if(!isset($_SESSION['Login']))
{
header("Location: index_membre.php");
exit;
}
}
?>
En ce qui concerne tout userpateur voulant venir sur ta page sans être co
<?php
include ("config.php");
session_start();
if(!isset($_SESSION['id']))
{
header("Location: index.php");
exit;
}
Voilà ;) Mais personnellement sur internet, youtube tu as des tuto tout fait qui t'explique bien ça car à l'époque c'est ce qui m'avais servis ;) !