Comment valider 2 browse avec un seul bouton submit ?

Eléphanteau du PHP | 13 Messages

21 avr. 2005, 09:51

Je m'explique:
- j'ai un browse qui me recupere le path d'un fichier (method=get).
- j'ai un browse qui me recupere un fichier (method=post).

Ils ont chaqu'un leur bouton submit et j'aimerai bien en avoir un seul qui teste la validité des deux en un seul coup et je vois pas trop comment faire, enfin du moins ce que j'ai essayé ne marche pas.

[code]
<? // ne pas sauter de ligne car le header() ne prnedra pas !!


//#########################------PARTIE POUR LE TRAITEMENT DU PATH A RENTRER (ex PATH du SEC.INI )
$path_correcte="vrai" ; // teste si c'est une bonne adresse de fichier qui est rentré
$path_demi_correcte="vrai" ; // teste si c'est une adresse fichier 'sec.ini'

if (isset($filepath))
{
$filepath=stripslashes($filepath);
//print(" coucou filepath: $filepath ");

if($filepath=='')
{
$path_correcte="faux" ;
$path_message1="<font color=\"red\"><i>Adresse de Fichier inexistante ou incorrecte !!</i></font>" ;
}
}

if ( ($path_correcte=="vrai") && (isset ($filepath) ) )
{
$name_file=basename($filepath);
if($name_file!="sec.ini")
{
$path_demi_correcte="faux" ;
$path_message2="<font color=\"red\"><i>Ce n'est pas une Adresse de fichier 'sec.ini' !!</i></font>" ;
}
else
{
print(" Super c'est un sec.ini ");
}
}
//###########################---------FIN DU TRAITEMENT DU PATH




//###########################---------PARTIE POUR LE TRAITEMENT DU FICHIER A UPLOADER
$file_correcte="vrai" ; // teste si c'est un fichier qui est donné en parametre
$file_demi_correcte="vrai" ; // teste si c'est un fichier 'sec.ini'

// userfile est le nom du champ de type file du formulaire
if (($userfile!=none)&&($userfile!=""))
{/*
if (!isset($fileNames))
{
$fileNames = array();
print("cocorico");
}
*/
// a ce moment, le fichier est sauvegardé dans /tmp (ou le répertoire défini par le serveur)
// il est alors recopié localement
// (un répertoire (de nom "fichiers" ici) doit alors être présent et autoriser l'écriture)

// remarque : si le champ de type file s'appelle userfile, il existe automatiquement une variable
// de nom $userfile_name contenant le nom strict du fichier

if($userfile_name!="sec.ini")
{
$file_demi_correcte="faux";
$file_message2="<font color=\"red\"><i>Ce n'est pas un fichier 'sec.ini' !!</i></font> ";
}
else
{
copy ($userfile,"fichiers_tmp/$userfile_name");
}

// suppression du fichier de /tmp
unlink ($userfile);


}
else
{
$file_correcte="faux";
$file_message1="<font color=\"red\"><i>Fichier inexistant ou nom incorrecte !!</i></font>";
}

//###########################---------FIN DU TRAITEMENT DE L' UPLOAD DE FICHIER




print("

<html>
<head>
<title>Téléchargement d'un fichier</title enctype=\"multipart/form-data\">
</head>

<!-- Début du formmulaire de sélection du path --!>
<form action=\" $PHP_SELF \" name=\"formulaire\" enctype=\"multipart/form-data\" method=get>
<strong>Please select the path to parse :</strong>
<input type=\"file\" name=\"filepath\" onKeyPress=\"formulaire.filepath.blur() \"> "); // si quelqu'un essaye de taper quelquechose, il ne peut pas car le focus est dans le vide
print("
<input type=\"submit\" value=\"Ok\">
<input type=\"reset\" name=\"clean\"> "); if ($path_correcte=="faux"){echo $path_message1 ;} if($path_demi_correcte="faux"){echo $path_message2 ;} print("
</form>


<!-- Début du formulaire de sélection du fichier --!>
<form action=\" $PHP_SELF \" name=\"formulaire2\" enctype=\"multipart/form-data\" method=post>
<strong>Please select the file to parse :</strong>
<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"1000000\">
<input type=\"file\" name=\"userfile\">
<input type=\"submit\" value=\"Ok\">
<input type=\"reset\" name=\"clean\"> "); if ($file_correcte=="faux"){echo $file_message1 ;} if($file_demi_correcte="faux"){echo $file_message2 ;} print("
</form>

</body>
</html>
");

?>
[/code]

Mammouth du PHP | 568 Messages

21 avr. 2005, 10:07

Rien ne t'empécher sur un bouton submit de glisser une action onClick. Elle s'exécutera, mais le submit() se fera obligatoirement... Donc au final c'est pas utile...

Créé plutôt un boutonnormal, et sur le onClick exécute une fonction. Ta fonction fera ce qu'elle a à faire, et si elle est contente du résultat (champs remplis), tu lui dis d'envoyer le formulaire avec formulaire.submit()
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Eléphanteau du PHP | 13 Messages

21 avr. 2005, 10:18

Pour résumer il faudrer que je face un bouton qui m'active les 2 deux submit quand je click dssus.
Un autre probleme je peux pas les regrouper en deux formulaire car l'un utilise la method get et l'autre post.

Mammouth du PHP | 568 Messages

21 avr. 2005, 10:20

Euh non attends... Quand tu enverras le 1er formulaire, s'en sera finis de l'autre... La question alors est : pourquoi avoir fait 2 formulaires :?:
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

ViPHP
ViPHP | 2144 Messages

21 avr. 2005, 10:22

Je ne suis jamais parvenu à comprendre l'intérêt de récuperer le path d'un fichier sur une machine client, où l'on a de toute façon pas accès...
Si tu peux m'expliquer le comment du pourquoi ?? :D :D :D

Eléphanteau du PHP | 13 Messages

21 avr. 2005, 10:40

Ok alors allons-y.
Je suis en stage et je suis entrain de faire un automate qui gére l'acces aux fichiers du reseau selon les droits des utilisateurs.
Sur les disques qui sont en acces reseaux il y'a des fichier sec.ini qui gère la securité.
Et l'utilisateur pourra etre amener a changer ces fichiers, pour les remplaçer par un autre (avec une securité differente).
C'est pourquoi je dois faire un formulaire qui récupere le chemin du fichier sec.ini à modifier ainsi que le fichier par laquel il sera remplaçé.
Vous savez tout maintenant les coco.

Invité
Invité n'ayant pas de compte PHPfrance

21 avr. 2005, 13:46

Ok alors allons-y.
Je suis en stage et je suis entrain de faire un automate qui gére l'acces aux fichiers du reseau selon les droits des utilisateurs.
Sur les disques qui sont en acces reseaux il y'a des fichier sec.ini qui gère la securité.
Et l'utilisateur pourra etre amener a changer ces fichiers, pour les remplaçer par un autre (avec une securité differente).
C'est pourquoi je dois faire un formulaire qui récupere le chemin du fichier sec.ini à modifier ainsi que le fichier par laquel il sera remplaçé.
Vous savez tout maintenant les coco.