par
michou357 » 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]
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]