Utilisant la fonction PHP include() pour inclure une image png
Ok les gens, en dépit de la plus connue des pratiques, aujourd'hui, j'ai décidé de le faire:
<img src='<? include("dir/dir/img.png"); ?>'>
Avec 6 diferent .les images png.
Malheureusement, seulement 2 des 6 étaient bien visibles sur le navigateur.
Pourquoi seulement 2 des 6 images ont été montrées? Peut-être il y avait des pertes de données bits sur le chemin?
Je vous remercie pour votre temps :]
Qu'essayez-vous de faire? Pourquoi ne pas imprimer le chemin d'accès au fichier?
xD oui, c'est plus utile.
xD oui, c'est plus utile.
OriginalL'auteur sadasant | 2010-08-11
Vous devez vous connecter pour publier un commentaire.
Il ne fonctionne pas parce que
src
attribut d'un<img>
balise n'est pas censé contenir les données brutes de l'image; plutôt, il est censé contenir un URI qui pointe vers les données de l'image.En utilisant
data:
Uri, vous pouvez insérer l'image directement dans votre (X)HTML du document. Notez que cela ne fonctionne pas dans la plupart des navigateurs tels que les anciennes versions d'Internet Explorer. Ainsi, il y a des limites, telles que la limite de 32 ko IE8 endroits surdata:
Uri.À l'aide de PHP, voici ce que votre code devrait ressembler à:
Ne pas oublier de changer le
image/png
partie de l'URL si le type d'image que vous utilisez des changements. Par exemple, si vous utilisez une image GIF, de le modifier pourimage/gif
.L'étrange fait est que cela a fonctionné 2 fois XD!!! mais, bon, vous venez de donner le droit chemin. Merci :]
OriginalL'auteur Dumb Guy
Qui n'était pas censé travailler à tous.
Pour une méthode standard pour le faire (y compris les images en ligne dans le document HTML au lieu de pointer vers l'URL), voir la
schéma d'URI.
file_get_contents
de lire un fichier au lieu de l'appelerinclude
. (include
d données est un risque de sécurité!)Vous avez raison. Si il contrôle les images, ce n'est pas nécessairement un risque pour la sécurité, mais l'image peut contenir, par hasard, les personnages
<?
. Pour ne pas mentionner, il sort immédiatement, de sorte qu'il ne peut pas manipuler les données pour générer les données de l'URI.Vous ont certains tampon de sortie de kung-fu...
OriginalL'auteur Artefacto
include()
dit à PHP pour parser ce fichier. Si, par hasard, il contient<?
, vous serez en réelle difficulté. Au lieu de cela, utiliserreadfile()
.En outre, Artefacto la réponse doit être considéré comme bien.
En effet, et il y a une ÉNORME vulnérabilité ici. Ouvrez l'image dans Gimp, ajouter du CODE PHP dans la section des COMMENTAIRES, et essayer de l'inclure à nouveau. IL VA EXÉCUTER DU CODE PHP À PARTIR D'UN FICHIER IMAGE! -- très dangereux choses en utilisant inclure pour tout fichier ne devrait pas avoir de code PHP. Si vous avez inclus un utilisateur à l'image téléchargée, ou même celui que vous avez trouvé (au lieu de), vous pourriez être de placer une porte dérobée sur votre serveur!
Ouais, c'est ce que je voulais dire. En fait, j'ai réussi à exploiter un CMS à l'aide de cette technique, une fois. 🙂
OriginalL'auteur scy
OriginalL'auteur judge