Une aide pour une requête php strpos dans le contexte de tableau [Résolu/Fermé]

Signaler
Messages postés
128
Date d'inscription
jeudi 13 mai 2010
Statut
Membre
Dernière intervention
24 juillet 2018
-
Messages postés
128
Date d'inscription
jeudi 13 mai 2010
Statut
Membre
Dernière intervention
24 juillet 2018
-
Bonjour à tous, Bonjour le forum,

D'abord il faut indiquer que je ne suis pas un expert (et je ne vise pas à le devenir), mais que je ne suis pas novice non plus.
J'utilise le type tableau en php-mysql et une requête type simple va s'écrire:

echo '<p>Couleur: <b>' . $resultat[0]["Couleur"] . '</b></p>';

Et çà marche en local et en ligne!

Bon maintenant j'ai une requête plus compliquée à écrire et çà se passe plutôt mal.

Il s'agit, après avoir vérifié qu'un texte dans un champ ne contient pas le caractère $, d'aller chercher une image dans un sous-dossier.

Concrètement:

le champ est Group_Abbr
le texte du champ comprend 1 à 10 caractères, dont parfois $ (et si oui, toujours à la fin)
le fichier screenmap, dans le dossier racine contient le code
<?php
if(!empty($_GET['file']))
{
$image = $_GET['file']; // A sécuriser pour ne pas lire n'importe quoi
header("Content-type: image/jpeg");
// A adapter en fonction de l'image
readfile('Cartes/'.$image);
}
else
{
// erreur pas d'image
}
?>

l'image sous forme d'une carte se trouve dans le sous-dossier Cartes

La requête est la suivante

if (strpos($resultat[0]["Group_Abbr"],'$') ===FALSE){echo '<p><img border="0" src="screenmap.php?file=" ' . $resultat[0]["Group_Abbr"] . '-map.jpg" alt="legend" title="map"</p>';} else {echo '<p>Carte: ' . $resultat[0]["Report"] . '</p>';}

En local, j'obtiens : legend
comme s'il ne trouvait pas la carte (pourtant j'ai bien vérifié, j'ai bien mon fichier screenmap.php et j'ai bien une carte correspondante si pas ‘$’)
Si par contre la chaîne contient $ alors l'instruction else marche

Quel est le souci?
J'ai cherché, cherché mais je ne trouve pas.

Un coup de main svp!

Merci d'avance

Seb



2 réponses

Messages postés
2379
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
10 mars 2020
426
Salut,

L'erreur semble simplement venir d'une erreur de syntaxe html. En effet tu ferme l'attribut src de ton image via un guillemet double juste après le paramètre file=. Il te manque également la fermeture de la balise img.
echo '<p><img border="0" src="screenmap.php?file=" ' . $resultat[0]["Group_Abbr"] . '-map.jpg" alt="legend" title="map"</p>';

A corriger en :
echo '<p><img border="0" src="screenmap.php?file=' . $resultat[0]["Group_Abbr"] . '-map.jpg" alt="legend" title="map"></p>';


En regardant le code source généré de ta page html, tu aurais pu voir que l'attribut src était mal renseigné puisque tu dois avoir quelque chose comme ceci :
<img src="screenmap.php?file=" fichier-map.jpg" alt="legend"

à la place de :
<img src="screenmap.php?file=fichier-map.jpg" alt="legend">


Bonne journée,
Messages postés
128
Date d'inscription
jeudi 13 mai 2010
Statut
Membre
Dernière intervention
24 juillet 2018
5
Bonjour Pitet,

Ah, merci, çà marche nickel!
Je m'étais emmêlé avec les guillemets et apostrophes.
Une erreur de débutant.
Ironie du sort j'avais commencé le fil avec 'pas novice'... la honte.

Bon, merci encore.
C'est bien d'avoir un oeil de lynx comme toi!

Je marque résolu!

Seb