Réaffichage d'un formulaire

Résolu
cs_ninoy Messages postés 2 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 - 31 mai 2007 à 14:39
cs_ninoy Messages postés 2 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 - 6 juin 2007 à 10:15
Bonjour!

Je suis en train de créer un formulaire,et j'ai quelques problèmes...
Pour commencer, mon formulaire contient 2 input type text, un textarea et un champ type= file pour l'upload d'images.
Je tiens à signaler que ne pouvant pas imbriquer un formulaire dans un autre, j'ai choisi d'ajouter ce script dans mon formulaire default.tpl : (aussi, pour compliquer les choses, j'utilise les templates, c'est la page index.php(avec toutes les fonctions) qui appelle la page default)

<SCRIPT language='JavaScript'>
include("http://***.phpnet.org/***/***/***/uploadimg.php");
</SCRIPT>

Je poste ce message car je n'arrive pas à afficher l'image juste uploadée dans le formulaire default.tpl. Voici des bouts de codes pour vous montrer ce qu'il en est :

uploadimg.php :
<form method="POST"  ENCTYPE="multipart/form-data" action="">
    &nbsp;
   

    Browse your computer to add an image
(.jpg/jpeg, .gif, .png only - 1Mo max.)
                           
</form>

//[...] Test du type et de la taille de l'image + redimension
// si le fichier est plus petit que $taille_max pas besoin de le miniaturiser
}
else {
$nom_fichier_reduit = $fichier_n_nom;
}
/*************************************
nom du fichier non reduit :$fichier_n_nom
nom du fichier reduit :$nom_fichier_reduit
*************************************/
// transfert ok   
echo "You well added your image.
";
//afichage
$t=new template;
if (!empty($_POST)) {
    if (isset($_POST['add_file'])) {
        $chemin="upload/".$fichier_n_nom";
        if(is_file("upload/mini/mini_".$fichier_n_nom))
            $image="upload/mini/mini_".$fichier_n_nom;
        else $image="upload/".$fichier_n_nom;
            //affiche l'image dans le formulaire
            echo "[{chemin} ]

Hélas, mon image ne s'affiche pas, et pire mon formulaire non plus.
Je voulais donc savoir si c'est le script d'upload de l'image qui doit être placé autre part que dans uploadimg.php avec son formulaire, comme par exemple dans index.php avec les autres fonctions. Ou est-ce dû à une autre erreur de ma part.

Merci d'avance pour vos réponses.

1 réponse

cs_ninoy Messages postés 2 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 6 juin 2007
6 juin 2007 à 10:15
Bonjour,

Grâce à l'aide d'une autre personne j'ai pu trouver ce que je chercher.
Rappel du problème : réaffichage d'un formulaire, et gestion de 2 submit.
Voici la solution : 3 étapes
<?
// on réoriente vers l'étape par défaut
if (!isset($_POST['action']))
{$action="etape1";}
else{$action=$_POST['action'];}

// on récupère les variables si elles sont postées
//fichier upload
if (!isset($_POST['fichier_upload'])){$fichier_upload="";}else{$fichier_upload=$_POST['fichier_upload'];}
//autres variables
if (!isset($_POST['***'])){$***="";} else{$***=$_POST['***'];}
...

// on entre dans la bonne étape de notre processus if ($action=="etape1"){
// maintenant on va faire l'upload
// pour éviter d'utiliser tout le temps echo on va sortir du script php et utiliser de l'html
?>
<FORM action="index.php?writer" ENCTYPE="multipart/form-data" METHOD="POST" name="formetape1">

</FORM>;
<?
// on rerentre dans le script php de l'étape 1
}// fin de l'étape 1

Partie 2 if ($action=="etape2"){
// si tu entre ici c'est que tu a posté le formetape1
// tu peux tester tes variables en mettant des commandes echo de ce type
// echo"$fichier_upload";

/*
//SCRIPT UPLOAD D'IMAGES !
*/

// pour éviter d'utiliser tout le temps echo on va sortir du script php et utiliser de l'html
//affichage de l'image où vous voulez dans le formulaire
?><FORM action="index.php?writer" METHOD="POST" name="formetape2">

Title
Your Name

Content

<textarea name="content" cols="60" rows="10"><?/*moi j'ai mis le chemin dans le content*/ echo $lienimg?></textarea>

</FORM>
<?
// on rerentre dans le script php de l'étape 2
}// fin de l'étape 2

Partie 3 if ($action=="etape3"){
// ici on complète le fichier log
if(isset($_POST["title"])&&isset($_POST["namea"])&&isset($_POST["content"])) {
// enregistrer votre formulaire
/*
CODE POUR LOG
*/
// là tu le remercies
echo "Ajouté, BRAVO!";
}
}// fin de l'étape 3
?>

Voilà.
3
Rejoignez-nous