IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Cookie espace membre - redirection


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    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 : 4
    Points
    4
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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: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: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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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: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: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: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:history.back(1)");</script>';
     
            }      
     
     
     
     
    ?>

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    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 : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

Discussions similaires

  1. Espace membres V3 Problème de redirection
    Par maxitube dans le forum Langage
    Réponses: 6
    Dernier message: 05/08/2014, 17h31
  2. Espace membre et redirection
    Par laetirom1 dans le forum Langage
    Réponses: 2
    Dernier message: 24/11/2013, 18h23
  3. [Cookies] espace membre en php
    Par Carnage76 dans le forum Langage
    Réponses: 10
    Dernier message: 20/03/2008, 22h16
  4. redirection espace membre
    Par poula dans le forum Langage
    Réponses: 2
    Dernier message: 25/04/2007, 10h45
  5. Redirection personnalisée espace membre
    Par vinche999 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 28/01/2006, 22h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo