[SQL/PHP] Problème pour partie administration

Bonjour,
Je crée un site et je voudrais que lorsqu'on se connecte si notre compte est administrateur il affiche un lien pour accéder à l'administration.

J'ai donc créé une table membres dans ma base de donnés voici ce qu'elle contient :

ID	int(11)	NOT NULL	auto_increment	PRIMARY KEY
pseudo	varchar(100) NOT NULL
pass	varchar(100)	NOT NULL
date_enregistrement	datetime	NOT NULL	CURRENT_TIMESTAMP
droits	enum('0', '1') DEFAULT 0


(Si le droit est à zéro on est membre, si il est à un on est administrateur)

Quand on se connecte le site enregistre le pseudo dans la variable $_SESSION['login']
et il la détruit quand on se déconnecte.

J'avais essayé ceci pour afficher le lien mais ça l'affiche même si on n'est pas administrateur.

	<?php
	function admin(){
	require "config.php";
	mysql_connect(DB_HOST, DB_LOGIN, DB_PASS);
	mysql_select_db(DB_BDD);
	
	$pseudo=$_SESSION['login'];
	$admin = mysql_query("SELECT pseudo FROM membres WHERE droits=1");

		if ($admin=$pseudo) {

			echo "<a href=\"admin/index.php\">Administration</a>";
			}
		else
		{
		}


	}
	
	if(!isset($_SESSION['login'])) {
	}
	else
	{
	admin();
}
	?>


Je voudrais donc savoir comment l'afficher que lorsque l'on est administrateur.

Je voudrais aussi savoir comment faire pour remplacer les ' par des \' automatiquement et <br /> quand on appuie sur Entrée car j'ai fait un système de news et je suis toujours obligé de remplacer les ' par des \' manuellement ou rajouter des <br /> à la fin de mes phrases.

Voilà merci d'avance et bonne soirée.
Configuration: Windows 7
Firefox 3.5.7

7 réponses

  1. Bonjour,

    Pour ma part j'aurai fait encore plus simple en stockant dans une variable de session le droit du membre lors de sa première connexion : $_SESSION['droit'].
    Ensuite à chaque fois que tu souhaites afficher quelque chose pour l'admin il te suffit juste de faire un if($_SESSION['droit'] == 1)

    Bon courage ;)
    1. J'ai trouvé

      	<?php
      	require "config.php";
      	mysql_connect(DB_HOST, DB_LOGIN, DB_PASS);
      	mysql_select_db(DB_BDD);
      	
      $pseudo=$_SESSION['login'];
      
      $query = "SELECT membre_droits FROM membres WHERE pseudo ='$pseudo'";
      $requete = mysql_query($query) or die(mysql_error());
      $donnees = mysql_fetch_assoc($requete);
      
      if($donnees['membre_droits'] == 1) {
      echo "<a href=\"admin/index.php\" align=\"center\">Administration</a>";
      }
      else
      {
      }
      
      
      	?>


      Voilà
      Merci à vous deux mais quelqu'un aurait la réponse pour ma deuxième question ?

      Merci d'avance
      1. cela veut donc dire qu'on vous retourne un tableau et non le pseudo
        et comme la requ$ete peur retourner plusieurs lignes il faut détailler.
        faites
        echo "<pre>";print_r($admin);echo "</pre>";
        et vous verrez le contenu du tableau.
        1. Salut,
          A première vue ca me semble enter ta fonction qui ne fonctionne pas
          esseait un truc du genre:

          $connexion = mysql_connect('localhost', 'root', '');
          mysql_select_db('Le_nomTable');
          $pseudo=$_SESSION['login'];

          $query = 'SELECT droits FROM membres WHERE pseudo = \'.$pseudo.\';';
          $requete = mysql_query($query);
          if($requete)
          {
          while($donnees_messages = mysql_fetch_assoc($requete))
          {
          if("0" == $donnees_messages['droits'])
          {
          //c'est ok il est admin
          }

          je suis pas sur si sa fonctionne mais c'Est dans le genre
          1. bonjour,
            êtes vous sûr que
            $admin = mysql_query("SELECT pseudo FROM membres WHERE droits=1");

            vous retourne le pseudo ?
            avez-vous affucher $admin pour voir.