Connexion

Eléphanteau du PHP | 38 Messages

07 nov. 2008, 20:01

Bonjour, j'essaye en ce moment d'etablir une connection sur mon site.
J'ai donc quelques questions avant de montrer le script:
-si je veux afficher des pages seulement au personnes connecté, comment faire?

Et quelqu'un pourrait me faire un petit topo rapide sur la connection (j'ai trouvé peu de tuto dessus). J'aimerais avoir une idée plus claire de son fonctionnement..


Je me suis inspiré d'un script déjà fait sur le sdz:
 <?php
 
                       //Connection:
 
mysql_connect("localhost", "root", "");
mysql_select_db("aranhil");
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe']));
//Je crypte le mot de passe
$mot_de_passe = sha1($mot_de_passe);
$nbre = mysql_query("SELECT COUNT(*) AS exist FROM inscription WHERE pseudo='$pseudo'");
$donnee_spseudo = mysql_fetch_array($nbre);
if($donnees_pseudo['exist'] != 0) //si le pseudo existe
{
$quete = mysql_query("SELECT * FROM inscription WHERE pseudo='$pseudo'");
$donnees_mdp = mysql_fetch_array($quete);
if($donnes_mdp == $infos['mot_de_passe'])
{
//Que mettre ici????
}
else //Si ce n'est pas le bon couple pseudo/mdp
{
echo 'Vous n\'avez pas rentré les bons identifiants';
}
}

?>
 <div id="connexion">
 
 <form method="post" action="index.php">                                       <!--  Je crée le formulaire de connexion -->

            <p>
                <strong> Votre pseudo :</strong> <br />
                <input type="text" name="pseudo" value="" maxlength="20" /><br /> 
                <strong>Votre mot de passe:</strong>  <br />
				<input type="text" name="mot_de_passe" value=""/>
                

<br /><br />
                <input type="submit" name="Send" value="se connecter" />  
                </p>
 
 

 </div>
En sachant que je suis sur index.php, où emener la connexion? je doit mettre quoi pour action? Une autre page certe, mais a t'elle un fonctionnement particulier?
Modifié en dernier par tghpow le 08 nov. 2008, 21:42, modifié 1 fois.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

07 nov. 2008, 20:05

:arrow: http://www.phpdebutant.org/article47.php

Le tuto date un peu mais le principe reste le même. Il te suffit d'ajouter les protections contre les injections SQL que tu as mis dans ton code.

Eléphanteau du PHP | 38 Messages

07 nov. 2008, 20:11

merci de ta reponse, je vais tous de suite voir ca


edit:Merci maintenant je sais comment contrôle les accés aux pages securisés.

Mais concernant le script que j'ai est t'il bon?
Il ne manque rien?


edit2:
j'ai corrigé quelques trucs.
Ca devient ca:


<?php
 
                       //Connection:
 
mysql_connect("localhost", "root", "");
mysql_select_db("aranhil");
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe']));
//Je crypte le mot de passe
$mot_de_passe = sha1($mot_de_passe);
$nbre = mysql_query("SELECT COUNT(*) AS exist FROM inscription WHERE pseudo='$pseudo'");
$donnees_pseudo = mysql_fetch_array($nbre);
if($donnees_pseudo['exist'] != 0) //si le pseudo existe
{
$quete = mysql_query("SELECT * FROM inscription WHERE pseudo='$pseudo'");
$donnees_mdp = mysql_fetch_array($quete);
if($donnes_mdp == $infos['mot_de_passe'])
{
echo 'félicitation vous êtes connectés!';
}
else //Si ce n'est pas le bon couple pseudo/mdp
{
echo 'Vous n\'avez pas rentré les bons identifiants';
}
}

?>
 <div id="connexion">
 
 <form method="post" action="index.php">                                       <!--  Je crée le formulaire de connexion -->

            <p>
                <strong> Votre pseudo :</strong> <br />
                <input type="text" name="pseudo" value="" maxlength="20" /><br /> 
                <strong>Votre mot de passe:</strong>  <br />
				<input type="text" name="mot_de_passe" value=""/>
                

<br /><br />
                <input type="submit" name="Send" value="se connecter" />  
                </p>
 
 

 </div>
Je pioche dans inscription, là où j'ai enregistré les données quand on s'inscrit (logique^^).

Mais je comprend pas, même si j'ecrit rien, ou n'importe quoi dans pseudo et mot_de_passe les messages d'erreur ne s'affiche pas.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

07 nov. 2008, 22:53

$donnees_mdp = mysql_fetch_array($quete); 
if($donnes_mdp == $infos['mot_de_passe']) 
Des soucis à ce niveau.

- faute d'orthographe sur donneEs

- le if doit plutôt ressembler à if($donnees_mdp['ton_champ'] == $infos['mot_de_passe'])

- d'où sort $infos ? Tu ne devrais pas plutôt utiliser if ($donnes_mdp['ton_champ'] == sha1($mot_de_passe)) ?

- évite de faire une sélection avec *, spécifie plutôt tous les champs séparés par des virgules.

ViPHP
AB
ViPHP | 5818 Messages

08 nov. 2008, 06:06

Je vois pas pourquoi tu fais deux requêtes, une pour compter le nombre de lignes répondant à pseudo = $_POST['pseudo'], et une autre pour vérifier le mot de passe.

En une seule requête tu peux faire SELECT * FROM inscription WHERE pseudo='$pseudo' AND mot_de_passe='$mot_de_passe.

Sinon pour le principe tu peux aussi aller voir ce tuto http://www.phpfrance.com/forums/voir_sujet-242539.php

Eléphanteau du PHP | 38 Messages

08 nov. 2008, 11:33

bonjour et merci de votre aide.

Voilà ce que j'ai fait:
 <?php
 
                       //Connection:
 
mysql_connect("localhost", "root", "");
mysql_select_db("aranhil");
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe']));
//Je crypte le mot de passe
$mot_de_passe = sha1($mot_de_passe);
$reponse = mysql_query("SELECT * FROM inscription WHERE pseudo='$pseudo' AND mot_de_passe='$mot_de_passe'");
$donnees = mysql_fetch_array($reponse);
if($donnees['exist'] != 0)  //si le pseudo existe
{
if($donnees_mdp['mot_de_passe'] == sha1('mot_de_passe'))
{
echo 'félicitation vous êtes connectés!';
}
else //Si ce n'est pas le bon couple pseudo/mdp
{
echo 'Vous n\'avez pas rentré les bons identifiants';
}
}

?>
le formulaire:



Maintenant, j'ai fait les test suivant:
-j'ecris rien: recharche la page
-j'ecris n'importe quoi: recharge la page
-j'ecris le bon pseudo et mot de passe: recharge le page

Il n'y apparaît aucune erreur.

je vous donne la table ca vous aidera peut être:

id int(11) auto_increment primaire
pseudo varchar(20) latin1_swedish_ci
mot_de_passe text latin1_swedish_ci
email text latin1_swedish_ci
<div id="connexion">
 
 <form method="post" action="#">                                       <!--  Je crée le formulaire de connexion -->

            <p>
                <strong> Votre pseudo :</strong> <br />
                <input type="text" name="pseudo" value="" maxlength="20" /><br /> 
                <strong>Votre mot de passe:</strong>  <br />
				<input type="text" name="mot_de_passe" value=""/>
                

<br /><br />
                <input type="submit" name="Send" value="se connecter" />  
                </p>
 
 

 </div>

ViPHP
AB
ViPHP | 5818 Messages

08 nov. 2008, 13:48

Bon spécialement pour toi j'ai complété le script du tuto d'inscription par un script de connexion (en bas du tuto) http://www.phpfrance.com/forums/voir_sujet-242539.php

Le script est fonctionnel (suffit de faire un copié-collé) pour peu que tu aies créé la table "membre" comme indiqué et remplacé les lignes "A MODIFIER" par tes valeurs.

Eléphanteau du PHP | 38 Messages

08 nov. 2008, 18:59

Merci :oops:
Au passage trés bon tuto.
Voici ce que j'ai fait:


page principal:
<?php

/* Création d'une fonction - utilisée dans la récupération des variables - qui teste la configuration get_magic_quotes_gpc du serveur.
Si oui, supprime avec la fonction stripslashes les antislashes "\" insérés dans les chaines de caractère des variables gpc (GET, POST, COOKIE) */
function Verif_magicquotes ($chaine) 
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);

return $chaine;
} 

// Initialisation du message de réponse
$message = null;


// Si le formulaire est envoyé
if (isset($_POST['pseudo'])) 
{

    /* Récupération des variables issues du formulaire
    Teste l'existence les données post en vérifiant qu'elles existent, qu'elles sont non vides et non composées uniquement d'espaces.
    (Ce dernier point est facultatif et l'on pourrait se passer d'utiliser la fonction trim())
    En cas de succès, on applique notre fonction Verif_magicquotes pour (éventuellement) nettoyer la variable */
    $pseudo = (isset($_POST['pseudo']) && trim($_POST['pseudo']) != '')? Verif_magicquotes($_POST['pseudo']) : null;
    $mot_de_passe = (isset($_POST['mot_de_passe']) && trim($_POST['mot_de_passe']) != '')? Verif_magicquotes($_POST['mot_de_passe']) : null;
    

    // Si $pseudo et $mot_de_passe différents de null
    if(isset($pseudo,$mot_de_passe)) 
    {
      $mot_de_passe = sha1($mot_de_passe);
      mysql_connect("localhost", "root", "")or die(mysql_error());

      mysql_select_db("aranhil")or die(mysql_error());
    
         // Indique à mySql de travailler en UTF-8 (par défaut mySql risque de travailler au standard ISO-8859-1)
         mysql_query("SET NAMES 'utf8'");
    
         // Préparation des données pour les requêtes à l'aide de la fonction mysql_real_escape_string
         $pseudo = mysql_real_escape_string($pseudo);
         $mot_de_passe = mysql_real_escape_string($pass);

        $requete = "SELECT * FROM inscription WHERE pseudo = '".$pseudo."' AND mot_de_passe = '".$mot_de_passe."'";  
    
         // Exécution de la requête
         $req_exec = mysql_query($requete) or die(mysql_error());
    
         // Création du tableau associatif du résultat
         $resultat = mysql_fetch_assoc($req_exec); 

         // Les valeurs (si elles existent) sont retournées dans le tableau $resultat; 
         if (isset($resultat['pseudo'],$resultat['mot_de_passe']))  
               {
               
                 session_start();
                 $_SESSION['pseudo'] = $pseudo;
            
                 
                 $message = 'Bonjour '.htmlspecialchars($_SESSION['login']).' <a href = "general.php">Cliquez ici pour vous connecter</a>';
                }
                else
                {   // Le pseudo ou le mot de passe sont incorrect
                $message = 'Le pseudo ou le mot de passe sont incorrect';
                } 

    }
    else 
    {  //au moins un des deux champs "pseudo" ou "mot de passe" n'a pas été rempli
    $message = 'Les champs Pseudo et Mot de passe doivent être remplis.';
    }
}


?>


Include connectionphp.php
<?php // Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1)
header('Content-type: text/html; charset=UTF-8');

/* Création d'une fonction - utilisée dans la récupération des variables - qui teste la configuration get_magic_quotes_gpc du serveur.
Si oui, supprime avec la fonction stripslashes les antislashes "\" insérés dans les chaines de caractère des variables gpc (GET, POST, COOKIE) */
function Verif_magicquotes ($chaine) 
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);

return $chaine;
} 

// Initialisation du message de réponse
$message = null;


// Si le formulaire est envoyé
if (isset($_POST['pseudo'])) 
{

    /* Récupération des variables issues du formulaire
    Teste l'existence les données post en vérifiant qu'elles existent, qu'elles sont non vides et non composées uniquement d'espaces.
    (Ce dernier point est facultatif et l'on pourrait se passer d'utiliser la fonction trim())
    En cas de succès, on applique notre fonction Verif_magicquotes pour (éventuellement) nettoyer la variable */
    $pseudo = (isset($_POST['pseudo']) && trim($_POST['pseudo']) != '')? Verif_magicquotes($_POST['pseudo']) : null;
    $pass = (isset($_POST['mot_de_passe']) && trim($_POST['mot_de_passe']) != '')? Verif_magicquotes($_POST['mot_de_passe']) : null;
    

    // Si $pseudo et $mot_de_passe différents de null
    if(isset($pseudo,$mot_de_passe)) 
    {
         
      mysql_connect("localhost", "root", "")or die(mysql_error());

      mysql_select_db("aranhil")or die(mysql_error());
    
         // Indique à mySql de travailler en UTF-8 (par défaut mySql risque de travailler au standard ISO-8859-1)
         mysql_query("SET NAMES 'utf8'");
    
         // Préparation des données pour les requêtes à l'aide de la fonction mysql_real_escape_string
         $pseudo = mysql_real_escape_string($pseudo);
         $mot_de_passe = mysql_real_escape_string($pass);

        $requete = "SELECT * FROM inscription WHERE pseudo = '".$pseudo."' AND mot_de_passe = '".$mot_de_passe."'";  
    
         // Exécution de la requête
         $req_exec = mysql_query($requete) or die(mysql_error());
    
         // Création du tableau associatif du résultat
         $resultat = mysql_fetch_assoc($req_exec); 

         // Les valeurs (si elles existent) sont retournées dans le tableau $resultat; 
         if (isset($resultat['pseudo'],$resultat['mot_de_passe']))  
               {
               
                 session_start();
                 $_SESSION['pseudo'] = $pseudo;
            
                 
                 $message = 'Bonjour '.htmlspecialchars($_SESSION['login']).' <a href = "general.php">Cliquez ici pour vous connecter</a>';
                }
                else
                {   // Le pseudo ou le mot de passe sont incorrect
                $message = 'Le pseudo ou le mot de passe sont incorrect';
                } 

    }
    else 
    {  //au moins un des deux champs "pseudo" ou "mot de passe" n'a pas été rempli
    $message = 'Les champs Pseudo et Mot de passe doivent être remplis.';
    }
}


?>
connectionxhtml.php:
<div id = "connexion">
    <form action = "#" method="post">
    <p><label for = "pseudo">Pseudo : </label><input type="text" name="pseudo" id="pseudo" /></p>
    <p><label for = "mot_de_passe">Mot de passe : </label><input type="password" name="mot_de_passe" id="mot_de_passe" /></p>
    <p><input type="submit" value="Se connecter" id = "valider" /></p>
    </form>
    <p id = "message"><?php if(isset($message)) echo $message ?></p>
</div>
</body>
</html> 


J'ai beau mettre les bon pseudo/mot_de_passe il affiche le message d'erreur:
Le pseudo ou le mot de passe sont incorrect


pourquoi?



EDIT: j'ai trouvé
il fallait remplacé:
$mot_de_passe = mysql_real_escape_string($pass); par $mot_de_passe = mysql_real_escape_string($mot_de_passe);




Merci a vous tous

ViPHP
AB
ViPHP | 5818 Messages

08 nov. 2008, 22:50

Attention toutefois.

La première fois je traite le pseudo en faisant
$pseudo = (isset($_POST['pseudo']) && trim($_POST['pseudo']) != '')? Verif_magicquotes($_POST['pseudo']) : null; 
ensuite je passe par une variable intermédiaire $nom
$nom = mysql_real_escape_string($pseudo);


et c'est cette variable intermédiaire qui sert dans la requête
$requete = "SELECT * FROM membres WHERE pseudo = '".$nom."' AND pass = '".$password."'";
Ce n'est pas tout à fait au hasard, c'est pour pouvoir enregistrer ensuite le pseudo dans la variable de session $_SESSION['login'] = $pseudo; avant son traitement par mysql_real_escape_string();

Dans ton cas tu as supprimé la variable intermédiaire et tu fais directement $_SESSION['login'] = mysql_real_escape_string($pseudo) donc si le pseudo comporte un guillemet simple par exemple (') le contenu de pseudo dans $_SESSION['login'] ne sera pas exact puisque traité par mysql_real_escape_string().

Note : je fais pareil pour le mot de pass mais c'est uniquement par symétrie. Tant que l'on a pas à afficher le mot de passe avant sont traitement par mysql_real_escape_string() c'est inutile.

Eléphanteau du PHP | 38 Messages

08 nov. 2008, 23:30

Si j'ai bien compris, cela sert à empecher un bug si le pseudo comporte des ' c'est ca?
Mais je n'ai qu'a empecher ces signes dans l'inscription non?

Mais bon je vais quand même faire ce que tu me dit, mais je comprend pas tout.
Peut être reprendre mon script et mettre tous ca déjà dans le script? Ca me permettra de mieux comprendre.

En tous cas merci de cette precision

Mammouth du PHP | 1511 Messages

08 nov. 2008, 23:36

Pourquoi les interdire si il existe un moyen de les conserver ?
Chaque caractère spécial peut être "annulé" si il est precedé d'un antislash \.

Eléphanteau du PHP | 38 Messages

08 nov. 2008, 23:48

Oui c'est vrai:)
Mais c'est j'ai pas encore trop vue ces "fonctions" (je sais plus comment on apelle ca), je sais pas donc pas trop les utiliser, et ou les mettre

Mammouth du PHP | 1511 Messages

08 nov. 2008, 23:50

Après, a toi de voir et de les apprendre afin de les utiliser au mieux, elles sont la pour te simplifier la vue diront nous ;)

Eléphanteau du PHP | 38 Messages

09 nov. 2008, 00:03

Oui c'est sur mais y'a tellement à apprendre^^
c'est pour ca que j'aimerais que vous me le montrez déjà intetegrer dans le script, ce n'est pas de la flemme c'est juste que je comprend mieux aprés

ViPHP
AB
ViPHP | 5818 Messages

09 nov. 2008, 15:24

Et bien justement, les scripts du tuto sont fonctionnels, et te montrent comment faire.

C'est pas bien compliqué de faire un copier-coller du code et de le tester chez toi en modifiant juste au départ les lignes avec la mention "à modifier...".
Par rapport au tuto, en ayant modifié les deux lignes portant la mention 'A modifier...' dans ton cas cela donne :
<?php
// Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1)
header('Content-type: text/html; charset=UTF-8');

/* Création d'une fonction - utilisée dans la récupération des variables - qui teste la configuration get_magic_quotes_gpc du serveur.
Si oui, supprime avec la fonction stripslashes les antislashes "\" insérés dans les chaines de caractère des variables gpc (GET, POST, COOKIE) */
function Verif_magicquotes ($chaine) 
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);

return $chaine;
} 

// Initialisation du message de réponse
$message = null;


// Si le formulaire est envoyé
if (isset($_POST['pseudo'])) 
{

    /* Récupération des variables issues du formulaire
    Teste l'existence les données post en vérifiant qu'elles existent, qu'elles sont non vides et non composées uniquement d'espaces.
    (Ce dernier point est facultatif et l'on pourrait se passer d'utiliser la fonction trim())
    En cas de succès, on applique notre fonction Verif_magicquotes pour (éventuellement) nettoyer la variable */
    $pseudo = (isset($_POST['pseudo']) && trim($_POST['pseudo']) != '')? Verif_magicquotes($_POST['pseudo']) : null;
    $pass = (isset($_POST['pass']) && trim($_POST['pass']) != '')? Verif_magicquotes($_POST['pass']) : null;
    

    // Si $pseudo et $pass différents de null
    if(isset($pseudo,$pass)) 
    {
         /* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation
         A MODIFIER avec vos valeurs */
         $hostname = "localhost";
         $database = "aranhil";
         $username = "root";
         $password = "";
    
         $connection = mysql_connect($hostname, $username, $password) or die(mysql_error());

         // Connexion à la base
         mysql_select_db($database, $connection);
    
         // Indique à mySql de travailler en UTF-8 (par défaut mySql risque de travailler au standard ISO-8859-1)
         mysql_query("SET NAMES 'utf8'");
    
         // Préparation des données pour les requêtes à l'aide de la fonction mysql_real_escape_string
         $nom = mysql_real_escape_string($pseudo);
         $password = mysql_real_escape_string($pass);
    
    
         /* Requête pour récupérer les enregistrements répondant à la clause : 
         champ du pseudo et champ du mdp de la table = pseudo et mdp postés dans le formulaire*/
        $requete = "SELECT * FROM inscription WHERE pseudo = '".$nom."' AND mot_de_passe = '".$password."'";  
    
         // Exécution de la requête
         $req_exec = mysql_query($requete) or die(mysql_error());
    
         // Création du tableau associatif du résultat
         $resultat = mysql_fetch_assoc($req_exec); 

         // Les valeurs (si elles existent) sont retournées dans le tableau $resultat; 
         if (isset($resultat['pseudo'],$resultat['pass']))  
               {
                 /* Démarre la session et enregistre le pseudo dans la variable de session $_SESSION['login']
                 qui donne au visiteur la possibilité de visiter les pages protégées.  */
                 session_start();
                 $_SESSION['login'] = $pseudo;
            
                 // A MODIFIER Remplacer le '#' par l'adresse de votre page de destination, sinon ce lien indique la page actuelle.
                 $message = 'Bonjour '.htmlspecialchars($_SESSION['login']).' <a href = "general.php">Cliquez ici pour vous connecter</a>';
                }
                else
                {   // Le pseudo ou le mot de passe sont incorrect
                $message = 'Le pseudo ou le mot de passe sont incorrect';
                } 

    }
    else 
    {  //au moins un des deux champs "pseudo" ou "mot de passe" n'a pas été rempli
    $message = 'Les champs Pseudo et Mot de passe doivent être remplis.';
    }
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Formulaire de connexion</title>
<style type="text/css">
<!--
body, p, h1,form, input {
margin:0;
padding:0;
}
body {
background-color:#FFFFFF
}
#connexion {
width:380px;
background:#FFFFFF;
margin:20px auto;
font-family: Arial, Helvetica, sans-serif;
font-size:1em;
border:2px solid #333333;
}
#connexion h1 {
text-align:center;
font-size:1.2em;
background:#333333;
padding-bottom:5px;
margin-bottom:15px;
color:#FFFFFF;
letter-spacing:0.05em;
}
#connexion p {
padding-top:15px;
padding-right:50px;
text-align:right;
}
#connexion input {
margin-left:30px;
width:150px;
}
#connexion #valider {
width:155px;
font-size:0.8em;
}
#connexion #message {
height:27px;
font-size:0.7em;
font-weight:bold;
text-align:center;
padding:10px 0 0 0;
}
-->
</style>
</head>
<body>
<div id = "connexion">
    <form action = "#" method="post">
    <h1>Connexion</h1>
    <p><label for = "pseudo">Pseudo : </label><input type="text" name="pseudo" id="pseudo" /></p>
    <p><label for = "pass">Mot de passe : </label><input type="password" name="pass" id="pass" /></p>
    <p><input type="submit" value="Envoyer" id = "valider" /></p>
    </form>
    <p id = "message"><?php if(isset($message)) echo $message ?></p>
</div>
</body>
</html> 
remarques que par rapport au tuto, j'ai modifié en plus la requête
$requete = "SELECT * FROM inscription WHERE pseudo = '".$nom."' AND mot_de_passe = '".$password."'";  
pour la faire corresponde à ta table qui apparemment se nomme "inscription" et possède les champs "pseudo" et "mot_de_passe" (alors que dans le tuto original la requête prend en compte la table initialement créée pour la démonstration qui se nomme "membres" avec les champs "pseudo" et "pass").

Voilà c'est tout ce qu'il y avait à modifier. Tu as le code complet (inutile de le séparer en plusieurs blocs) et toutes les pages que les visiteurs pourront visiter (dans ton cas "general.php") en ayant été authentifié devront commencer par
<?php session_start(); 
if(!isset($_SESSION['login'])) {die('Vous devez être enregistré pour accéder à cette partie du site');}
?> 
Bon il est vrai le tuto que j'ai fait ne s'adresse pas tout à fait aux grands débutants, mais aux débutants ayant un "minimum" de base. Disons que le pré requis pour être un peu à l'aise est d'avoir fait les tutos de la colonne de droite de ce site http://www.phpdebutant.org/ après ça devrait être plus facile.
Modifié en dernier par AB le 09 nov. 2008, 20:18, modifié 1 fois.