Champ <input type="file"> sans upload

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Champ <input type="file"> sans upload

par karpediem » 09 janv. 2007, 18:23

ça y est, je crois que j'ai trouvé !!!

c'est un pb de version de navigateur => j'ai une ancienne version alors que je travaille avec PHP 5.

ceux qui ont un navigateur à jour voient bien mes images et pô moua ;-((

après avoir remis en cause toutes les autres possibilités, il ne restait plus que celle- ci !

je mets donc résolu.

merci à tous pour votre aide, votre patience et vos conseils.

à bientôt et encore Bonne Année avec tout plein de bonnes choses.

par karpediem » 09 janv. 2007, 15:03

le fichier existe, le file_exists dit ok, le fichier existe... c'est pour cela que c'est d'autant plus incompréhensible...

par Ajoloca » 09 janv. 2007, 15:00

Bonjour,

Si tu as utilisé
if (file_exists())
et que ton fichier n'existe pas, c'est normal que le code pour l'image ne soit pas généré.

par karpediem » 09 janv. 2007, 14:57

dédolée, l'invité c'est moi, karpediem ;o)

bizz à toutes et à tous.

par Invité » 09 janv. 2007, 14:56

je rajoute une dernière remarque... vous n'allez pas me croire et je ne pourrai pas vous en vouloir ;o)

à un autre endoit de mon appli, je fais quelque chose de similaire, avec 1 loupe, là c'est toujours la même image qui pointe vers des fichiers différents... et bien moi je ne vois pas la loupe (rien dans mon code) et mon client si ! Moi je vois d'autres images que celle-ci ;o) mais pour celles-ci c'est carrement le code qui disparait de la page HTML. c'est incroyable !!

commment peut-on expliquer cela ?

le serveur est un serveur dédié client...

peut-être que la clé est là ? j'aimerai pouvoir expliquer cela pour le cas où, vous imaginez, nettement plus génant c'est moi qui vois les loupes et pas le client ;-(

Merci à tous et à bientôt

par karpediem » 07 janv. 2007, 16:54

petit erratum...

dans mon 2eme pavé de code, c'est bien :
echo '<a href="../fichier/'.$row["doc"].'" target="_blank" > <img src="../fichier/';
et non
echo '<a href="../../fichier/'.$row["doc"].'" target="_blank" > <img src="../../fichier/';
J'en profite (au risque d'abuser...) pour poser une question subsidiaire... Qu'est-ce qui fait qu'une balise image définie en php disparaisse du code html généré ? Si l'image n'existe pas, il devrait mettre une croix non ?

@ bientôt et merci @ tous

par karpediem » 07 janv. 2007, 16:42

Bonjour à toutes zé à tous,

Inspirée par vos suggestions, voici le résultat de mes tests :

- j'ai testé (inspirée par fab merci) => if(file_exists... avec le chemin relatif.
$im = '../fichier/'.$row["doc"];
echo '<a href="'.$im.'" target="_blank" > <img src="';
echo $im;
echo '" border="0"  width="30" height="22" /></a><br /> ';

if(file_exists($im)) { echo "oué"; } else { echo "pas bien"; } 
Il me dit 'oué' => il devrait donc trouver l'image... pourtant elle ne s'affiche pas. Lorsque je dis qu'elle ne s'affiche pas, c'est qu'il n'y a même pas une croix rouge, elle disparait carrément du code généré => je ne comprends pas pourquoi il ne mets pas la croix... Php a ses raisons que je ne connais pas...

- j'ai aussi testé (mercu ryle) de faire un echo du nom du fichier avec les tirets => le nom semble ok à l'affichage du echo...

- j'ai testé en mettant le nom d'une image à afficher en dur, mais le lien qui pointe sur des images différentes afin de tester le lien et aussi l'existence de l'image, des fois que file_exists me raconte des histoire ;o)
$im = "59_big01.jpg"; 
echo '<a href="../../fichier/'.$row["doc"].'" target="_blank" > <img src="../../fichier/';
echo $im;
echo '" border="0"  width="30" height="22" /></a><br /> ';
=> l'image s'affiche bien et le lien pointe bien sur la bonne image, différente à chaque fois...

Il semblerait que c'est dans la définition de l'image <img src=... que ça merdouillou... Pourtant les tests précédents ne donne pas de pistes dans ce sens d'autant que je mets EXACTEMENT la même chaine dans le <img src=... et dans le <a href=... et il trouve le <a href=... et pas le <img src=... => apparemment il ne travaille pas de la même façon dans les 2 cas ?

- Si je mets le chemin absolu (merci cyrano) => ça fonctionne correctement. Mon image s'affiche et pointe sur le bon lien !!

Ce qui m'étonne c'est qu'en utilisant l'adressage relatif, le même pour le chemin de l'image et pour le chemin du lien, le lien est ok mais pas l'image => quelqu'un peut m'expliquer ?

Je vais vous paraitre peut-être pénible ;o) mais c'est super cool, j'ai une solution mais EN PLUS j'aime bien comprendre ;o)

Merci à tous et longue vie à ce forum !

A bientôt

par fab » 06 janv. 2007, 14:07

déjà essaye
if(file_exists("../fichier/'.$row["doc"].'")) { echo "oué"; } else { echo "pas bien"; }

par Ryle » 06 janv. 2007, 12:09

Je ne sais plus trop où tu en es... quand tu dis que l'image n'apparait toujours pas, est ce parce que tu as la croix rouge ou bien est ce toujuors parce qu'elle disparait de ton code source ?

Le fait que le fichier ne commence pas par une lettre mais par un chiffre ne pose pas de problème en principe, pour lui ça reste juste une chaine.. En revanche, il faut éviter les accents et caractères spéciaux autres que "-" et "_"

Affiche avant ton if le nom du fichier, si jamais il contient une guillemet ou un truc comme ça (j'y crois pas mais c'est toujours bon de savoir avec quelles valeurs on travail ;))
echo '-'.$row["doc"].'-'; // les tirets c'est pour repérer les espaces éventuel en début ou fin.
if ( strlen($row["doc"]) > 1) 
  { 
  echo '<a href="../fichier/'.$row["doc"].'" target="_blank">'; 
  echo '<img src="../fichier/'.$row["doc"].'" width="21" height="29" border="0" />'; // laisse un espace avant le " />"
  echo '</a>'; 
  } 
else 
  echo '&nbsp;'; 

par Cyrano » 06 janv. 2007, 10:04

ça a tout d'un problème de chemin relatif : vérifie le code généré et vérifie que le chemin relatif l'est bien par rapport à la page en cours. Et éventuellement pour le test, mets un chemin absolu pour voir si ça fonctionnerait mieux.

par karpediem » 06 janv. 2007, 05:52

ça avance...

effectivement, ce n'est pas lié à l'emplacement...

si j'écris dans ma page :
$im = "59_big01.jpg";
echo '<a href="../fichier/'.$im.'" target="_blank" > <img src="../fichier/';
echo $im;
echo '" border="0"  width="30" height="22"/></a><br /> ';
ça se passe comme je veux => génial !

Sauf que bien sûr ce n'est pas tout à fait ça que je veux ;-(

ce que je veux c'est ça parce que je suis dans une boucle :
echo '<a href="../fichier/'.$row["doc"].'" target="_blank" > <img src="../fichier/';
echo $row["doc"];
echo '" border="0"  width="30" height="22"/></a><br /> ';
Et là, l'image ne s'affiche plus ;-( !!!

J'ai essayé pour coller au max aux lignes qui sont ok de passer par une variable :

Code : Tout sélectionner

$im = trim($row["doc"]);
Mais ça ne passe pas nom plus...

Peut-être que ça vient du nom récupéré dans $row["doc"] ? est-ce que ça peut poser un pb si le nom commence par un chiffre par exemple ? peut-on forcer le format à string ? c'est ce que j'ai essayé de faire en utilisant trim() mais sans succès ;-((

Je ne sais plus quoi essayer ;-(

Si quelqu'un a une idée, je prends ;o)

Merci et à bientôt

par karpediem » 06 janv. 2007, 04:33

je ne sais pas si ça peut donner des idée, mais dans ma page html généré par du php, si j'affiche le source j'ai ça :

Code : Tout sélectionner

<a href="../fichier/59_big01.jpg" target="_blank" > </a>
avec un grand espace blanc à la place de ce qui aurait du être :

Code : Tout sélectionner

<img src="../fichier/59_big01.jpg" width="20" height="25" border="0" />
ça inspire quelqu'un ?

merci

par karpediem » 06 janv. 2007, 03:34

et celle qui ne s'affiche pas à l'exécution est tout de même visible sous dream... elle existe donc bien...

y aurait-il 1 pb de parametrage de qq chose ? un pb de cotes / double côtes ?

ça dépasse mon entendement ;-(

merci...

par karpediem » 06 janv. 2007, 03:29

je ne vois pas ce que ça change alors que les 2 images existent...

ce que je vois (avec mes petits yeux un peu fermés ;o) c'est que dans les 2 cas j'ai le même lien :

Code : Tout sélectionner

<a href="../fichier/59_big01.jpg" target="_blank"></a>
je verifie avec ce lien que mon image "../fichier/59_big01.jpg" existe bien même si elle ne s'affiche pas...

ce qui se passe c'est que lorsque je mets ce lien sur une image, lorsque cette image est dans le même répertoire que le lien, mon image ne s'affiche pas, je n'ai donc pas accès au lien. En revanche, lorsque cette image est dans un autre répertoire, par exemple ../image/ mon image s'affiche bien et j'ai donc accès à mon lien...

j'ai essayé avec 2 répertoires qui se trouvent au même niveau d'arborescence, des fois que...

malgrès tout, je ne pense pas que html soit intelligent, ni les programmes d'ailleurs ;o) et je ne pense pas qu'il puisse dire : "comme tu as donné 2 fois le même chemin et bien non, je ne veux pas afficher, na !"...

mais je ne vois pas d'où ça peut venir alors que j'ai la même syntaxe...

si toi tu fais la même chose, tu visualises ton image ?

par Cyrano » 06 janv. 2007, 00:20

Dans le premier tu as ceci :
<img src="../image/loupe.gif
Alors que dans le second tu as :
<img src="../fichier/59_big01.jpg

Est-ce que ça serait une piste ?