Une aide pour une requête php strpos dans le contexte de tableau

Résolu/Fermé
Sebas22 Messages postés 110 Date d'inscription jeudi 13 mai 2010 Statut Membre Dernière intervention 24 juillet 2018 - Modifié par Sebas22 le 15/06/2016 à 15:58
Sebas22 Messages postés 110 Date d'inscription jeudi 13 mai 2010 Statut Membre Dernière intervention 24 juillet 2018 - 17 juin 2016 à 18:13
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

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
15 juin 2016 à 17:26
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,
0
Sebas22 Messages postés 110 Date d'inscription jeudi 13 mai 2010 Statut Membre Dernière intervention 24 juillet 2018 5
17 juin 2016 à 18:13
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
0