Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1449 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Attribuer une valeur à une variable en cliquant sur un lien

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Attribuer une valeur à une variable en cliquant sur un lien

n°1963217
k'stor
Posté le 05-02-2010 à 11:27:26  profilanswer
 

Bonjour,
Voilà ça fait que 10 jours que je me suis mis au php alors soyez indulgents.
Mon but est de faire un site avec un base sql qui permet de créer un menu avec seulement les choses qui concernent les utilisateurs.
Jusque là j'ai réussi :)  Maintenant mon soucis c'est que je veux créer des liens (si possible) ou des boutons (mais c'est moins bien) qui donnent une valeur à une variable pour faire changer le corps du site en fonction du lien sur lequel ils ont cliqué dans le menu (en l'occurrence des barrages)

 

mon script :

 

<?php
mysql_connect("localhost", "root", "" );
mysql_select_db("coursphp" );
$mail = $_SESSION['bonmail'];
$reponsebarrages = mysql_query("SELECT barrages, lecture, ecriture FROM autorisations WHERE mail='$mail'" )or die(mysql_error());
?>
<!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>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   <link rel="stylesheet" media="screen" type="text/css" title="Design" href="miseenpage.css" /><!--Lien avec miseenpage pour les styles-->
   </head>
   <body class=menu>
   <h1 class=titremenu>Menu utilisateur</h1>
 <p class=corpsmenu>
 <form>
 <a href="compte.php">Compte utilisateur</a><br>
 </form>
 <?php while ($donneesbarrages = mysql_fetch_array($reponsebarrages))
 {
 ?>
 <form action="index.php" method="post">
 <input type="hidden" name="optionmenu" value=$donneesbarrages['barrages'] />
 <input type="submit" name="optionmenu" value=<?php echo $donneesbarrages['barrages'];?> /><br>
 <?php } ?>
 </form>
 </p>
   </body>
</html>

 


-Bon je sais pas comment mettre la coloration syntaxique désolé (si vous savez comment faire merci de m'éclairer)
-En gros, ici le menu affiche tous les barrages sur lesquels les utilisateurs peuvent agir(dans un formulaire). Le soucis c'est que je veux envoyer une variable session avec le nom du barrage sur lequel ils ont cliqué pour que le corps du site affiche ce qu'ils peuvent faire. ($donneesbarrages['barrages'] affiche le nom des barrages. ce qu'il faut faire c'est refaire toute la partie deuxième formulaire (en le remplaçant par des lien ou autre) pour que quand on clique sur le nom d'un barrage la variable $_SESSION['optionmenu'] prenne comme valeur le nom du barrage.
-Dernier truc : Pourquoi quand dans ma première requête si je met $_SESSION['bonmail'] à la place de $mail ça marche plus? il faut quoi comme syntaxe?
Merci d'avance pour votre aide

 

EDIT : Bon en fait comme un con j'avais pas essayé mon script qui envoie bien la bonne valeur en post donc ça marche. Par contre je trouve pas ça très propre donc si vous avez mieux, je suis intéressé.


Message édité par k'stor le 05-02-2010 à 12:05:41
mood
Publicité
Posté le 05-02-2010 à 11:27:26  profilanswer
 

n°1963249
fred777888​999
Posté le 05-02-2010 à 12:03:59  profilanswer
 

Mouais, ca va etre tres tres long car il te manque pas mal de notions on dirait (rien de honteux a debuter bien au contraire, mais dur dans un forum de tout dire en qq lignes).  
Le premier truc a comprendre est quelle partie de code s'execute cote client et cote serveur et comment une page web est construite.  
Deux cours sur developpez.com ici et la te permettront de degrossir un peu...
Bonne chance !

n°1963260
k'stor
Posté le 05-02-2010 à 12:21:07  profilanswer
 

merci pour ta réponse. C'est quoi qui ne convient pas dans ma page? Je vais lire tes liens mais je suis très très pressé! donc faut que je puisse rendre un site fonctionnel le plus vite possible et je l'améliorerai par la suite. Peu de gens iront le voir et il y aura des sauvegardes quotidiennes alors il a pas besoin d'être hyper sécurisé . Maintenant toutes remarques m'intéressent
Tu n'as pas répondu à ma principale question : est-ce qu'en cliquant sur un lien je peux attribuer une valeur à une variable autrement qu'en faisant un GET (quand même pas assez sécurisé) ou un formulaire.
Tu pourras peut-être me dire si tu connais un site où on peut trouver des modules. Je cherche particulièrement pour l'identification/création de compte et l'affichage de graphiques.
Pour l'identification /création j'ai presque fait un truc qui semble potable avec des vérifs mails... mais s'il en existe un qui n'a pas de faille je suis preneur.


Message édité par k'stor le 05-02-2010 à 12:24:58
n°1963355
aspirateur
Posté le 05-02-2010 à 14:29:03  profilanswer
 

Code :
  1. <?php
  2. mysql_connect("localhost", "root", "" );
  3. mysql_select_db("coursphp" );
  4. $mail = $_SESSION['bonmail'];
  5. $reponsebarrages = mysql_query("SELECT barrages, lecture, ecriture FROM autorisations WHERE mail='$mail'" )or die(mysql_error());
  6. ?>
  7.  
  8. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  9. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  10.   <head>
  11.   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  12.   <link rel="stylesheet" media="screen" type="text/css" title="Design" href="miseenpage.css" /><!--Lien avec miseenpage pour les styles-->
  13.   </head>
  14.  
  15. <body class=menu>
  16.   <h1 class=titremenu>Menu utilisateur</h1>
  17. <p class=corpsmenu>
  18. <form>
  19. <a href="compte.php">Compte utilisateur</a><br>
  20. </form>
  21. <?php while ($donneesbarrages = mysql_fetch_array($reponsebarrages))
  22. {
  23. ?>
  24. <form action="index.php" method="post">
  25. <input type="hidden" name="optionmenu" value=$donneesbarrages['barrages'] />
  26. <input type="submit" name="optionmenu" value=<?php echo $donneesbarrages['barrages'];?> /><br>
  27. <?php } ?>
  28. </form>
  29. </p>
  30.   </body>
  31. </html>


 
Voilà ton code "coloré", il suffit de le mettre entre les balises [c o d e=p h p] [ / code] (sans les espaces).
 
Bon si je comprend bien, tu as générer ton menu automatiquement selon l'utilisateur et tu veux qu'en cliquant sur le lien du menu, une variable soit modifiée.
 
Le plus simple est d'utiliser un lien comme ça :

Code :
  1. <a href="url.php?mavariable=mavaleur>lien</a>


 
Ensuite dans ta page cible tu récupère la valeur par un:

Code :
  1. $mavaleur=$_GET['mavariable']


 
Tu n'a pas besoin de sécurité si c'est juste pour transmettre une variable pour afficher une page.
 

n°1963364
k'stor
Posté le 05-02-2010 à 14:38:27  profilanswer
 

Merci pour ta réponse et la coloration syntaxique.
Ce que tu m'explique c'est la méthode GET le soucis c'est que je veux pas l'utiliser pour avoir un minimum de sécurité : ça m'oblige à vérifier que l'id de la personne est bien autorisée en plus de récupérer la variable pour afficher la page. j'aimerais utiliser le mode POST qui me permet d'être sur que si la variable a été créée c'est que la personne a les autorisations.  
Je crois que ma méthode FORM est pas sii mal finalement. Si tu as mieux je suis toujours preneur!

n°1963376
aspirateur
Posté le 05-02-2010 à 14:54:36  profilanswer
 

En aucun cas, le POST est plus sur  :non:  
 
Dans ton cas, il faut utiliser les sessions, tu aura un niveau de sécurité plus élevé et surtout ca sera plus simple. Il existe pas mal de tuto pour ça, en voici un par exemple: http://www.siteduzero.com/tutoriel [...] sions.html
 
 

n°1963394
k'stor
Posté le 05-02-2010 à 15:31:56  profilanswer
 

Ok et comment je fais mon lien qui donne une valeur à une variable $_SESSION['...'] ? Parce que ce que j'ai vu dans l'exemple (site du zero) que tu m'as donné c'est qu'il passe par des variables $_POST pour définir ses variables $_SESSION... Je voulais justement savoir si en faisant un lien cliquable on peut définir des variables telles que des sessions directement ou plus proprement que dans mon exemple.


Message édité par k'stor le 05-02-2010 à 15:33:38
n°1963402
aspirateur
Posté le 05-02-2010 à 15:52:31  profilanswer
 

Non ce n'est pas possible. De toute façon tes users d'identifient à l'aide d'un formulaire non?

n°1963403
k'stor
Posté le 05-02-2010 à 15:57:06  profilanswer
 

oui mais quand ils cliquent sur un des boutons du menu le corps du site doit changer en fonction

n°1963406
aspirateur
Posté le 05-02-2010 à 16:08:04  profilanswer
 

Tu utilise un lien type  <a href="url.php?mavariable=mavaleur>lien</a>
 
Niveau sécurité tu t'en fou puisqu'il y a une vérif après.

mood
Publicité
Posté le 05-02-2010 à 16:08:04  profilanswer
 

n°1963423
k'stor
Posté le 05-02-2010 à 16:46:37  profilanswer
 

Oui t'as raison ça m'emmerde mais je crois que je vais faire comme ça j'ai pas le choix.
Sinon quelqu'un connait un site où on peut trouver des modules php pour faire des graphiques?
EDIT : bon je viens de trouver ça  je pense que je devrais y trouver mon bonheur


Message édité par k'stor le 05-02-2010 à 17:10:57
n°1963857
k'stor
Posté le 08-02-2010 à 11:25:02  profilanswer
 

Bonjour,
Voilà j'ai un nouveau problème avec mes barrages le truc c'est que je sais même pas comment taper la recherche dans google :
j'ai deux tables qui ont chacune un champ "ouvrages", dans ces champs il peut y avoir plusieurs fois le même barrage. Je veux faire une requête qui affichera tous les barrages sans doublons.
j'étais parti sur un truc comme ça :

 

$reponseouvrages = mysql_query("SELECT DISTINCT ouvrages FROM autorisations, identifiants" )or die(mysql_error());

 

mais il met "Champ: 'ouvrages' dans field list est ambigu" je capte pas.
Quand je fais la même recherche dans une seule des deux tables il n'y a pas d'erreur mais quand je met les deux ça passe pas. Quelqu'un sait pourquoi?

 

Merci d'avance pour vos réponses.


Message édité par k'stor le 08-02-2010 à 11:27:04
n°1963859
fred777888​999
Posté le 08-02-2010 à 11:29:12  profilanswer
 

Ben parceque visiblement tu ne sais pas ce qu'est une jointure.
Va jeter un oeil sur la signature de 'magicbuzz' pour des notions elementaires de sql.
Sinon tu veux probablement faire un truc style

Code :
  1. select distinct ouvrages from autorisation
  2. union select distinct ouvrage from identifiants

n°1963866
k'stor
Posté le 08-02-2010 à 11:43:09  profilanswer
 

Ca a l'air de marcher! Merci
 
La signature de magicbuzz?
Il a pas l'air d'en avoir... Ou alors je sais pas ce que c'est  
Merci pour ton aide FRED!

n°1967079
k'stor
Posté le 18-02-2010 à 09:48:06  profilanswer
 

Salut j'ai un nouveau soucis...
Voilà pour chaque barrage, il est possible d'ajouter des capteurs, ce qui revient à ajouter un champ capteur"i" dans la table. Le soucis c'est qu'après je dois les récupérer pour les mettre dans un formulaire. je voulais savoir s'il existe une requête SQL du genre :
SELECT capteur% FROM...
Le but est de permettre de sélectionner uniquement les champs commençant par "capteur" dans ma table.
J'ai lu une réponse (je crois que c'est sur le forum de hardware.fr) où le type disait que c'était qu'il y avait une erreur de conception quand on devait faire des sélections sur des champs. je suis un peu d'accord mais ça serait tellement plus simple...
Merci d'avance pour vos réponses


Message édité par k'stor le 18-02-2010 à 10:05:08

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Attribuer une valeur à une variable en cliquant sur un lien

 

Sujets relatifs
Access ouverture d'un état paramétré avec variable VBARendre un diapo cliquable vers un lien
[annulé/résolu]soucis onMouseOver et onMouseOut sur lien + imageTester une variable avec des expressions régulière [DOS]
Pb de graphisme autour d'une video via un lien copiéune variable dans un awk '{print $}'
[resolu] Remplacer un lien par du texte une fois cliquéRecuperer valeur textbox pour connexion à une base Oracle
Problème lien hypertext en localhostLancer procédure quand on clique sur un lien hypertexte.
Plus de sujets relatifs à : Attribuer une valeur à une variable en cliquant sur un lien


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR