condition si $variable == quelquechose

Alexis55000
Invité n'ayant pas de compte PHPfrance

11 oct. 2010, 22:41

Bonjour,

tout d'abord, je tiens a précisé que je début en partant du début dans le domaine du php ^^.

Bon j'expose mon premier probleme :

j'ai créer une petite section connexion membre c'est à dire, que l'on peut s'inscrire sur mon site (c'est un site que je créer pour apprendre le php, donc c'es tout basique).

et là j'aimerais créer une page par groupe de membre. c'est à dire une page pour les membres du groupe Administrateur, une pour le groupe Modérateur, et Membre simple.

voici ma table :

Colonne Type Null Défaut Commentaires
ID_Utilisateur int(20) Non
Nom_Utilisateur varchar(20) Non
Mot_de_Passe varchar(32) Non
Adresse_Email varchar(255) Non
Date_Inscription int(10) Non
Compte_Active enum('0', '1') Non
Clef_Activation varchar(8) Non
type set('membre', 'Moderateur', 'Administrateur') Non

donc j'aimerais que lorsqu'un membre est connécté, dans le menu apparait un lien; "Administration" et "mon profil" pour les administrateurs, "Administration" et "mon profil" pour les modérateurs, et "mon profil"

petite précision, quand un utilisateur est conécté, cela créer un cookie avec la variable "ID_Utilisateur"

je vous rappel que je suis débutant de chez débutant ^^

merci d'avance pour ceux qui cherchent !

Alexis55000
Invité n'ayant pas de compte PHPfrance

12 oct. 2010, 18:11

personne ne sait ??

jlaisserais pas tomber pour autant ^^

ViPHP
xTG
ViPHP | 7331 Messages

12 oct. 2010, 19:06

Connais-tu le fondement des requêtes SQL ? Car le principe est tout simple.
Tu récupères les informations de ton membre et tu testes la valeur du champ type, en fonction de ça tu affiches ce que tu désires.

ViPHP
ViPHP | 1996 Messages

12 oct. 2010, 22:01

Tu testes d'abord si ton utilisateur est bien enregistré via :
$requete = "SELECT ID_Utilisateur,type FROM matable WHERE Adresse_Email = '".addslashes($_POST["retour_forumualire_a_creer"])."' LIMIT 1",
$resultat_sql = mysql_query ($requete);

if (musql_num_rows ($resultat_sql) != 0)
{
  //l'utilisateur existe
  $resultat = mysql_fetch_assoc($resultat_sql);
  switch ($resultat["type"])
  {
  default :
  case "membre" :
  include_once ("page_membre.php");
  break;
 
  case "Moderateur" :
  include_once ("page_moderateur.php");
  break;

  case "Administrateur" :
  include_once ("page_administrateur.php");
  break;

  }
}
else
{
  //existe pas
 echo 'enregistrez vous';
}
Voilà pour le principe
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

alexis55000
Invité n'ayant pas de compte PHPfrance

13 oct. 2010, 14:44

Tout d'abord, merci ^^

Aureusms je vais tester ce que tu me propose et je te tiens au courant, mais je crois avoir compris. (quelques petites pages du site du zéro me reviennes ^^)

Alexis55000
Invité n'ayant pas de compte PHPfrance

13 oct. 2010, 15:20

Alors j'ai essayé, mais que ce soit un membre qui se connecte ou un administrateur, c'est toujours la pages "page_administrateur.php" qui s'affiche.

voila le code un tout petit peu modifié :
$requete = "SELECT ID_Utilisateur,type FROM Comptes_Utilisateurs WHERE Adresse_Email = '".addslashes($_POST["retour_forumualire_a_creer"])."' LIMIT 1";
$resultat_sql = mysql_query ($requete);

if (mysql_num_rows ($resultat_sql) != 0)
{
  //l'utilisateur existe
  $resultat = mysql_fetch_assoc($resultat_sql);
  switch ($resultat["type"])
  {
  default :
  case "membre" :
  include_once ("page_membre.php");
  break;
 
  case "Moderateur" :
  include_once ("page_moderateur.php");
  break;

  case "Administrateur" :
  include_once ("page_administrateur.php");
  break;

  }
}
else
{
  //existe pas
 echo 'enregistrez vous';
}
par contre j'ai pas bien compris la ligne là :
.addslashes($_POST["retour_forumualire_a_creer"])."' LIMIT 1

ViPHP
ViPHP | 1996 Messages

13 oct. 2010, 19:23

Cela veut dire : retour formulaire que tu as surement créé!!! Sinon, bah, ca marche pô...
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Alexis55000
Invité n'ayant pas de compte PHPfrance

13 oct. 2010, 20:25

Comment je fait alor ^^

ViPHP
xTG
ViPHP | 7331 Messages

13 oct. 2010, 20:32

Il serait bon de lire un peu des cours ou des tutoriaux sur le langage avant de s'engager dans de tels systèmes...
Car comme on peut le voir à tes réponses tu ne connais même pas les bases les plus petites.

La variable $_POST ne signifie rien pour toi, les données émises par un formulaire ne te font susciter aucune expression favorable donc...

Je rappellerai donc gentiment que ce forum est là pour aider, mais pas pour faire la programmation de votre système à votre place.
Vous avez un problème ? Venez l'exposer, vous avez un code à faire et n'y connaissez rien ? Passez votre chemin et aller apprendre le langage...

alex55000
Invité n'ayant pas de compte PHPfrance

13 oct. 2010, 22:24

Si je suis venus, ici c'est pour avoir de l'aide et non pas pour lire des remarques comme celle que vous aviez pu me faire comprendre !

J'ai, il y a de cela maintenant 7 à 8 ans, lu un cour de php sur le site du zéro, uniquement pour "connaître" grossièrement le fonctionnement d'un site dynamique.

Aujourd'hui je demande de l'aide comme je l'ai déjà dit précédemment, sur une fonction que je souhaiterais uniquement appliquer sur une page d'un site local qui sert juste de répertorier des partitions de musique, créer non pas par mes soins, mais ceux d'une personne qui n'est plus présente.

Étant donné que je ne suis ni créateur de site, ou web-master ou autre dans le domaine des sites Web, je ne pense pas qu'apprendre le php durant 2 mois serait utile pour un seul script.

un exemple : une personne qui utilise l'informatique pour traiter du texte ,souhaitant que l'on l'aide sur un forum parce-qu'elle a un logiciel malveillant sur son micro; cette personne devrait-elle impérativement prendre des cours d'informatique; de programmation; sur la conception d'un os pour pouvoir gérer son problème ?

Sur ce, je vous laisse réfléchir, et vais suivre votre indication, c'est à dire passer mon chemin vu votre intérêt pour mon problème.

Je tiens par ailleurs, remercier les personnes aillant donné d'un peu de leurs temps pour m'éclaircir.

PS : je ne connaissait pas encore cette mentalité sur ce forum. Je ne pense donc pas y rester plus longtemps.

Cordialement.

Alexis

ViPHP
ViPHP | 1996 Messages

13 oct. 2010, 22:48

ralala ces jeunes... Bon calmons nous un peu...

Il faut d'abord que tu créé ton formulaire pour identifier ton utilisateur.
Un formulaire te permet d'envoyer des données de l'utilisateur pour qu'il le vérifie. Il y a deux modes de formulaire (en fait 3 mais deux pour commencer c'est mieux). La méthode POST et la méthode GET.
La méthode GET envoie les données utilisateurs à la page "action" via l'URL du site i.e. "htpp:///qqchose". La méthode POST permet de faire la même chose mais directement côté serveur. L'avantage du POST est que c'est (un peu) caché pour l'utilisateur et c'est plus propre à coder. C'est la méthode privilégiée par ton bon Webmaster (même si la méthode GET à d'autres avantages mais dans ton cas de figure POST est meilleure).
Pour récupérer les variables envoyée via POST il faut utiliser la SUPERVARIABLE $_POST qui est en fait un tableau associatif mais en version GLOBALE. Elle n'a donc pas besoin d'être initiée par la page qu'il l'apelle et cela reste un tableau associatif.

Un formulaire simple se place entre les borne <form> et </form>.
Dans cette balise <form> tu mets la méthode utilisée et le fichier qui va traiter le formulaire. Ce fichier peut être le même qui a envoyé le formulaire mais c'est plus dur à coder. Néanmoins ce choix permet de ne pas (trop) créer de faille de sécurité.
Si on part d'une page index.php qui envoi en méthode POST vers une page traitement.php cela donnerai :

Code : Tout sélectionner

<form method="POST" action="traitement.php"> //formulaire </form>
Dans ce formulaire tu mets des "input" ou des "select" qui sont des balises formulaire. Partons simple avec un "input" de type texte (pour envoyer du texte)

Code : Tout sélectionner

<form method="POST" action="traitement.php"> <input name="nom" type="text" value="Votre nom" /> </form>
Là ton formulaire est créé mais tu ne peut pas l'envoyer : il te faut un "input" bouton de type submit (soumettre en anglais)

Code : Tout sélectionner

<form method="POST" action="traitement.php"> <input name="email" type="text" value="Votre email SVP" /> <input type="submit" value="Envoyer" /> </form>
Là ton formulaire est terminé et dès que tu cliques sur le bouton envoyé, cela envoi le formulaire côté serveur à la page traitement.php.
Il y a plein d'astuces de formulaire mais restons simple pour le moment.

Allons du côté de la page traitement : si on récupère la variable $_POST en tableau associatif on doit connaître la structure du formulaire envoyé. On se rapelle que le "input" de type texte avait un attribut "name" qui s'appellait "email" (name="email" : voir plus haut). Aussi pour récupérer la valeur il faut juste faire $_POST["email"] comme un tableau associatif simple.

Si on reprends ensuite l'exemple précédent :
$email = addslashes($_POST["email"]);
// la fonction addslahshes est là pour protéger les caractères spéciaux : c'est un conseil de TOUJOURS protéger les retours de formulaire.

$requete = "SELECT ID_Utilisateur,type FROM Comptes_Utilisateurs WHERE Adresse_Email = '".$email."' LIMIT 1";
$resultat_sql = mysql_query ($requete);

if (mysql_num_rows ($resultat_sql) != 0)
{
  //l'utilisateur existe
  $resultat = mysql_fetch_assoc($resultat_sql);
  switch ($resultat["type"])
  {
  default :
  case "membre" :
  include_once ("page_membre.php");
  break;
 
  case "Moderateur" :
  include_once ("page_moderateur.php");
  break;

  case "Administrateur" :
  include_once ("page_administrateur.php");
  break;

  }
}
else
{
  //existe pas
 echo 'enregistrez vous';
}
Ainsi tu envoi ton formulaire depuis index.php et la page traitement.php vérifie que l'utilisateur est bien dans la base grâce à son email. Et si oui il ouvre la page adéquate.

Edit : il faudra quand même rajouter à la page traitement.php les fonctions des connexions à la base de données. sinon cela ne marchera pas. Allez hop hop hop au boulot et lâché moi cette mauvaise humeur...
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

ViPHP
xTG
ViPHP | 7331 Messages

14 oct. 2010, 08:52

Désolé que tu l'ai pris de cette façon alex55000, m'enfin c'était à prévoir...
Je ne te reproche pas le fait de ne rien savoir de la programmation, je te reproche le fait de débarquer et nous jeter le bébé.
C'est ton manque d'intérêt pour l'aspect que nous développons tous les jours ici qui m'a énervé.
Comment je fait alor ^^
Tu l'aurais formulé autrement que je n'aurais peut être pas répondu...
Une formule indiquant que tu n'as pas compris la réponse qui t'a été donné, une demande d'éclaircissement. Enfin voilà quoi, et pas une formule indiquant "oui bah c'est cool mais tu m'as pas résolu mon problème".

Enfin après tout est question d'interprétation, mon interprétation de ta réponse peut être différente d'un autre lecteur cela va sans dire.
Je ne suis aucunement en volonté de lancer un débat ou autre mais voulait simplement expliquer mon point de vue sur la chose.
Je te souhaite donc bon courage dans la résolution de ton problème.

ViPHP
ViPHP | 3607 Messages

14 oct. 2010, 09:09

Hey!
Moi je pense que le problème dans les derniers codes sources, c'est que dans le switch ... case
le default est... au début :/
ça devrait plutôt donner ça:
switch ($resultat["type"])
  {
 
  case "Moderateur" :
  include_once ("page_moderateur.php");
  break;

  case "Administrateur" :
  include_once ("page_administrateur.php");
  break;

  default :
  include_once ("page_membre.php");
  break;
  }

Alexis55000
Invité n'ayant pas de compte PHPfrance

14 oct. 2010, 12:16

C'est oublié xTG ^^

bon sinon merci, j'ai réussi grâce à votre script et vos explications :)

j'ai modifier 2 troi truc et c'est parti

Mici bisou :P lol

alex