Partagez | 
 

 Demande de tuto PHP

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
Mikado
Membre
Membre
avatar

Masculin Messages : 54
Réputation : 0
Date d'inscription : 07/10/2012
Age : 29

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Mer 30 Jan - 19:06

Bonjour Smile

Langage/logiciel : PHP/Mysql
Résumé : Je voudrais un tuto sur les accès
Description complète : Voilà, j'ai créé ma page d'inscription sur mon site, ma page de connexion etc., mais j'aimerais un système d'accès. Par exemple, si le membre est dans le groupe modérateur sur le site, alors il a accès à ça, si il est testeur il a accès à ça etc.
Exemple (si besoin) :Je n'en ai pas..

Cordialement,

Mikado.
James
Fondateur
Fondateur
avatar

Masculin Messages : 1531
Réputation : 2
Date d'inscription : 17/07/2010
Age : 34

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Ven 1 Fév - 18:51

Coucou ^^ Si tu as suivie ce tutoriel: http://jecode.forumactif.com/t60-creer-un-espace-privee-espace-membres tu peux utiliser le système de "rang" de la base de donnée qui est ici "rank" ^^

Tu vérifies si la session "$_SESSION['rank']" est egale au chiffre du rang voulue

Par exemple si modérateur est le rang numéro deux il faudra vérifier comme cela avec une condition:

Code:
if($_SESSION['rank'] >= 2) // Si "$_SESSION['rank']" est supérieur ou égale à 2...
{
// Ton contenu visible par le rang modérateur ou rang supérieur ici
}

En espérant t'avoir aidé ^^

_________________
[center]
http://jecode.forumactif.com
Mikado
Membre
Membre
avatar

Masculin Messages : 54
Réputation : 0
Date d'inscription : 07/10/2012
Age : 29

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Ven 1 Fév - 19:29

D'accord merci, en fait c'est tout bête à ce que je vois. Et comment fait-on pour que le rang soit celui en fonction du poste ? Je m'explique :

Imaginons que se soit un membre du staff, un modérateur.

Comment faire pour que celui-ci, en s'inscrivant possède la rang 2 par exemple ?

Sous forme de select html ? Et ensuite avec une condition en PHP du genre

Code:
mon select avec name blabla
<?php
$rang = $_POST['username'];
if ($rang == 1)
{
placer cet utilisateur dans la bdd avec pour rang 1
}

elseif ($rang == 2)
{
Placer cet utilisateur dans la bdd avec pour rang 2
}

etc etc.
?>

Il ne me manque plus que de savoir le code correspondant à Placer cet utilisateur dans la bdd avec pour X.

Peux-tu m'aider ?

En tout cas merci beaucoup déjà.
James
Fondateur
Fondateur
avatar

Masculin Messages : 1531
Réputation : 2
Date d'inscription : 17/07/2010
Age : 34

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Sam 2 Fév - 8:51

Coucou ^^ Quand il s'inscrit tu as juste à rajouter dans ton "INSERT INTO" le nom du champs contenant le "rang" avec le numéro que tu as choisit ^^

_________________
[center]
http://jecode.forumactif.com
Mikado
Membre
Membre
avatar

Masculin Messages : 54
Réputation : 0
Date d'inscription : 07/10/2012
Age : 29

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Sam 2 Fév - 15:15

Ca fonctionne merci. Hum par contre j'ai un problème. J'ai utilisé exactement le même formulaire de connexion et d'inscription que celui du tuto. Mais après, comment je fais pour que mes pages soient visibles uniquement par les connectés ? J'ai essayé cela :

Code:
<?php
session_start(); // ici on continue la session
if(isset($_SESSION['username']))
{
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  <head>
      <title>Rédiger une news</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        h3, form
        {
            text-align:center;
        }
        </style>
    </head>
   
    <body>
<h3><a href="liste_news.php">Retour à la liste des news</a></h3>
<?php
mysql_connect('blabla', 'mouhahha', 'tralalalalalalalalllalala');
mysql_select_db('hihihi');
if (isset($_GET['modifier_news'])) // Si on demande de modifier une news.
{
    // On protège la variable « modifier_news » pour éviter une faille SQL.
    $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
    // On récupère les informations de la news correspondante.
    $retour = mysql_query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
    $donnees = mysql_fetch_array($retour);
   
    // On place le titre et le contenu dans des variables simples.
    $titre = stripslashes($donnees['titre']);
    $contenu = stripslashes($donnees['contenu']);
    $id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification.
}
else // C'est qu'on rédige une nouvelle news.
{
    // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news.
    $titre = '';
    $contenu = '';
    $id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification.
}
?>
<form action="liste_news.php" method="post">
<p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
<p>
    Contenu :<br />
    <textarea name="contenu" cols="50" rows="10">
    <?php echo $contenu; ?>
    </textarea><br />
   
    <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
    <input type="submit" value="Envoyer" />
</p>
</form>
</body>
</html>
<?php
}
else
{
   // aie, quelqu'un tente de contourner mon système sans passer par le formulaire de connexion !
   echo '<p>Petit coquin, va ...</p>';
   exit(); // par cette commande, on coupe l'exécution de la page
}
?>

Mais ça me met tout le temps : Petit coquin, va...
Peux-tu m'aider ?

Mikado
James
Fondateur
Fondateur
avatar

Masculin Messages : 1531
Réputation : 2
Date d'inscription : 17/07/2010
Age : 34

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Sam 2 Fév - 18:41

Essaye en remplaçant "isset" par "!empty" ^^

_________________
[center]
http://jecode.forumactif.com
Mikado
Membre
Membre
avatar

Masculin Messages : 54
Réputation : 0
Date d'inscription : 07/10/2012
Age : 29

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Sam 2 Fév - 19:05

Ca ne change rien.
James
Fondateur
Fondateur
avatar

Masculin Messages : 1531
Réputation : 2
Date d'inscription : 17/07/2010
Age : 34

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Sam 2 Fév - 19:30

Dans ta page de connexion en dessous de la définition de la session "username tu ajoutes cela :

Code:
$_SESSION['vLogin'] = 1;

Puis à la place de
Code:
if(isset($_SESSION['username']))

Tu mets:
Code:
if($_SESSION['vLogin'] == 1)

Et normalement il n'y a plus de bugs ^^

_________________
[center]
http://jecode.forumactif.com
Mikado
Membre
Membre
avatar

Masculin Messages : 54
Réputation : 0
Date d'inscription : 07/10/2012
Age : 29

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Sam 2 Fév - 20:00

Ca me met bien : Bienvenue Mikado, mais dès que je clique sur rédiger_news.php et bien ça me met petit coquin va...
Donc ça ne m'identifie pas.

La page de connexion est :
Code:
<?php
mysql_connect('x', 'x', 'x);
mysql_select_db('x');

if(isset($_POST['login']))
{
  if(isset($_POST['username']) && isset($_POST['password']))
    {
        $username = htmlspecialchars(mysql_real_escape_string($_POST['username']));
       $_SESSION['vLogin'] = 1;
        $password = htmlspecialchars(mysql_real_escape_string($_POST['password']));
        $hash_password = sha1($password);
       
        $search_user = mysql_query("SELECT COUNT(*) AS nb_id FROM users WHERE username = '".$username."' && password = '".$hash_password."'");
        $count_user = mysql_fetch_array($search_user);
           
              if($count_user['nb_id'] > 0)
              {
                  $infos_account = mysql_query("SELECT * FROM users WHERE username = '".$username."'");
                $account = mysql_fetch_array($infos_account);
                $_SESSION['username'] = $username;
                $_SESSION['rank'] = $account['rank'];
              }  else
                  {
                    echo '<b><font color="red">Ce compte est inexistant.</font></b>';
                  }
    } else
    {
    echo '<b><font color="red">Vous n\'avez pas rempli tous les champs.</font></b>';
    }

}

if($_SESSION['vLogin'] == 1)
{
?>
Bienvenue <b><?php echo $_SESSION['username']; ?></b>
<?php } else { ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Connexion</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="POST" action="connexion.php">
Nom d'utilisateur :<br/>
<input type="text" name="username" /><br/>
Mot de passe :<br/>
<input type="password" name="password" /><br/>
<input type="submit" name="login" />
</form>
</body>
</html>
<?php } ?>

Et la page web rediger_news.php est :
Code:
<?php
session_start(); // ici on continue la session
if($_SESSION['vLogin'] == 1)
{
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  <head>
      <title>Rédiger une news</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        h3, form
        {
            text-align:center;
        }
        </style>
    </head>
   
    <body>
<h3><a href="liste_news.php">Retour à la liste des news</a></h3>
<?php
mysql_connect('x, 'x', 'x');
mysql_select_db('x');
if (isset($_GET['modifier_news'])) // Si on demande de modifier une news.
{
    // On protège la variable « modifier_news » pour éviter une faille SQL.
    $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
    // On récupère les informations de la news correspondante.
    $retour = mysql_query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
    $donnees = mysql_fetch_array($retour);
   
    // On place le titre et le contenu dans des variables simples.
    $titre = stripslashes($donnees['titre']);
    $contenu = stripslashes($donnees['contenu']);
    $id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification.
}
else // C'est qu'on rédige une nouvelle news.
{
    // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news.
    $titre = '';
    $contenu = '';
    $id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification.
}
?>
<form action="liste_news.php" method="post">
<p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
<p>
    Contenu :<br />
    <textarea name="contenu" cols="50" rows="10">
    <?php echo $contenu; ?>
    </textarea><br />
   
    <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
    <input type="submit" value="Envoyer" />
</p>
</form>
</body>
</html>
<?php
}
else
{
   // aie, quelqu'un tente de contourner mon système sans passer par le formulaire de connexion !
   echo '<p>Petit coquin, va ...</p>';
   exit(); // par cette commande, on coupe l'exécution de la page
}
?>
James
Fondateur
Fondateur
avatar

Masculin Messages : 1531
Réputation : 2
Date d'inscription : 17/07/2010
Age : 34

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Sam 2 Fév - 22:57

Code:
mysql_connect('x, 'x', 'x');

Tu as oublié un apostrophe après le premier "x"

Code:
mysql_connect('x', 'x', 'x');

_________________
[center]
http://jecode.forumactif.com
Mikado
Membre
Membre
avatar

Masculin Messages : 54
Réputation : 0
Date d'inscription : 07/10/2012
Age : 29

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Dim 3 Fév - 9:35

Merci mais ça ne change rien.

Au pire, peux-tu me dire comment on fait le pages de l'espace membre, pour qu'elles ne soient visibles que par les connectés. Comment tu fais toi ?
James
Fondateur
Fondateur
avatar

Masculin Messages : 1531
Réputation : 2
Date d'inscription : 17/07/2010
Age : 34

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Dim 3 Fév - 10:13

J'ai testé ta page sur EasyPHP et elle marche chez moi, je ne vois pas pourquoi elle marche pas chez toi ^^ Je continue de chercher

Moi je fais pareil, donc ce serait compliqué de changer à ma "méthode" lol ^^

Essaye de mettre comme j'ai mis sur le tuto :

Code:
if(isset($_SESSION['username']))
{
// le code affiché
}
else
{
// l'erreur
}

Pour voir si avec ça ça marche sur cette page ^^

_________________
[center]
http://jecode.forumactif.com
Mikado
Membre
Membre
avatar

Masculin Messages : 54
Réputation : 0
Date d'inscription : 07/10/2012
Age : 29

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Dim 3 Fév - 10:30

Tiens essaye regarde :

http://geekandplay.site11.com/connexion.php

Tu mets Mikado en pseudo et tralala en mdp.

Tu cliques sur Rediger news et là regarde le message...

Mes pages.. :
Connexion.php
Code:
<?php
mysql_connect('x', 'x', 'x');
mysql_select_db('x');

if(isset($_POST['login']))
{
  if(isset($_POST['username']) && isset($_POST['password']))
    {
        $username = htmlspecialchars(mysql_real_escape_string($_POST['username']));
        $password = htmlspecialchars(mysql_real_escape_string($_POST['password']));
        $hash_password = sha1($password);
       
        $search_user = mysql_query("SELECT COUNT(*) AS nb_id FROM users WHERE username = '".$username."' && password = '".$hash_password."'");
        $count_user = mysql_fetch_array($search_user);
           
              if($count_user['nb_id'] > 0)
              {
                  $infos_account = mysql_query("SELECT * FROM users WHERE username = '".$username."'");
                $account = mysql_fetch_array($infos_account);
                $_SESSION['username'] = $username;
                $_SESSION['rank'] = $account['rank'];
              }  else
                  {
                    echo '<b><font color="red">Ce compte est inexistant.</font></b>';
                  }
    } else
    {
    echo '<b><font color="red">Vous n\'avez pas rempli tous les champs.</font></b>';
    }

}

if(isset($_SESSION['username']))
{
?>
Bienvenue <b><?php echo $_SESSION['username']; ?>
<a href="rediger_news.php">rediger news </a></b>
<?php } else { ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Connexion</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="POST" action="connexion.php">
Nom d'utilisateur :<br/>
<input type="text" name="username" /><br/>
Mot de passe :<br/>
<input type="password" name="password" /><br/>
<input type="submit" name="login" />
</form>
</body>
</html>
<?php } ?>

Rediger_news.php
Code:
<?php
if(isset($_SESSION['username']))
{
// le code affiché
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  <head>
      <title>Rédiger une news</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        h3, form
        {
            text-align:center;
        }
        </style>
    </head>
   
    <body>
<h3><a href="liste_news.php">Retour à la liste des news</a></h3>
<?php
mysql_connect('x', 'x', 'x');
mysql_select_db('x');
if (isset($_GET['modifier_news'])) // Si on demande de modifier une news.
{
    // On protège la variable « modifier_news » pour éviter une faille SQL.
    $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
    // On récupère les informations de la news correspondante.
    $retour = mysql_query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
    $donnees = mysql_fetch_array($retour);
   
    // On place le titre et le contenu dans des variables simples.
    $titre = stripslashes($donnees['titre']);
    $contenu = stripslashes($donnees['contenu']);
    $id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification.
}
else // C'est qu'on rédige une nouvelle news.
{
    // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news.
    $titre = '';
    $contenu = '';
    $id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification.
}
?>
<form action="liste_news.php" method="post">
<p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
<p>
    Contenu :<br />
    <textarea name="contenu" cols="50" rows="10">
    <?php echo $contenu; ?>
    </textarea><br />
   
    <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
    <input type="submit" value="Envoyer" />
</p>
</form>
</body>
</html>
<?php
}
else
{
   // aie, quelqu'un tente de contourner mon système sans passer par le formulaire de connexion !
   echo '<p>Petit coquin, va ...</p>';
   exit(); // par cette commande, on coupe l'exécution de la page
}
?>
James
Fondateur
Fondateur
avatar

Masculin Messages : 1531
Réputation : 2
Date d'inscription : 17/07/2010
Age : 34

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Dim 3 Fév - 13:14

Quand on actualises sur la page, cela fait que ça te déconnecte hum...

Tu as ouvert les sessions sur la page connexion et news ? ^^

EDIT: J'ai testé, c'était bien le manque des session_start(); sur la page de connexion et la page rediger_news.php ^^

_________________
[center]
http://jecode.forumactif.com
Mikado
Membre
Membre
avatar

Masculin Messages : 54
Réputation : 0
Date d'inscription : 07/10/2012
Age : 29

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Dim 3 Fév - 18:13

Merci !

Peux-tu juste me dire où mettre ce session_start() et avec quoi ?
James
Fondateur
Fondateur
avatar

Masculin Messages : 1531
Réputation : 2
Date d'inscription : 17/07/2010
Age : 34

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Dim 3 Fév - 18:42

Le session_start(); tu le mets tout en haut de ta page, sinon il ne marchera pas si il y a d'autre codes avant ^^

_________________
[center]
http://jecode.forumactif.com
Mikado
Membre
Membre
avatar

Masculin Messages : 54
Réputation : 0
Date d'inscription : 07/10/2012
Age : 29

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Lun 4 Fév - 17:13

Coucou,

Ca ne fonctionne toujours pas -----''''''''''''''

Voici mes deux codes :
Rediger_news.php
Code:
<?php
mysql_connect('x', 'x', 'x');
mysql_select_db('x');
session_start();
if(isset($_SESSION['username']))
{
// le code affiché
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  <head>
      <title>Rédiger une news</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        h3, form
        {
            text-align:center;
        }
        </style>
    </head>
   
    <body>
<h3><a href="liste_news.php">Retour à la liste des news</a></h3>
<?php
if (isset($_GET['modifier_news'])) // Si on demande de modifier une news.
{
    // On protège la variable « modifier_news » pour éviter une faille SQL.
    $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
    // On récupère les informations de la news correspondante.
    $retour = mysql_query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
    $donnees = mysql_fetch_array($retour);
   
    // On place le titre et le contenu dans des variables simples.
    $titre = stripslashes($donnees['titre']);
    $contenu = stripslashes($donnees['contenu']);
    $id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification.
}
else // C'est qu'on rédige une nouvelle news.
{
    // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news.
    $titre = '';
    $contenu = '';
    $id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification.
}
?>
<form action="liste_news.php" method="post">
<p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
<p>
    Contenu :<br />
    <textarea name="contenu" cols="50" rows="10">
    <?php echo $contenu; ?>
    </textarea><br />
   
    <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
    <input type="submit" value="Envoyer" />
</p>
</form>
</body>
</html>
<?php
}
else
{
   // aie, quelqu'un tente de contourner mon système sans passer par le formulaire de connexion !
   echo '<p>Petit coquin, va ...</p>';
   exit(); // par cette commande, on coupe l'exécution de la page
}
?>

Et connexion.php :

Code:
<?php
mysql_connect('x', 'x', 'x');
mysql_select_db('x');

if(isset($_POST['login']))
{
  if(isset($_POST['username']) && isset($_POST['password']))
    {
        $username = htmlspecialchars(mysql_real_escape_string($_POST['username']));
        $password = htmlspecialchars(mysql_real_escape_string($_POST['password']));
        $hash_password = sha1($password);
       
        $search_user = mysql_query("SELECT COUNT(*) AS nb_id FROM users WHERE username = '".$username."' && password = '".$hash_password."'");
        $count_user = mysql_fetch_array($search_user);
           
              if($count_user['nb_id'] > 0)
              {
                  $infos_account = mysql_query("SELECT * FROM users WHERE username = '".$username."'");
                $account = mysql_fetch_array($infos_account);
                $_SESSION['username'] = $username;
                $_SESSION['rank'] = $account['rank'];
              }  else
                  {
                    echo '<b><font color="red">Ce compte est inexistant.</font></b>';
                  }
    } else
    {
    echo '<b><font color="red">Vous n\'avez pas rempli tous les champs.</font></b>';
    }

}
if(isset($_SESSION['username']))
{session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Connexion</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="POST" action="connexion.php">
Nom d'utilisateur :<br/>
<input type="text" name="username" /><br/>
Mot de passe :<br/>
<input type="password" name="password" /><br/>
<input type="submit" name="login" />
<span style="border: 1px solid green; color: green;">Connexion réussit ! Veuillez cliquer sur ce lien : <a href="rediger_news.php" style="color: blue;">SadS</span>
</form>
</body>
</html>
<?php } else{ ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Connexion</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="POST" action="connexion.php">
Nom d'utilisateur :<br/>
<input type="text" name="username" /><br/>
Mot de passe :<br/>
<input type="password" name="password" /><br/>
<input type="submit" name="login" /><br />
<span style="border: 1px solid orange; color: orange;">Insérez votre pseudo et votre mot de passe.</span>
</form>
</body>
</html>
<?php } ?>
James
Fondateur
Fondateur
avatar

Masculin Messages : 1531
Réputation : 2
Date d'inscription : 17/07/2010
Age : 34

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Lun 4 Fév - 18:42

Les session_start(); avant les connexion mysql et tu as oublié sur la page de connexion

_________________
[center]
http://jecode.forumactif.com
Mikado
Membre
Membre
avatar

Masculin Messages : 54
Réputation : 0
Date d'inscription : 07/10/2012
Age : 29

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Lun 4 Fév - 21:06

Ok. Et le if(isset username) se met avant ou après les bases de données ? (D'ailleurs, c'est pas plutot if isset et login ?)
Pour la page de connexion, si je met le session.start tout en haut, ca ne fonctionne pas, on ne peut pas y accéder. Normal.
Donc je ne peux pas le mettre....
James
Fondateur
Fondateur
avatar

Masculin Messages : 1531
Réputation : 2
Date d'inscription : 17/07/2010
Age : 34

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Mar 5 Fév - 9:24

Mikado a écrit:
Ok. Et le if(isset username) se met avant ou après les bases de données ? (D'ailleurs, c'est pas plutot if isset et login ?)

Où tu veux ^^ Non ce n'est pas login ^^

Sinon tu peux reprendre la méthode précédente si il y a des bugs :

James a écrit:
Dans ta page de connexion en dessous de la définition de la session "username tu ajoutes cela :

Code:
$_SESSION['vLogin'] = 1;

Puis à la place de
Code:
if(isset($_SESSION['username']))

Tu mets:
Code:
if($_SESSION['vLogin'] == 1)

Et normalement il n'y a plus de bugs ^^

_________________
[center]
http://jecode.forumactif.com
Mikado
Membre
Membre
avatar

Masculin Messages : 54
Réputation : 0
Date d'inscription : 07/10/2012
Age : 29

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Mar 5 Fév - 18:09

Maintenant ça m'affiche :

Veuillez vous connecter
James
Fondateur
Fondateur
avatar

Masculin Messages : 1531
Réputation : 2
Date d'inscription : 17/07/2010
Age : 34

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Jeu 7 Fév - 10:12

Tu as bien modifié dans ta page rediger_news.php

Code:
if(isset($_SESSION['username']))

Par

Code:
if($_SESSION['vLogin'] == 1)

_________________
[center]
http://jecode.forumactif.com
Mikado
Membre
Membre
avatar

Masculin Messages : 54
Réputation : 0
Date d'inscription : 07/10/2012
Age : 29

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Jeu 7 Fév - 16:22

Coucou,

Alors d'autres bugs s'ajoutent...

Voici ma page connexion.php :
Code:
<?php
mysql_connect('xx', 'xx', 'xx');
mysql_select_db('xx');

if(isset($_POST['login']))
{
  if(isset($_POST['username']) && isset($_POST['password']))
    {
        $username = htmlspecialchars(mysql_real_escape_string($_POST['username']));
        $password = htmlspecialchars(mysql_real_escape_string($_POST['password']));
        $hash_password = sha1($password);
      $_SESSION['vLogin'] = 1;
       
        $search_user = mysql_query("SELECT COUNT(*) AS nb_id FROM users WHERE username = '".$username."' && password = '".$hash_password."'");
        $count_user = mysql_fetch_array($search_user);
           
              if($count_user['nb_id'] > 0)
              {
                  $infos_account = mysql_query("SELECT * FROM users WHERE username = '".$username."'");
                $account = mysql_fetch_array($infos_account);
                $_SESSION['username'] = $username;
                $_SESSION['rank'] = $account['rank'];
              }  else
                  {
                    echo '<b><font color="red">Code et/ou pseudo incorrect. Veuillez réessayer..</font></b>';
                  }
    } else
    {
    echo '<b><font color="red">Vous n\'avez pas rempli tous les champs.</font></b>';
    }

}
if($_SESSION['vLogin'] == 1)
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Connexion</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="POST" action="connexion.php">
Nom d'utilisateur :<br/>
<input type="text" name="username" /><br/>
Mot de passe :<br/>
<input type="password" name="password" /><br/>
<input type="submit" name="login" />
<span style="border: 1px solid green; color: green; background-color: #6BDEBB;">Connexion réussit ! Veuillez cliquer sur ce lien : <a href="sads.php" style="color: blue;">SadS</span>
</form>
</body>
</html>
<?php } else{ ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Connexion</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="POST" action="connexion.php">
Nom d'utilisateur :<br/>
<input type="text" name="username" /><br/>
Mot de passe :<br/>
<input type="password" name="password" /><br/>
<input type="submit" name="login" /><br />
<span style="border: 1px solid orange; color: orange;">Insérez votre pseudo et votre mot de passe.</span>
</form>
</body>
</html>
<?php } ?>

Alors là ça m'affiche tout le temps, même si c'est faux, ça :
Code:
<span style="border: 1px solid green; color: green; background-color: #6BDEBB;">Connexion réussit ! Veuillez cliquer sur ce lien : <a href="sads.php" style="color: blue;">SadS</span>

Je verrai après pour rédiger_news.php
James
Fondateur
Fondateur
avatar

Masculin Messages : 1531
Réputation : 2
Date d'inscription : 17/07/2010
Age : 34

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Ven 8 Fév - 8:44

Hum, le $_SESSION['vLogin'] = 1; tu dois le mettre après le
Code:
$infos_account = mysql_query("SELECT * FROM users WHERE username = '".$username."'");
                $account = mysql_fetch_array($infos_account);

Et pour ce qui est de l’actualisation qui détruit les sessions, c'est le session_start(); qui est oublié tout en haut de la page:

Ce qui donne :

Code:
<?php
session_start();

mysql_connect('xx', 'xx', '');
mysql_select_db('xx');

if(isset($_POST['login']))
{
  if(isset($_POST['username']) && isset($_POST['password']))
    {
        $username = htmlspecialchars(mysql_real_escape_string($_POST['username']));
        $password = htmlspecialchars(mysql_real_escape_string($_POST['password']));
        $hash_password = sha1($password);
       
        $search_user = mysql_query("SELECT COUNT(*) AS nb_id FROM users WHERE username = '".$username."' && password = '".$hash_password."'");
        $count_user = mysql_fetch_array($search_user);
           
              if($count_user['nb_id'] > 0)
              {
                  $infos_account = mysql_query("SELECT * FROM users WHERE username = '".$username."'");
                $account = mysql_fetch_array($infos_account);
            $_SESSION['vLogin'] = 1;
                $_SESSION['username'] = $username;
                $_SESSION['rank'] = $account['rank'];
              }  else
                  {
                    echo '<b><font color="red">Code et/ou pseudo incorrect. Veuillez réessayer..</font></b>';
                  }
    } else
    {
    echo '<b><font color="red">Vous n\'avez pas rempli tous les champs.</font></b>';
    }

}
if($_SESSION['vLogin'] == 1)
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Connexion</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="POST" action="lol.php">
Nom d'utilisateur :<br/>
<input type="text" name="username" /><br/>
Mot de passe :<br/>
<input type="password" name="password" /><br/>
<input type="submit" name="login" />
<span style="border: 1px solid green; color: green; background-color: #6BDEBB;">Connexion réussit ! Veuillez cliquer sur ce lien : <a href="sads.php" style="color: blue;">SadS</span>
</form>
</body>
</html>
<?php } else{ ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Connexion</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="POST" action="lol.php">
Nom d'utilisateur :<br/>
<input type="text" name="username" /><br/>
Mot de passe :<br/>
<input type="password" name="password" /><br/>
<input type="submit" name="login" /><br />
<span style="border: 1px solid orange; color: orange;">Insérez votre pseudo et votre mot de passe.</span>
</form>
</body>
</html>
<?php } ?>

PS: J'ai caché tes identifiants que tu avais oublié de censurer ^^

_________________
[center]
http://jecode.forumactif.com
Mikado
Membre
Membre
avatar

Masculin Messages : 54
Réputation : 0
Date d'inscription : 07/10/2012
Age : 29

Fiche du Codeur
PHP/MySQL:
0/0  (0/0)
HTML/CSS:
0/0  (0/0)
JavaScript:
0/0  (0/0)

Ven 8 Fév - 16:14

Je test ce soir, merci !

PS : Merci mais ne t'inquiète pas, ce n'était pas les bons ^^.
Contenu sponsorisé





Page 1 sur 2Aller à la page : 1, 2  Suivant

 Sujets similaires

-
» [Annulée] Demande de page d'aceuil
» Tuto Panda ActiveScan avec Firefox
» [Annulée] Demande de description des catégories.
» Big tuto
» [résolu] demande d'aide à l'optimisation

Vous ne pouvez pas répondre aux sujets dans ce forum
JeCode - Forum d'Aide à la Programmation Web :: Outils et Partage :: Demandes de Tutoriel-