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
Mikado

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyMer 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
James

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyVen 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]Demande de tuto PHP Sign_james
http://jecode.forumactif.com
Mikado
Membre
Membre
Mikado

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyVen 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
James

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptySam 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]Demande de tuto PHP Sign_james
http://jecode.forumactif.com
Mikado
Membre
Membre
Mikado

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptySam 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
James

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptySam 2 Fév - 18:41

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

_________________
[center]Demande de tuto PHP Sign_james
http://jecode.forumactif.com
Mikado
Membre
Membre
Mikado

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptySam 2 Fév - 19:05

Ca ne change rien.
James
Fondateur
Fondateur
James

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptySam 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]Demande de tuto PHP Sign_james
http://jecode.forumactif.com
Mikado
Membre
Membre
Mikado

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptySam 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
James

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptySam 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]Demande de tuto PHP Sign_james
http://jecode.forumactif.com
Mikado
Membre
Membre
Mikado

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyDim 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
James

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyDim 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]Demande de tuto PHP Sign_james
http://jecode.forumactif.com
Mikado
Membre
Membre
Mikado

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyDim 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
James

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyDim 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]Demande de tuto PHP Sign_james
http://jecode.forumactif.com
Mikado
Membre
Membre
Mikado

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyDim 3 Fév - 18:13

Merci !

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

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyDim 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]Demande de tuto PHP Sign_james
http://jecode.forumactif.com
Mikado
Membre
Membre
Mikado

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyLun 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
James

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyLun 4 Fév - 18:42

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

_________________
[center]Demande de tuto PHP Sign_james
http://jecode.forumactif.com
Mikado
Membre
Membre
Mikado

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyLun 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
James

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyMar 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]Demande de tuto PHP Sign_james
http://jecode.forumactif.com
Mikado
Membre
Membre
Mikado

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyMar 5 Fév - 18:09

Maintenant ça m'affiche :

Veuillez vous connecter
James
Fondateur
Fondateur
James

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyJeu 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]Demande de tuto PHP Sign_james
http://jecode.forumactif.com
Mikado
Membre
Membre
Mikado

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyJeu 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
James

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyVen 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]Demande de tuto PHP Sign_james
http://jecode.forumactif.com
Mikado
Membre
Membre
Mikado

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

Fiche du Codeur
PHP/MySQL:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
HTML/CSS:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)
JavaScript:
Demande de tuto PHP Left_bar_bleue0/0Demande de tuto PHP Empty_bar_bleue  (0/0)

Demande de tuto PHP Empty
Demande de tuto PHP EmptyVen 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é




Demande de tuto PHP Empty
Demande de tuto PHP Empty

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

 Sujets similaires

-
» Demande tuto pour "Mettre une image sur le Portail" et "Récupération erreur dans Configuration Portail"
» demande d'un complément d'information IDEO
» Tuto toshop Belle asiatique
» TV à la demande
» Demande d'aide MySQL

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