Une aide pour une requête php strpos dans le contexte de tableau
Résolu
Sebas22
Messages postés
119
Statut
Membre
-
Sebas22 Messages postés 119 Statut Membre -
Sebas22 Messages postés 119 Statut Membre -
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
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
A voir également:
- Une aide pour une requête php strpos dans le contexte de tableau
- Tableau word - Guide
- Tableau ascii - Guide
- Imprimer tableau excel sur une page - Guide
- Trier un tableau excel - Guide
- Dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des quatre premières colonnes. - Guide
2 réponses
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.
A corriger en :
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 :
à la place de :
Bonne journée,
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,