Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
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 20/05/2011, 14h02   #1
Invité de passage
 
Homme Nicolas Tual
Webmaster
Inscription : mai 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Tual
Âge : 21
Localisation : France, Charente Maritime (Poitou Charente)

Informations professionnelles :
Activité : Webmaster
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2011
Messages : 6
Points : 0
Points : 0
Envoyer un message via MSN à nicolas17550
Par défaut Cookie espace membre - redirection

Bonjour,

J'ai un portail avec une page principale : index.php qui affiche le formulaire de connexion et d'inscription.
J'ai une page membre : home.php qui affiche le profil du membre.

Voici mon problème :

Je souhaiterais que lorsqu'on se connecte, on est redirigé normalement sur home.php mais que par un cookie on soit redirigé vers la page membre si on se rend sur la page index.php.
Je souhaiterais le même exemple que Facebook

Comment on créer ce cookie ?
Comment on l'intègre dans mon code source des pages php ?

Voici mon site : http://www.web-astronomie.com

Page de connexion :

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
34
35
36
37
38
39
40
41
<?
session_start(); // Pour la suite
require ("conf.php3"); //Comme d'ab
 
$pseudo = $_POST['pseudo']; //On recupère le pseudo et le pass
$pass = $_POST['password'];
 
if (!empty($pseudo) && !empty($pass)) //S'ils sont pas vident
{
        $sql = connect_sql(); //On se connecte à MySQL
 
        $reponse = mysql_query ("SELECT * FROM pdf_membre WHERE pseudo='$pseudo'"); //On recupère les infos à partir du pseudo
        $donnees = mysql_fetch_array ($reponse);
        $verif = $donnees['pass'];
        $id = $donnees['id'];
        $nom = $donnees['nom'];
        $prenom = $donnees['prenom'];
        $pseudo_sql = $donnees['pseudo'];
        $confirm = $donnees['confirm'];
 
 
        if($pass != $verif) //On verifie que le pass entré est égale à celui de la BDD, si le passe est différent
        {
        echo "<script>alert(\"Votre identifiant ou votre mot de passe est incorrect !\")</script>";
        echo '<script language="Javascript">document.location.replace("javascript&#058;history.back(1)");</script>';
        }
        elseif(!empty($confirm)) //Si le compte n'est pas activé
        {
        echo "<script>alert(\"Votre compte n\'est toujours pas activé, vérifiez votre boite email !\")</script>";
        echo '<script language="Javascript">document.location.replace("javascript&#058;history.back(1)");</script>';
        }  
        else //Sinon tout est bon
        {
        $_SESSION['pseudo'] = $pseudo_sql ; //On créé une variable session avec le pseudo
        header('Location: home.php?' . $prenom . '.' . $nom . '.' . $pseudo . ''); //On redirige vers la page d'accueil
        }
 
        mysql_close($sql); //On ferme la connection
}
 
?>
Page d'inscription :

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
session_start(); //On demarre une session
require("conf.php3"); //On insert le fichier qui contient les informations
 
$mail = htmlentities($_POST['mail']);
 
    if (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail)) //Verifie que l'email entrée n'est pas une fausse.
    {
                $chaine = "abcdefghijklmnopqrstuvwxyz0123456789";
                $confirm = str_shuffle($chaine); //On créé le code de confirmation
 
                $pseudo = htmlentities($_POST['pseudo']); //On recupère les infos
                $mdp = htmlentities($_POST['mdp']);
                $verif_mdp = htmlentities($_POST['verif_mdp']);
                $nom = htmlentities($_POST['nom']);
                $prenom = htmlentities($_POST['prenom']);
                $pays = htmlentities($_POST['pays']);
                $website = htmlentities($_POST['website']);
                $born = htmlentities($_POST['born']);
                $sexe = htmlentities($_POST['sexe']);
 
                /*On Fait la variable contenant le mail de confirmation*/
 
                $message1 = '<html><body><img src="http://www.web-astronomie.com/images/entete-mail.png"></br><br>';
                $message1 .= '<font face="Tahoma" color="#3b5998" size="2">Bonjour<b> ' . $prenom . ' ' . $nom . ' </b>et bienvenue sur<b> ' .$nom_site. '</b></br>';
                $message1 .= 'Toute l\'équipe de Web Astronomie vous remercie de votre inscription.<br><br>';
                $message1 .= 'Vos identifiants (conserver les précieusement) : <br>';
                $message1 .= '</br>';
                $message1 .= 'Votre pseudo : <b>' . $pseudo .'</b><br>';
                $message1 .= 'Votre mot de passe : <b>' . $mdp .'</b><br>';
                $message1 .= '</br>';
                $message1 .= 'Votre profil : </br>';
                $message1 .= '</br>';
                $message1 .= 'Votre mail : <b>' . $mail .'</b></br>';
                $message1 .= 'Votre nom : <b>' . $nom .'</b><br>';
                $message1 .= 'Votre prenom : <b>' . $prenom .'</b><br>';
                $message1 .= 'Votre pays : <b>' . $pays .'</b><br>';
                $message1 .= 'Votre date de naissance : <b>' . $born .'</b><br><br>';                                                                  
                $message1 .= 'Pour modifier vos infos, rendez-vous dans votre compte<br>';
                $message1 .= '</br>';
                $message1 .= 'Cliquez sur le lien ci-dessous pour activer votre compte :</br>';
                $message1 .= '</br>';
                $message1 .= '<a href="http://www.web-astronomie.com/confirm.php?login=' . str_replace(' ','%20',$pseudo) . '&confirm=' . $confirm . '">';
                $message1 .= 'Cliquez ici pour activer</a>';
                $message1 .= '</br></br>';
                $message1 .= 'Nous vous remercions de votre fidélité<br>';
                $message1 .= 'L\'équipe de <b>Web Astronomie</b></font></body></html>';
 
                $sql = connect_sql(); //On se connecte à MySQL
 
                $verification = mysql_query("SELECT COUNT(*) FROM pdf_membre WHERE pseudo='$pseudo' OR mail='$mail'") or die (mysql_error());
                $donnees = mysql_fetch_array($verification)or die (mysql_error());
 
                if($donnees['COUNT(*)'] >= 1) //On verifie que le pseudo n'existe pas déjà
                {
                        echo "<script>alert(\"Votre pseudo ou votre adresse email est déjà pris(e) !\")</script>";
                        echo '<script language="Javascript">document.location.replace("javascript&#058;history.back(1)");</script>';
                }
                else
                {      
                        if( empty($pseudo) || empty($mdp) || empty($verif_mdp) || empty($mail) || empty($nom) || empty($prenom) || empty($born) || empty($sexe)) //On verifie que les variables précédentes ne soient pas vide
                        {
                                echo "<script>alert(\"Un ou plusieurs champs ne sont pas remplis !\")</script>";
                                echo '<script language="Javascript">document.location.replace("javascript&#058;history.back(1)");</script>';
                        }
                        elseif( $mdp != $verif_mdp) //On verifie que les 2 pass sont identiques
                        {
                                        echo "<script>alert(\"Le deux mots de passe ne sont pas identiques !\")</script>";
                                        echo '<script language="Javascript">document.location.replace("javascript&#058;history.back(1)");</script>';
                        }
                        else //Si tout est bon on entre les données dans la BDD et on envoye le mail
                        {
                                mysql_query("INSERT INTO pdf_membre VALUES ('','$pseudo', '$mdp', '$mail', '$confirm', '$nom', '$prenom', '$pays', '$born', '$website', '$sexe')");
                                echo "<script>alert(\"Félicitation, vous êtes maintenant inscrit sur Web Astronomie ! Vous allez recevoir un email pour activer votre compte\")</script>";
                                echo '<script language="Javascript">document.location.replace("index.php");</script>';
                                $entete = "MIME-Version: 1.0\r\n";
                                $entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
                                $entete .= "From: Web Astronomie <$email_admin>\r\n";
                                $entete .= "Reply-To: $email_admin\r\n";
                                mail($mail,'Bienvenue sur ' .$nom_site. ' ' . $login .'' , $message1, $entete);
                        }
                }
 
                mysql_close($sql); //On se deconnecte
        }
        else //Reponse si l'adresse e-mail est une fausse
        {
                echo "<script>alert(\"Votre adresse email n\'est pas correcte !\")</script>";
                echo '<script language="Javascript">document.location.replace("javascript&#058;history.back(1)");</script>';
 
        }      
 
 
 
 
?>
nicolas17550 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 15h09   #2
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
déjà on éjecte le ".php3" c'est vieux et plus supporté.

euuu ensuite je te propose de lire avec attention un livre sur l'injection sql, celle dans tes premieres lignes n'est pas tres exploitable mais je rajouterai bien u !== au test sur le mot de passe.

le plus simple c'est de tester le tableau $_SESSION ou$_COOKIE, ça dépend ou tu veux mettre ton coockie et d'utiliser header...
Code :
1
2
3
4
5
6
 
if ( ce_hash_est_valide( $_COOKIES['hash']   ) 
{
    header("Location: $proto://$server/$file");
    exit();
}
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h19.


 
 
 
 
Partenaires

Hébergement Web