Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/09/2011, 12h51   #1
Membre à l'essai
 
Vanessa RIGOULT
Inscription : février 2011
Messages : 191
Détails du profil
Informations personnelles :
Nom : Vanessa RIGOULT

Informations forums :
Inscription : février 2011
Messages : 191
Points : 22
Points : 22
Par défaut Problème d'affichage d'un aréa

Bonjour

J'ai une images map avec plusieurs aréa (régions françaises), quand je clic sur un aréa j'affiche l'image de la région et je mets le nom de la région en variable de session pour pouvoir la récupérer sur différentes pages.

Code :
<area shape="poly" coords="6,87,31,90,48,90,61,91,72,94,76,94," href="page2.php?<?php $_SESSION['Reg'] = "Bretagne";?>" alt="Bretagne"/>
Sur la page2.php j'ai placé en début de page un session_start
Code :
1
2
3
4
5
<?php 
session_start();
include('header5.php');
include ('connect.php');
?>
et je récupere la variable pour faire une requete adoDB sur une table access pour obtenir le nom de l'image de la région et l'afficher

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$table="Regions";
$Reg = $_SESSION['Reg']; 
$requete = "SELECT * FROM $table WHERE Nom='$Reg'";  // Selectionne la region
$resultat = $conn->execute($requete); // execute la requete
$image = $resultat->Fields(2);        // carte de la region
while(!$resultat->EOF)  
{
echo"<img alt=\" \" src=\"img/".$image."\"/>";
$resultat->MoveNext(); 
}
$resultat->Close(); // ferme la requete
?>
Le problème c'est que cela m'affiche l'image du dernier aréa et non celui cliqué
Pouvez-vous me dire ou est l'erreur
Vanessa48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 14h16   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 661
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 661
Points : 5 387
Points : 5 387
Alors, il faut te rappeler que l'affichage de ton area et ton clic sont côté client, alors que la session est côté serveur. Tu ne peux donc pas "envoyer" une valeur en session.
Il faut que tu envoies cette valeur via le lien, que tu la récupères via $_GET et éventuellement que tu la mettes en session.
Code :
<area shape="poly" coords="6,87,31,90,48,90,61,91,72,94,76,94," href="page2.php?reg=<?php echo "Bretagne";?>" alt="Bretagne"/>
Code :
1
2
3
4
5
<?php
$table="Regions";
$Reg = $_GET['reg']; //récupération 
$_SESSION['Reg'] = $Reg; //éventuellement on le stocke en session pour la conserver
$requete = "SELECT * FROM $table WHERE Nom='$Reg'";  // Selectionne la region
Attention : il faudrait passer la variable par une fonction comme mysql_real_escape_string avant de l'injecter dans ta requête SQL ou utiliser des requêtes préparées, histoire d'éviter les injections SQL...
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 16h42   #3
Membre à l'essai
 
Vanessa RIGOULT
Inscription : février 2011
Messages : 191
Détails du profil
Informations personnelles :
Nom : Vanessa RIGOULT

Informations forums :
Inscription : février 2011
Messages : 191
Points : 22
Points : 22
Merci pour ton aide, cela est OK

Par contre j'ai regardé le lien, mais je ne comprend pas comment modifier mon code pour passer la variable par une fonction comme mysql_real_escape_string
je suis en base Access, j'ai essayé :

Code :
1
2
$requete = sprintf("SELECT * FROM $table WHERE user='%s'",
mysql_real_escape_string($Reg));
Mais c'est pas bon

Est-il possible dans ma requete d'inserer une condition If/end-if

pour verifier si un champs de la table est nul ?
Vanessa48 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h41.


 
 
 
 
Partenaires

Hébergement Web