Galeries photos sécurisés
Fermé
tophe_33
Messages postés
1
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
23 juin 2009
-
23 juin 2009 à 10:28
Ozimandias Messages postés 502 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 - 1 juil. 2009 à 09:34
Ozimandias Messages postés 502 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 - 1 juil. 2009 à 09:34
A voir également:
- Galeries photos sécurisés
- Partage de photos - Guide
- Toutes mes photos - Guide
- Doublons photos - Guide
- Galerie de photos windows live - Télécharger - Albums photo
- Partager des photos avec google - Guide
3 réponses
Ozimandias
Messages postés
502
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
10 mars 2010
46
23 juin 2009 à 10:38
23 juin 2009 à 10:38
Tu fais une variable de session qui contient ton type d'accès. Ensuite tu fait un test pour savoir qu'elle galerie afficher et si test = faux pour toutes tes galeries alors redirection vers la page d'accueil.
En fait j'ai fait une ouverture de ession et j'ai fait en suite une variable au niveau du code entré.
Voici le code de ma page d'accès :
<?php
session_start();
$passe = $HTTP_POST_VARS["passe"];
$id = $HTTP_POST_VARS["id"];
// on se connecte à la base
mysql_connect("");
mysql_select_db("");
//on teste le login et le pass dans la base
$sql = "SELECT id FROM acces WHERE passe='$passe'";
$result = @mysql_query($sql);
$nb = @mysql_num_rows($result);
if ($nb==1)
{
//dans ce cas le mot de passe est valide
// on etablie une variable de session, par exemple $adminconnecte et on lui affecte la valeur "OK"
$adminconnecte = "OK";
// On enregistre cette variable en session :
session_register("adminconnecte");
// On peut aller sur l'espace membre
header("Location: ../mariages/stef/index.html");
}
elseif ($nb==2)
{
//dans ce cas le mot de passe est valide
// on etablie une variable de session, par exemple $adminconnecte et on lui affecte la valeur "OK"
$adminconnecte = "OK";
// On enregistre cette variable en session :
session_register("adminconnecte");
// On peut aller sur l'espace membre
header("Location: ../LmClassic2008/index.html");
}
else
{
//sinon on retourne sur la page de connection
echo "<center>Votre login ou votre mot de passe est incorrect.<br> Vous allez etre redirigé automatiquement vers la page d'identification</center>";
echo"<META HTTP-EQUIV='refresh' CONTENT='5; URL=login.php'>";
}?>
cela marche très bien mais que pour le premier mot de passe mais pas pour le second.Autre question : n'est il pas plus simple aussi de donner l'adresse de la page à ouvrir directement dans la bas de donnée ? Cela afin d'éviter de rajouter des variable dans le fichi d'accès chaque fois que je rajoute une galerie.
Voici le code de ma page d'accès :
<?php
session_start();
$passe = $HTTP_POST_VARS["passe"];
$id = $HTTP_POST_VARS["id"];
// on se connecte à la base
mysql_connect("");
mysql_select_db("");
//on teste le login et le pass dans la base
$sql = "SELECT id FROM acces WHERE passe='$passe'";
$result = @mysql_query($sql);
$nb = @mysql_num_rows($result);
if ($nb==1)
{
//dans ce cas le mot de passe est valide
// on etablie une variable de session, par exemple $adminconnecte et on lui affecte la valeur "OK"
$adminconnecte = "OK";
// On enregistre cette variable en session :
session_register("adminconnecte");
// On peut aller sur l'espace membre
header("Location: ../mariages/stef/index.html");
}
elseif ($nb==2)
{
//dans ce cas le mot de passe est valide
// on etablie une variable de session, par exemple $adminconnecte et on lui affecte la valeur "OK"
$adminconnecte = "OK";
// On enregistre cette variable en session :
session_register("adminconnecte");
// On peut aller sur l'espace membre
header("Location: ../LmClassic2008/index.html");
}
else
{
//sinon on retourne sur la page de connection
echo "<center>Votre login ou votre mot de passe est incorrect.<br> Vous allez etre redirigé automatiquement vers la page d'identification</center>";
echo"<META HTTP-EQUIV='refresh' CONTENT='5; URL=login.php'>";
}?>
cela marche très bien mais que pour le premier mot de passe mais pas pour le second.Autre question : n'est il pas plus simple aussi de donner l'adresse de la page à ouvrir directement dans la bas de donnée ? Cela afin d'éviter de rajouter des variable dans le fichi d'accès chaque fois que je rajoute une galerie.
Ozimandias
Messages postés
502
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
10 mars 2010
46
1 juil. 2009 à 09:34
1 juil. 2009 à 09:34
$HTTP_POST_VARS["passe"] est remplacé par $_POST['passe'] dans les dernières versions de php.
Ci dessous, tu teste si le mot de passe existe dans ta base. Ce n'est pas très sécuritaire, en général, une connection est caractérisée par un couple login mot de passe et pas que par un mot de passe.
//on teste le login et le pass dans la base
$sql = "SELECT id FROM acces WHERE passe='$passe'";
$result = @mysql_query($sql);
$nb = @mysql_num_rows($result);
cela marche très bien mais que pour le premier mot de passe mais pas pour le second.Autre question : n'est il pas plus simple aussi de donner l'adresse de la page à ouvrir directement dans la bas de donnée ? Cela afin d'éviter de rajouter des variable dans le fichi d'accès chaque fois que je rajoute une galerie.
Je pense effectivement que ce serait plus simple.
Ton test avec num_rows ne me parait pas très logique. Un utilisateur peut-il avoir plusieurs comptes?
J'ai un peu de temps alors:
Dans ta base de données:
1 table galerie avec le nom de tes images dedans
2 table user avec nom et mot de passe + id des galeries accessibles (séparés par des , par exemple)
dans ton code php:
C'est comme ça que j'aurai fait, il doit bien sur y avoir une tétra chiée de solutions différentes. Ce n'est qu'une ébauche, en espérant t'avoir aidé...
Ci dessous, tu teste si le mot de passe existe dans ta base. Ce n'est pas très sécuritaire, en général, une connection est caractérisée par un couple login mot de passe et pas que par un mot de passe.
//on teste le login et le pass dans la base
$sql = "SELECT id FROM acces WHERE passe='$passe'";
$result = @mysql_query($sql);
$nb = @mysql_num_rows($result);
cela marche très bien mais que pour le premier mot de passe mais pas pour le second.Autre question : n'est il pas plus simple aussi de donner l'adresse de la page à ouvrir directement dans la bas de donnée ? Cela afin d'éviter de rajouter des variable dans le fichi d'accès chaque fois que je rajoute une galerie.
Je pense effectivement que ce serait plus simple.
Ton test avec num_rows ne me parait pas très logique. Un utilisateur peut-il avoir plusieurs comptes?
J'ai un peu de temps alors:
Dans ta base de données:
1 table galerie avec le nom de tes images dedans
2 table user avec nom et mot de passe + id des galeries accessibles (séparés par des , par exemple)
dans ton code php:
// Ouverture de session session_start(); $passe = $_POST["passe"]; $id = $_POST["id"]; $_session['user_log'] = 'non'; // on se connecte à la base mysql_connect(""); mysql_select_db(""); //on teste le login et le pass dans la base $sql = "SELECT * FROM acces WHERE id ='$id'"; $result = @mysql_query($sql); $rangee = @mysql_fetch_array($result); if ($rangee['passe'] == $passe){ $_session['user_log'] = $rangee['id']; } else { $_session['user_log'] = 'non'; } if ($_session['user_log'] == 'non'){ //sinon on retourne sur la page de connection echo "<center>Votre login ou votre mot de passe est incorrect.<br> Vous allez etre redirigé automatiquement vers la page d'identification</center>"; echo"<META HTTP-EQUIV='refresh' CONTENT='5; URL=login.php'>"; }else{ // Ici, tu renvoie vers lune page qui liste les galeries accéssibles pour l'utlisateur dont l'id est égale à $_session['user_log'] }
C'est comme ça que j'aurai fait, il doit bien sur y avoir une tétra chiée de solutions différentes. Ce n'est qu'une ébauche, en espérant t'avoir aidé...