Téléchargement - Problème inconnu

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 : Téléchargement - Problème inconnu

par chrislabricole » 22 juin 2007, 13:29

:o je n'y avait pô pensé.... 8-) :lol: merci !
sa marche nikel !
jmet le tag résolu lol

merci !

par Ryle » 22 juin 2007, 10:50

ah bah en théorie si tu mets $file à vide, il devrait te faire une erreur quand tu tente de forcer le download car il ne trouveras pas le fichier...

Si le default est vide, il ne sert à rien... il va rentrer dedans, ne rien faire et passer à la suite...

Quant au test isSet() dès le moment ou la variable est définie (même vide) il sera vrai, mais dans tous les cas, ce n'est pas dans la déclaration des paramètres qu'il faut le mettre.

Tu peux essayer quelque chose comme ceci :
//conditions 
if (isSet($_GET['file']))  { 

    switch ($_GET['file']) {   
         case '01' : 
             $file = 'images/google.gif'; 
             break;   
         case '02' : 
             $file = 'images/date/appetit_soir.gif'; 
             break; 
         case '03' : 
             $file = 'index.php'; 
             break; 
         default : // pour toute autre valeur $file sera vide
             $file = '';
             break; 
    }  

    if ($file != '') { // on ne fait le download que si le chemin n'est pas vide
          download($file);   //se que l'on va télécharger au final... 
    }

} 
?>

par chrislabricole » 21 juin 2007, 17:32

bah si je rajoute sa dans le switch, sa fais pareil...
default :
$file='';
break;
ou sa:
default :
break;
et j'ai aussi essayé de rajouter un empty() ou un isset() dans :
download(empty ou isset($file));
mais il n'y a rien qui marche...

par Ryle » 21 juin 2007, 15:59

C'est parce que tu utilises le même nom de variable pour spécifier tes 01, 02, 03 que celui dans lequel tu mets le nom de fichier.

Si jamais le switch ne trouve aucun case avec une valeur correspondante à celle qui test, il sort et $file reste inchangé, du coup quand tu appelles ta fonction tu lui passes directement le nom du fichier qu'il va télécharger...

Tu peux donc soit distinguer les deux variables, soit ajouter un cas par défaut (default) dans ton switch pour récupérer toutes les valeurs que tu n'as pas prévu pas et envoyer promener l'utilisateur s'il les utilise :)

par chrislabricole » 21 juin 2007, 15:51

a !! sa marche mieux, mais un petit détail me tracasse....
quand il n'y a pas la fariable get['file'] dans l'url, bé sa télécharger script.php (la page dans laquele il y a le code....)

par exemple:
script.php?file=01 :
télécharge images/google.gif

script.php?file=02 :
télécharge images/date/appetit_soir.gif

etc

mais si je met:
script.php :
télécharge script.php
(il s'auto-télécharge..)
et je voudrait qu'il se passe rien...

et j'sais vrey'ment pas comment faire...

merci de votre aide !

par Ryle » 21 juin 2007, 10:05

Peut être faudrait-il indiquer que ta fonction est susceptible de recevoir des paramètre ou déclarer ta variable $file comme étant globale, sans quoi elle sera considéré comme locale et non définie à l'intérieur de ta fonction ;) :
function download($file) { // spécifié en paramètre
  ...
}
// ou bien 
function download() { 
  global $file; // déclarée comme variable globale
  ...
}

par chrislabricole » 20 juin 2007, 23:08

bah oui !
le titre est
"Mon code de téléchargement ne Marche pas...."
quesqu'il ne va pas ??
il n'y a pas de "help" ou de "aidez moi", c'est vrai , Mon code de téléchargement ne Marche pas...

par zeus » 20 juin 2007, 22:56

dit donc, chrislabricole, il me semble que le message de Cyrano est assez clair :evil:

Je te demande d'éditer ton 1er message pour changer le titre, sinon, je verrouille le sujet

par chrislabricole » 20 juin 2007, 22:56

bah oui, avec le echo...

par thehawk » 20 juin 2007, 22:54

est tu sur a 100% que ta fonction bonne ... as tu tester
?

par chrislabricole » 20 juin 2007, 22:40

bah oui, pourquoi ? elle est pas bonne ?
pour faire un test, j'ai rajouter :
echo $file;
et sa affichier bien le chemin correspondant à la valeur de get['file']
.....
c'est pour sa que chui complètement séché la... :roll:

par thehawk » 20 juin 2007, 22:26

as tu verifier que tu rentrer bien dans ton switch ? , que ta fonction est correct ?

par chrislabricole » 20 juin 2007, 22:23

se qui ne va pas:
que la valeur de get['file'] est 01 ou 02 ou 03, bé il va toujours me faire télécharger la page php sur laquelle est exécuter... (si ce code est dans "down.php" il va me faire télécharger cette page (il va s'auto télécharger :lol:))
et je sais pas pourquoi.....

Merci de votre aide

par thehawk » 20 juin 2007, 22:03

Et que'est ce qui va pas ....

par Cyrano » 20 juin 2007, 21:59

Modération :
Merci d'utiliser un titre clair et qui correspond bien à ta demande.
Les titres contenant "HELP", "Aidez-moi !" n'apportent rien à la compréhension de ton problème.
Par ailleurs, nous savons déjà par ton message que tu as besoin d'aide.

Tu peux corriger ton titre en éditant ton premier message.

Merci de prendre le temps de lire les règlements.