Comment récupérer un fichier d'un formulaire $_FILES ?
Résolu
fabi00
Messages postés
82
Date d'inscription
Statut
Membre
Dernière intervention
-
fabi00 Messages postés 82 Date d'inscription Statut Membre Dernière intervention -
fabi00 Messages postés 82 Date d'inscription Statut Membre Dernière intervention -
Bonjour, c'est encore moi :P
Je suis encore sur le même formulaire, il avance doucement mais sûrement. Je récupère toutes les données du formulaire, sauf le fichier. Avant j'avais mis un $_post le fichier, mais je récupérais uniquement le nom du fichier.
Je me suis renseigné et il faut passer par un $_FILES. J'ai regardé un tuto, mais mon formulaire est beaucoup plus conséquent et donc plus difficile à mettre en place. C'est pour cela que j'ai besoin de votre aide pour mettre en place cela et surtout devenir un maitre du PHP ^^. En effet je débute ce langage.
Je fais ça avec un serveur apache en local host, je ne sais pas si ça peut être une bonne information.
Pour débuter j'ai bien mis le fameux enctype="multipart/form-data"
Donc voici la partie du formulaire où j'ai introduit l'input de type "file"
Et voici la partie PHP pour récupérer le fichier
et ça c'est la partie où j'affiche le résultat sur une autre page
Avec tout ça je me ramasse comme message que "fichier" n'est pas défini et aussi Notice: Trying to access array offset on value of type null
Voici le code complet pour les curieux ^^
Et le code de la page de renvoi
S'il vous plaît help >.<
Je suis encore sur le même formulaire, il avance doucement mais sûrement. Je récupère toutes les données du formulaire, sauf le fichier. Avant j'avais mis un $_post le fichier, mais je récupérais uniquement le nom du fichier.
Je me suis renseigné et il faut passer par un $_FILES. J'ai regardé un tuto, mais mon formulaire est beaucoup plus conséquent et donc plus difficile à mettre en place. C'est pour cela que j'ai besoin de votre aide pour mettre en place cela et surtout devenir un maitre du PHP ^^. En effet je débute ce langage.
Je fais ça avec un serveur apache en local host, je ne sais pas si ça peut être une bonne information.
Pour débuter j'ai bien mis le fameux enctype="multipart/form-data"
<form enctype="multipart/form-data" action="" method="post">
Donc voici la partie du formulaire où j'ai introduit l'input de type "file"
<label for="fichier">Importez vos fichiers ici</br></label> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> <input type="file" id="fichier" name="fichier" class="fichier" accept="image/png, image/jpeg, .ai, .eps, .pdf, .svg">
Et voici la partie PHP pour récupérer le fichier
$fichier=$_POST['fichier']; $_FILES['fichier']=$fichier;
et ça c'est la partie où j'affiche le résultat sur une autre page
echo $_FILES['fichier']['name']
Avec tout ça je me ramasse comme message que "fichier" n'est pas défini et aussi Notice: Trying to access array offset on value of type null
Voici le code complet pour les curieux ^^
<?php //On démarre une nouvelle session session_start(); //Boutton fermer1 if(isset($_POST['fermer1'])){ header('Location: #'); $_SESSION = array(); } //Boutton fermer2 if(isset($_POST['fermer2'])){ header('Location: #'); $_SESSION = array(); } //Boutton fermer3 if(isset($_POST['fermer3'])){ header('Location: #'); $_SESSION = array(); } //Formulaire 1 //Si on appuie sur le bouton "suivant" if(isset($_POST['suivant'])){ //On récupère les données dans $_POST $modele=$_POST['modele']; $taille=$_POST['taille']; $couleur=$_POST['couleur']; $quantite=$_POST['quantite']; //On définit des variables de session $_SESSION['modele'] = $modele; $_SESSION['taille'] = $taille; $_SESSION['couleur'] = $couleur; $_SESSION['quantite'] = $quantite; //Si on ne sélectionne pas une quantité if($quantite == false){ $afficheErreur1 = "<h4>Veuillez ajouter une quantité</h4>"; } else{ // On va sur le formulaire 2 header ('Location: #demo2'); die(); } } //Formulaire 2 //Si on appuie sur le bouton "suivant" if(isset($_POST['suivant1'])){ //On récupère les données dans $_POST $qualite=$_POST['qualite']; $zone=$_POST['zone']; $impression=$_POST['impression']; $fichier=$_POST['fichier']; $_FILES['fichier']=$fichier; //On définit des variables de session $_SESSION['qualite'] = $qualite; $_SESSION['zone'] = $zone; $_SESSION['impression'] = $impression; //$_SESSION['fichier'] = $fichier; // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur /*if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0) { }*/ //Si l'utilisateur n'envoie pas de fichier if(empty($_FILES['fichier'])){ $erreurFichier="<h4>Veuillez ajouter un fichier</h4>"; } else{ // On va sur le formulaire 3 header('Location: #demo3'); } } //Si on appuie sur le bouton "Précèdent" if(isset($_POST['retour1'])){ // On va sur la formulaire 1 header('Location: #demo1'); die(); } //Formulaire 3 //Si on appuie sur le bouton "suivant" if(isset($_POST['suivant2'])){ //On récupère les données dans $_POST $prenom=$_POST['prenom']; $nom=$_POST['nom']; $email=$_POST['email']; $telephone=$_POST['telephone']; $client=$_POST['client']; $precision=$_POST['precision']; $_SESSION['prenom'] = $prenom; $_SESSION['nom'] = $nom; $_SESSION['email'] = $email; $_SESSION['telephone'] = $telephone; $_SESSION['client'] = $client; $_SESSION['precison'] = $precision; //Envoie du formulaire // C'est l'adresse ou va être envoyé les données du formulaire $to = "fabio.cecere2509@gmail.com"; //adresse de l'utilisateur $from = $_SESSION['email']; $subject = "Soumission du formulaire"; $subject2 = "Copie de votre formulaire de soumission"; $message = $_SESSION['prenom'] . " " . $_SESSION['nom']; $message2 = "Voici une copie de votre message " . $_SESSION['prenom'] . " " . $_SESSION['nom']; //adresse de l'utilisateur qui envoie le mail $headers = "From:" . $from; //adresse de l'entreprise $headers2 = "From:" . $to; if($prenom == false || $nom == false || $email == false || $telephone == false){ $afficheErreur2 = "<h4>Veuillez compléter les champs obligatoires *</h4>"; } else{ //envoie du formulaire /*if(mail($to,$subject,$message,$headers) && mail($from,$subject2,$message2,$headers2)){ //header('Location: #'); echo "Votre message a bien été envoyé"; $_SESSION = array();*/ header('Location: recupDataTest.php'); } /*else{ //non envoyer //header('Location: #'); echo "Votre message n'a pas pu être envoyé"; $_SESSION = array(); }*/ } //Si on appuie sur le bouton "Précèdent" if(isset($_POST['retour2'])){ // On va sur le formulaire 2" header('Location: #demo2'); die(); } ?> <!DOCTYPE htlm> <html lang="fr"> <head> <meta charset="utf-8"/> <meta http-equiv="X_UA-Compatible" content="IE=edge"> <title>Formulaire de devis</title> <style> #quantite{ width:3.5em; } select option[value="bleu"]{ background: blue; } select option[value="rouge"]{ background: red; } select option[value="vert"]{ background: green; } h4{ color: red; } a { margin-top: 10px; margin: 44%; text-decoration: none; padding: 15px; background-color: white; border-radius: 5px; text-transform: uppercase; color: black; border: solid black; } a:hover{ background-color: black; color: white; } .modal1 { visibility: hidden; opacity: 0; position: absolute; top: 0; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: center; background: rgba(77, 77, 77, .7); transition: all .4s; } .modal1:target { visibility: visible; opacity: 1; } .modal_content1 { border-radius: 4px; position: relative; width: 500px; max-width: 90%; background: white; padding: 1.5em 2em; } .modal_close { position: absolute; top: 10px; right: 10px; color: grey; text-decoration: none; border: solid white; background: white; } .modal_close:hover{ color: black; background: lightgrey; } .modal2 { visibility: hidden; opacity: 0; position: absolute; top: 0; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: center; background: rgba(77, 77, 77, .7); transition: all .4s; } .modal2:target { visibility: visible; opacity: 1; } .modal_content2 { border-radius: 4px; position: relative; width: 500px; max-width: 90%; background: white; padding: 1.5em 2em; } .modal3 { visibility: hidden; opacity: 0; position: absolute; top: 0; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: center; background: rgba(77, 77, 77, .7); transition: all .4s; } .modal3:target { visibility: visible; opacity: 1; } .modal_content3 { border-radius: 4px; position: relative; width: 500px; max-width: 90%; background: white; padding: 1.5em 2em; } </style> </head> <body> <a href="#demo1">Devis Express</a> <!--Formulaire 1 --> <div id="demo1" class="modal1"> <div class="modal_content1"> <h1>Votre demande de devis</h1> <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p> <h2>Vos besoins (Total de 10 pièces minimum)</h2> <form enctype="multipart/form-data" action="" method="post"> <input type="submit" name="fermer1" class="modal_close" value="x"/> <p> <?php $modele = !empty($_SESSION['modele']) ? $_SESSION['modele']: NULL; ?> <label for="modele">Modèle</label> <select name="modele" id="modele"/> <option value="T-shirts" <?php echo $modele=="T-shirts" ? "selected='selected' " : "" ;?>>T-shirts</option> <option value="Sweat-shirts" <?php echo $modele=="Sweat-shirts" ? "selected='selected' " : "" ;?>>Sweat-shirts</option> <option value="Pulls" <?php echo $modele=="Pulls" ? "selected='selected' " : "" ;?>>Pulls</option> </select> <label for="quantite">Quantité</label> <input type="number" name="quantite" id="quantite" class="quantite" min="10" value="<?php if (isset($_SESSION['quantite'])){echo $_SESSION['quantite'];} ?>"/> <br></br> </p> <p> <?php $taille = !empty($_SESSION['taille']) ? $_SESSION['taille']: NULL; ?> <label for="taille">Taille</label> <select name="taille" id="taille"/> <option value="XS" <?php echo $taille=="XS" ? "selected='selected' " : "" ;?>>XS</option> <option value="S" <?php echo $taille=="S" ? "selected='selected' " : "" ;?>>S</option> <option value="M" <?php echo $taille=="M" ? "selected='selected' " : "" ;?>>M</option> <option value="L" <?php echo $taille=="L" ? "selected='selected' " : "" ;?>>L</option> <option value="XL" <?php echo $taille=="XL" ? "selected='selected' " : "" ;?>>XL</option> </select> <?php $couleur = !empty($_SESSION['couleur']) ? $_SESSION['couleur']: NULL; ?> <label for="couleur">Couleur</label> <select name="couleur" id="couleur"> <option value="bleu" <?php echo $couleur=="bleu" ? "selected='selected' " : "" ;?>>bleu</option> <option value="rouge" <?php echo $couleur=="rouge" ? "selected='selected' " : "" ;?>>rouge</option> <option value="vert" <?php echo $couleur=="vert" ? "selected='selected' " : "" ;?>>vert</option> </select> </p> <p> <input type="submit" name="suivant" value="Suivant"/> </p> <?php //Si le formulaire n'est pas rempli, on affiche le message d'erreur if (isset($afficheErreur1)){ echo $afficheErreur1; if(empty($_SESSION['quantite'])){ echo "<style>.quantite{background: #ffbdb0}</style>"; } else{ echo "<style>.quantite{background: white;}</style>"; } } ?> </form> </div> </div> <!--Formulaire 2 --> <div id="demo2" class="modal2"> <div class="modal_content2"> <h1>Votre demande de devis</h1> <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p> <h2>Infos supplémentaires pour impression</h2> <form action="" method="post"> <input type="submit" name="fermer2" class="modal_close" value="x"/> <p> <?php $qualite = !empty($_SESSION['qualite']) ? $_SESSION['qualite']: NULL; ?> <label for="qualite">Qualité</br></label> <select name="qualite" id="qualite"> <option value="Promotionnel/1er prix" <?php echo $qualite=="Promotionnel/1er prix" ? "selected='selected' " : "" ;?>>Promotionnel/1er prix</option> <option value="Meilleur rapport qualité / prix" <?php echo $qualite=="Meilleur rapport qualité / prix" ? "selected='selected' " : "" ;?>>Meilleur rapport qualité / prix</option> <option value="Haut de gamme" <?php echo $qualite=="Haut de gamme" ? "selected='selected' " : "" ;?>>Haut de gamme</option> </select> </p> <p> <?php $zone = !empty($_SESSION['zone']) ? $_SESSION['zone']: NULL; ?> <label for="zone">Zone de personnalisation</br></label> <select name="zone" id="zone"> <option value="Coeur" <?php echo $zone=="Coeur" ? "selected='selected' " : "" ;?>>Coeur</option> <option value="Dos" <?php echo $zone=="Dos" ? "selected='selected' " : "" ;?>>Dos</option> <option value="Manche" <?php echo $zone=="Manche" ? "selected='selected' " : "" ;?>>Manche</option> </select> </p> <p> <label for="impression">Technique d'impression</br></label> <?php $impression = !empty($_SESSION['impression']) ? $_SESSION['impression']: NULL; ?> <select name="impression" id="impression"> <option value="DTG" <?php echo $impression=="DTG" ? "selected='selected' " : "" ;?>>DTG</option> <option value="Transfert quadri" <?php echo $impression=="Transfert quadri" ? "selected='selected' " : "" ;?>>Transfert quadri</option> <option value="Sérigraphie" <?php echo $impression=="Sérigraphie" ? "selected='selected' " : "" ;?>>Sérigraphie</option> <option value="Flex Flock" <?php echo $impression=="Flex Flock" ? "selected='selected' " : "" ;?>>Flex Flock</option> <option value="Broderie" <?php echo $impression=="Broderie" ? "selected='selected' " : "" ;?>>Broderie</option> <option value="Sublimation" <?php echo $impression=="Sublimation" ? "selected='selected' " : "" ;?>>Sublimation</option> </select> </p> <p> <label for="fichier">Importez vos fichiers ici</br></label> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> <input type="file" id="fichier" name="fichier" class="fichier" accept="image/png, image/jpeg, .ai, .eps, .pdf, .svg"> <?php /*if(isset($erreurFichier)){ echo $erreurFichier; if(empty($_FILES['fichier'])){ echo "<style>.fichier{background: #ffbdb0;}</style>"; } else{ echo "<style>.fichier{background: white;}</style>"; } }*/ ?> </p> <p> <input type="submit" name="retour1" value="Précèdent"/> <input type="submit" name="suivant1" value="Suivant"/> </p> </form> </div> </div> <!--Formulaire 3 --> <div id="demo3" class="modal3"> <div class="modal_content3"> <h1>Votre demande de devis</h1> <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p> <h2>Informations et précisions</h2> <form action="" method="post"> <input type="submit" name="fermer3" class="modal_close" value="x"/> <p> <input type="text" name="prenom" id="prenom" class="prenom" placeholder="prénom*" value ="<?php if (isset($_SESSION['prenom'])){echo $_SESSION['prenom'];} ?>"/> <input type="text" name="nom" id="nom" class="nom" placeholder="Nom*" value ="<?php if (isset($_SESSION['nom'])){echo $_SESSION['nom'];} ?>"/> <input type="email" name="email" id="email" class="email" size="30" placeholder="Adresse mail*" value ="<?php if (isset($_SESSION['email'])){echo $_SESSION['email'];} ?>"/> </p> <p> <input type="tel" id="telephone" name="telephone" class="telephone" placeholder="Téléphone*" value ="<?php if (isset($_SESSION['telephone'])){echo $_SESSION['telephone'];} ?>"/> <?php $client = !empty($_SESSION['client']) ? $_SESSION['client']: NULL; ?> <select name="client" id="client"> <option value="Particulier" <?php echo $client=="Particulier" ? "selected='selected' " : "" ;?>>Particulier</option> <option value="Entreprise" <?php echo $client=="Entreprise" ? "selected='selected' " : "" ;?>>Entreprise</option> <option value="Autre" <?php echo $client=="Autre" ? "selected='selected' " : "" ;?>>Autre</option> </select> </p> <p> <textarea id="precision" name="precision" rows="5" cols="40" placeholder="Précision"> <?php if (isset($_SESSION['precision'])){echo $_SESSION['precision'];} ?> </textarea> </p> <p> <input type="submit" name="retour2" value="Précèdent"/> <input type="submit" name="suivant2" value="Envoyer"/> </p> <?php //Si le formulaire n'est pas rempli, on affiche le message d'erreur //et on affiche la case en rouge if (isset($afficheErreur2)){ echo $afficheErreur2; if(empty($_SESSION['prenom'])){ echo "<style>.prenom{background: #ffbdb0;}</style>"; } else{ echo "<style>.prenom{background: white;}</style>"; } if(empty($_SESSION['nom'])){ echo "<style>.nom{background: #ffbdb0;}</style>"; } else{ echo "<style>.prenom{background: white;}</style>"; } if(empty($_SESSION['email'])){ echo "<style>.email{background: #ffbdb0;}</style>"; } else{ echo "<style>.email{background: white;}</style>"; } if(empty($_SESSION['telephone'])){ echo "<style>.telephone{background: #ffbdb0;}</style>"; } else{ echo "<style>.telephone{background: white;}</style>"; } } ?> </form> </div> </div> </body> </html>
Et le code de la page de renvoi
<?php session_start(); ?> <?php echo $_SESSION['modele'] . "</br>" . $_SESSION['taille'] . "</br>" . $_SESSION['couleur'] . "</br>" . $_SESSION['quantite'] . "</br>" . $_SESSION['qualite'] . "</br>" . $_SESSION['zone'] . "</br>" . $_SESSION['impression'] . "</br>" . $_FILES['fichier']['name'] . "</br>" . $_SESSION['prenom'] . "</br>" . $_SESSION['nom'] . "</br>" . $_SESSION['email'] . "</br>" . $_SESSION['telephone'] . "</br>" . $_SESSION['client'] . "</br>" . $_SESSION['precison']; session_unset(); //On détruit la session session_destroy(); ?>
S'il vous plaît help >.<
A voir également:
- Récupérer données formulaire php
- Whatsapp formulaire opposition - Guide
- Fuite données maif - Guide
- Recuperer message whatsapp supprimé - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
9 réponses
Bonjour,
Je pense qu'il faudrait déjà nous montrer le code COMPLET de tes fichiers et pas seulement des petits bouts ..
ça nous permettrait de nous rendre compte comment tu as mis en place tout ça, dans quel ordre ...
N'oublies pas de nous préciser le nom de chaque fichier dont tu nous montreras le code..
(d'après ce que je peux voir de ton code, il ne doit y en avoir qu'un seul .. qui contient le formulaire html ET le code php )
Je pense qu'il faudrait déjà nous montrer le code COMPLET de tes fichiers et pas seulement des petits bouts ..
ça nous permettrait de nous rendre compte comment tu as mis en place tout ça, dans quel ordre ...
N'oublies pas de nous préciser le nom de chaque fichier dont tu nous montreras le code..
(d'après ce que je peux voir de ton code, il ne doit y en avoir qu'un seul .. qui contient le formulaire html ET le code php )
Oui, c'est ça, j'ai juste deux codes...
1) Index.php qui contient tout le code, php et html.
2) RecupDataTest.php C'est juste une page de test, pour voir si je récupère bien toutes les données du formulaire.
1) Index.php qui contient tout le code, php et html.
<?php //On démarre une nouvelle session session_start(); //Boutton fermer1 if(isset($_POST['fermer1'])){ header('Location: #'); $_SESSION = array(); } //Boutton fermer2 if(isset($_POST['fermer2'])){ header('Location: #'); $_SESSION = array(); } //Boutton fermer3 if(isset($_POST['fermer3'])){ header('Location: #'); $_SESSION = array(); } //Formulaire 1 //Si on appuie sur le bouton "suivant" if(isset($_POST['suivant'])){ //On récupère les données dans $_POST $modele=$_POST['modele']; $taille=$_POST['taille']; $couleur=$_POST['couleur']; $quantite=$_POST['quantite']; //On définit des variables de session $_SESSION['modele'] = $modele; $_SESSION['taille'] = $taille; $_SESSION['couleur'] = $couleur; $_SESSION['quantite'] = $quantite; //Si on ne sélectionne pas une quantité if($quantite == false){ $afficheErreur1 = "<h4>Veuillez ajouter une quantité</h4>"; } else{ // On va sur le formulaire 2 header ('Location: #demo2'); die(); } } //Formulaire 2 //Si on appuie sur le bouton "suivant" if(isset($_POST['suivant1'])){ //On récupère les données dans $_POST $qualite=$_POST['qualite']; $zone=$_POST['zone']; $impression=$_POST['impression']; //$fichier=$_POST['fichier']; //$_FILES['fichier']=$fichier; //On définit des variables de session $_SESSION['qualite'] = $qualite; $_SESSION['zone'] = $zone; $_SESSION['impression'] = $impression; //$_SESSION['fichier'] = $fichier; // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur /*if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0) { }*/ //Si l'utilisateur n'envoie pas de fichier /*if(empty($_FILES['fichier'])){ $erreurFichier="<h4>Veuillez ajouter un fichier</h4>"; } else{*/ // On va sur le formulaire 3 header('Location: #demo3'); //} } //Si on appuie sur le bouton "Précèdent" if(isset($_POST['retour1'])){ // On va sur la formulaire 1 header('Location: #demo1'); die(); } //Formulaire 3 //Si on appuie sur le bouton "suivant" if(isset($_POST['suivant2'])){ //On récupère les données dans $_POST $prenom=$_POST['prenom']; $nom=$_POST['nom']; $email=$_POST['email']; $telephone=$_POST['telephone']; $client=$_POST['client']; $precision=$_POST['precision']; $_SESSION['prenom'] = $prenom; $_SESSION['nom'] = $nom; $_SESSION['email'] = $email; $_SESSION['telephone'] = $telephone; $_SESSION['client'] = $client; $_SESSION['precison'] = $precision; //Envoie du formulaire // C'est l'adresse ou va être envoyé les données du formulaire $to = "fabio.cecere2509@gmail.com"; //adresse de l'utilisateur $from = $_SESSION['email']; $subject = "Soumission du formulaire"; $subject2 = "Copie de votre formulaire de soumission"; $message = $_SESSION['prenom'] . " " . $_SESSION['nom']; $message2 = "Voici une copie de votre message " . $_SESSION['prenom'] . " " . $_SESSION['nom']; //adresse de l'utilisateur qui envoie le mail $headers = "From:" . $from; //adresse de l'entreprise $headers2 = "From:" . $to; if($prenom == false || $nom == false || $email == false || $telephone == false){ $afficheErreur2 = "<h4>Veuillez compléter les champs obligatoires *</h4>"; } else{ //envoie du formulaire /*if(mail($to,$subject,$message,$headers) && mail($from,$subject2,$message2,$headers2)){ //header('Location: #'); echo "Votre message a bien été envoyé"; $_SESSION = array();*/ header('Location: recupDataTest.php'); } /*else{ //non envoyer //header('Location: #'); echo "Votre message n'a pas pu être envoyé"; $_SESSION = array(); }*/ } //Si on appuie sur le bouton "Précèdent" if(isset($_POST['retour2'])){ // On va sur le formulaire 2" header('Location: #demo2'); die(); } ?> <!DOCTYPE htlm> <html lang="fr"> <head> <meta charset="utf-8"/> <meta http-equiv="X_UA-Compatible" content="IE=edge"> <title>Formulaire de devis</title> <style> #quantite{ width:3.5em; } select option[value="bleu"]{ background: blue; } select option[value="rouge"]{ background: red; } select option[value="vert"]{ background: green; } h4{ color: red; } a { margin-top: 10px; margin: 44%; text-decoration: none; padding: 15px; background-color: white; border-radius: 5px; text-transform: uppercase; color: black; border: solid black; } a:hover{ background-color: black; color: white; } .modal1 { visibility: hidden; opacity: 0; position: absolute; top: 0; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: center; background: rgba(77, 77, 77, .7); transition: all .4s; } .modal1:target { visibility: visible; opacity: 1; } .modal_content1 { border-radius: 4px; position: relative; width: 500px; max-width: 90%; background: white; padding: 1.5em 2em; } .modal_close { position: absolute; top: 10px; right: 10px; color: grey; text-decoration: none; border: solid white; background: white; } .modal_close:hover{ color: black; background: lightgrey; } .modal2 { visibility: hidden; opacity: 0; position: absolute; top: 0; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: center; background: rgba(77, 77, 77, .7); transition: all .4s; } .modal2:target { visibility: visible; opacity: 1; } .modal_content2 { border-radius: 4px; position: relative; width: 500px; max-width: 90%; background: white; padding: 1.5em 2em; } .modal3 { visibility: hidden; opacity: 0; position: absolute; top: 0; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: center; background: rgba(77, 77, 77, .7); transition: all .4s; } .modal3:target { visibility: visible; opacity: 1; } .modal_content3 { border-radius: 4px; position: relative; width: 500px; max-width: 90%; background: white; padding: 1.5em 2em; } </style> </head> <body> <a href="#demo1">Devis Express</a> <!--Formulaire 1 --> <div id="demo1" class="modal1"> <div class="modal_content1"> <h1>Votre demande de devis</h1> <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p> <h2>Vos besoins (Total de 10 pièces minimum)</h2> <form enctype="multipart/form-data" action="" method="post"> <input type="submit" name="fermer1" class="modal_close" value="x"/> <p> <?php $modele = !empty($_SESSION['modele']) ? $_SESSION['modele']: NULL; ?> <label for="modele">Modèle</label> <select name="modele" id="modele"/> <option value="T-shirts" <?php echo $modele=="T-shirts" ? "selected='selected' " : "" ;?>>T-shirts</option> <option value="Sweat-shirts" <?php echo $modele=="Sweat-shirts" ? "selected='selected' " : "" ;?>>Sweat-shirts</option> <option value="Pulls" <?php echo $modele=="Pulls" ? "selected='selected' " : "" ;?>>Pulls</option> </select> <label for="quantite">Quantité</label> <input type="number" name="quantite" id="quantite" class="quantite" min="10" value="<?php if (isset($_SESSION['quantite'])){echo $_SESSION['quantite'];} ?>"/> <br></br> </p> <p> <?php $taille = !empty($_SESSION['taille']) ? $_SESSION['taille']: NULL; ?> <label for="taille">Taille</label> <select name="taille" id="taille"/> <option value="XS" <?php echo $taille=="XS" ? "selected='selected' " : "" ;?>>XS</option> <option value="S" <?php echo $taille=="S" ? "selected='selected' " : "" ;?>>S</option> <option value="M" <?php echo $taille=="M" ? "selected='selected' " : "" ;?>>M</option> <option value="L" <?php echo $taille=="L" ? "selected='selected' " : "" ;?>>L</option> <option value="XL" <?php echo $taille=="XL" ? "selected='selected' " : "" ;?>>XL</option> </select> <?php $couleur = !empty($_SESSION['couleur']) ? $_SESSION['couleur']: NULL; ?> <label for="couleur">Couleur</label> <select name="couleur" id="couleur"> <option value="bleu" <?php echo $couleur=="bleu" ? "selected='selected' " : "" ;?>>bleu</option> <option value="rouge" <?php echo $couleur=="rouge" ? "selected='selected' " : "" ;?>>rouge</option> <option value="vert" <?php echo $couleur=="vert" ? "selected='selected' " : "" ;?>>vert</option> </select> </p> <p> <input type="submit" name="suivant" value="Suivant"/> </p> <?php //Si le formulaire n'est pas rempli, on affiche le message d'erreur if (isset($afficheErreur1)){ echo $afficheErreur1; if(empty($_SESSION['quantite'])){ echo "<style>.quantite{background: #ffbdb0}</style>"; } else{ echo "<style>.quantite{background: white;}</style>"; } } ?> </form> </div> </div> <!--Formulaire 2 --> <div id="demo2" class="modal2"> <div class="modal_content2"> <h1>Votre demande de devis</h1> <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p> <h2>Infos supplémentaires pour impression</h2> <form action="" method="post"> <input type="submit" name="fermer2" class="modal_close" value="x"/> <p> <?php $qualite = !empty($_SESSION['qualite']) ? $_SESSION['qualite']: NULL; ?> <label for="qualite">Qualité</br></label> <select name="qualite" id="qualite"> <option value="Promotionnel/1er prix" <?php echo $qualite=="Promotionnel/1er prix" ? "selected='selected' " : "" ;?>>Promotionnel/1er prix</option> <option value="Meilleur rapport qualité / prix" <?php echo $qualite=="Meilleur rapport qualité / prix" ? "selected='selected' " : "" ;?>>Meilleur rapport qualité / prix</option> <option value="Haut de gamme" <?php echo $qualite=="Haut de gamme" ? "selected='selected' " : "" ;?>>Haut de gamme</option> </select> </p> <p> <?php $zone = !empty($_SESSION['zone']) ? $_SESSION['zone']: NULL; ?> <label for="zone">Zone de personnalisation</br></label> <select name="zone" id="zone"> <option value="Coeur" <?php echo $zone=="Coeur" ? "selected='selected' " : "" ;?>>Coeur</option> <option value="Dos" <?php echo $zone=="Dos" ? "selected='selected' " : "" ;?>>Dos</option> <option value="Manche" <?php echo $zone=="Manche" ? "selected='selected' " : "" ;?>>Manche</option> </select> </p> <p> <label for="impression">Technique d'impression</br></label> <?php $impression = !empty($_SESSION['impression']) ? $_SESSION['impression']: NULL; ?> <select name="impression" id="impression"> <option value="DTG" <?php echo $impression=="DTG" ? "selected='selected' " : "" ;?>>DTG</option> <option value="Transfert quadri" <?php echo $impression=="Transfert quadri" ? "selected='selected' " : "" ;?>>Transfert quadri</option> <option value="Sérigraphie" <?php echo $impression=="Sérigraphie" ? "selected='selected' " : "" ;?>>Sérigraphie</option> <option value="Flex Flock" <?php echo $impression=="Flex Flock" ? "selected='selected' " : "" ;?>>Flex Flock</option> <option value="Broderie" <?php echo $impression=="Broderie" ? "selected='selected' " : "" ;?>>Broderie</option> <option value="Sublimation" <?php echo $impression=="Sublimation" ? "selected='selected' " : "" ;?>>Sublimation</option> </select> </p> <p> <label for="fichier">Importez vos fichiers ici</br></label> <!--<input type="hidden" name="MAX_FILE_SIZE" value="30000" />--> <input type="file" id="fichier" name="fichier" class="fichier"> <!--accept="image/png, image/jpeg, .ai, .eps, .pdf, .svg">--> <?php // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0) { // Testons si le fichier n'est pas trop gros if ($_FILES['fichier']['size'] <= 1000000) { // Testons si l'extension est autorisée $infosfichier = pathinfo($_FILES['fichier']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png','pdf'); if (in_array($extension_upload, $extensions_autorisees)) { // On peut valider le fichier et le stocker définitivement move_uploaded_file($_FILES['fichier']['recupDataTest.php'], 'uploads/' . basename($_FILES['fichier']['name'])); echo "L'envoi a bien été effectué !"; } } } ?> <?php /*if(isset($erreurFichier)){ echo $erreurFichier; if(empty($_FILES['fichier'])){ echo "<style>.fichier{background: #ffbdb0;}</style>"; } else{ echo "<style>.fichier{background: white;}</style>"; } }*/ ?> </p> <p> <input type="submit" name="retour1" value="Précèdent"/> <input type="submit" name="suivant1" value="Suivant"/> </p> </form> </div> </div> <!--Formulaire 3 --> <div id="demo3" class="modal3"> <div class="modal_content3"> <h1>Votre demande de devis</h1> <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p> <h2>Informations et précisions</h2> <form action="" method="post"> <input type="submit" name="fermer3" class="modal_close" value="x"/> <p> <input type="text" name="prenom" id="prenom" class="prenom" placeholder="prénom*" value ="<?php if (isset($_SESSION['prenom'])){echo $_SESSION['prenom'];} ?>"/> <input type="text" name="nom" id="nom" class="nom" placeholder="Nom*" value ="<?php if (isset($_SESSION['nom'])){echo $_SESSION['nom'];} ?>"/> <input type="email" name="email" id="email" class="email" size="30" placeholder="Adresse mail*" value ="<?php if (isset($_SESSION['email'])){echo $_SESSION['email'];} ?>"/> </p> <p> <input type="tel" id="telephone" name="telephone" class="telephone" placeholder="Téléphone*" value ="<?php if (isset($_SESSION['telephone'])){echo $_SESSION['telephone'];} ?>"/> <?php $client = !empty($_SESSION['client']) ? $_SESSION['client']: NULL; ?> <select name="client" id="client"> <option value="Particulier" <?php echo $client=="Particulier" ? "selected='selected' " : "" ;?>>Particulier</option> <option value="Entreprise" <?php echo $client=="Entreprise" ? "selected='selected' " : "" ;?>>Entreprise</option> <option value="Autre" <?php echo $client=="Autre" ? "selected='selected' " : "" ;?>>Autre</option> </select> </p> <p> <textarea id="precision" name="precision" rows="5" cols="40" placeholder="Précision"> <?php if (isset($_SESSION['precision'])){echo $_SESSION['precision'];} ?> </textarea> </p> <p> <input type="submit" name="retour2" value="Précèdent"/> <input type="submit" name="suivant2" value="Envoyer"/> </p> <?php //Si le formulaire n'est pas rempli, on affiche le message d'erreur //et on affiche la case en rouge if (isset($afficheErreur2)){ echo $afficheErreur2; if(empty($_SESSION['prenom'])){ echo "<style>.prenom{background: #ffbdb0;}</style>"; } else{ echo "<style>.prenom{background: white;}</style>"; } if(empty($_SESSION['nom'])){ echo "<style>.nom{background: #ffbdb0;}</style>"; } else{ echo "<style>.prenom{background: white;}</style>"; } if(empty($_SESSION['email'])){ echo "<style>.email{background: #ffbdb0;}</style>"; } else{ echo "<style>.email{background: white;}</style>"; } if(empty($_SESSION['telephone'])){ echo "<style>.telephone{background: #ffbdb0;}</style>"; } else{ echo "<style>.telephone{background: white;}</style>"; } } ?> </form> </div> </div> </body> </html>
2) RecupDataTest.php C'est juste une page de test, pour voir si je récupère bien toutes les données du formulaire.
<?php session_start(); ?> <?php echo $_SESSION['modele'] . "</br>" . $_SESSION['taille'] . "</br>" . $_SESSION['couleur'] . "</br>" . $_SESSION['quantite'] . "</br>" . $_SESSION['qualite'] . "</br>" . $_SESSION['zone'] . "</br>" . $_SESSION['impression'] . "</br>" . $_SESSION['fichier'] . "</br>" . $_SESSION['prenom'] . "</br>" . $_SESSION['nom'] . "</br>" . $_SESSION['email'] . "</br>" . $_SESSION['telephone'] . "</br>" . $_SESSION['client'] . "</br>" . $_SESSION['precison']; session_unset(); //On détruit la session session_destroy(); ?>
Là où est placé ton code de récupération du fichier .. il ne risque pas de s'exécuter !!!!
Il faut le mettre là où tu traites ton submit ...
En plus il y a des erreurs dedans .. et il manque, en effet, quelques ELSE pour avoir des messages en cas d'erreur..
Je te propose ceci:
Il faut le mettre là où tu traites ton submit ...
En plus il y a des erreurs dedans .. et il manque, en effet, quelques ELSE pour avoir des messages en cas d'erreur..
Je te propose ceci:
<?php //On démarre une nouvelle session session_start(); //Affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //Boutton fermer1 if (isset($_POST['fermer1'])) { header('Location: #'); $_SESSION = array(); } //Boutton fermer2 if (isset($_POST['fermer2'])) { header('Location: #'); $_SESSION = array(); } //Boutton fermer3 if (isset($_POST['fermer3'])) { header('Location: #'); $_SESSION = array(); } //Formulaire 1 //Si on appuie sur le bouton "suivant" if (isset($_POST['suivant'])) { //On récupère les données dans $_POST $modele = $_POST['modele']; $taille = $_POST['taille']; $couleur = $_POST['couleur']; $quantite = $_POST['quantite']; //On définit des variables de session $_SESSION['modele'] = $modele; $_SESSION['taille'] = $taille; $_SESSION['couleur'] = $couleur; $_SESSION['quantite'] = $quantite; //Si on ne sélectionne pas une quantité if ($quantite == false) { $afficheErreur1 = "<h4>Veuillez ajouter une quantité</h4>"; } else { // On va sur le formulaire 2 header('Location: #demo2'); die(); } } //Formulaire 2 //Si on appuie sur le bouton "suivant" if (isset($_POST['suivant1'])) { //On récupère les données dans $_POST $qualite = $_POST['qualite']; $zone = $_POST['zone']; $impression = $_POST['impression']; //$fichier=$_POST['fichier']; //$_FILES['fichier']=$fichier; //On définit des variables de session $_SESSION['qualite'] = $qualite; $_SESSION['zone'] = $zone; $_SESSION['impression'] = $impression; //$_SESSION['fichier'] = $fichier; // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur /* if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0) { } */ //Si l'utilisateur n'envoie pas de fichier /* if(empty($_FILES['fichier'])){ $erreurFichier="<h4>Veuillez ajouter un fichier</h4>"; } else{ */ // On va sur le formulaire 3 header('Location: #demo3'); //} } //Si on appuie sur le bouton "Précèdent" if (isset($_POST['retour1'])) { // On va sur la formulaire 1 header('Location: #demo1'); die(); } //Formulaire 3 //Si on appuie sur le bouton "suivant" if (isset($_POST['suivant2'])) { //On récupère les données dans $_POST $prenom = $_POST['prenom']; $nom = $_POST['nom']; $email = $_POST['email']; $telephone = $_POST['telephone']; $client = $_POST['client']; $precision = $_POST['precision']; $_SESSION['prenom'] = $prenom; $_SESSION['nom'] = $nom; $_SESSION['email'] = $email; $_SESSION['telephone'] = $telephone; $_SESSION['client'] = $client; $_SESSION['precison'] = $precision; //Envoie du formulaire // C'est l'adresse ou va être envoyé les données du formulaire $to = "fabio.cecere2509@gmail.com"; //adresse de l'utilisateur $from = $_SESSION['email']; $subject = "Soumission du formulaire"; $subject2 = "Copie de votre formulaire de soumission"; $message = $_SESSION['prenom'] . " " . $_SESSION['nom']; $message2 = "Voici une copie de votre message " . $_SESSION['prenom'] . " " . $_SESSION['nom']; //adresse de l'utilisateur qui envoie le mail $headers = "From:" . $from; //adresse de l'entreprise $headers2 = "From:" . $to; // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0) { // Testons si le fichier n'est pas trop gros if ($_FILES['fichier']['size'] <= 1000000) { // Testons si l'extension est autorisée $infosfichier = pathinfo($_FILES['fichier']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png', 'pdf'); if (in_array($extension_upload, $extensions_autorisees)) { // On peut valider le fichier et le stocker définitivement if(move_uploaded_file($_FILES['fichier']['tmp_name'], 'uploads/' . $_FILES['fichier']['name'])){ echo "L'envoi a bien été effectué !"; $_SESSION['fichier'] = 'uploads/' . $_FILES['fichier']['name']; }else{ echo "Erreur lors de l'upload du fichier vers " . 'uploads/' . $_FILES['fichier']['name'] ; exit; } }else{ echo "Extension error "; exit; } }else{ echo "Size Error !"; exit; } } if ($prenom == false || $nom == false || $email == false || $telephone == false) { $afficheErreur2 = "<h4>Veuillez compléter les champs obligatoires *</h4>"; } else { //envoie du formulaire /* if(mail($to,$subject,$message,$headers) && mail($from,$subject2,$message2,$headers2)){ //header('Location: #'); echo "Votre message a bien été envoyé"; $_SESSION = array(); */ //header('Location: recupDataTest.php'); // il faut désactiver la redirection pour voir si il n'y a pas d'erreur de code php dans ta page ! } /* else{ //non envoyer //header('Location: #'); echo "Votre message n'a pas pu être envoyé"; $_SESSION = array(); } */ } //Si on appuie sur le bouton "Précèdent" if (isset($_POST['retour2'])) { // On va sur le formulaire 2" header('Location: #demo2'); die(); } ?> <!DOCTYPE htlm> <html lang="fr"> <head> <meta charset="utf-8"/> <meta http-equiv="X_UA-Compatible" content="IE=edge"> <title>Formulaire de devis</title> <style> #quantite{ width:3.5em; } select option[value="bleu"]{ background: blue; } select option[value="rouge"]{ background: red; } select option[value="vert"]{ background: green; } h4{ color: red; } a { margin-top: 10px; margin: 44%; text-decoration: none; padding: 15px; background-color: white; border-radius: 5px; text-transform: uppercase; color: black; border: solid black; } a:hover{ background-color: black; color: white; } .modal1 { visibility: hidden; opacity: 0; position: absolute; top: 0; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: center; background: rgba(77, 77, 77, .7); transition: all .4s; } .modal1:target { visibility: visible; opacity: 1; } .modal_content1 { border-radius: 4px; position: relative; width: 500px; max-width: 90%; background: white; padding: 1.5em 2em; } .modal_close { position: absolute; top: 10px; right: 10px; color: grey; text-decoration: none; border: solid white; background: white; } .modal_close:hover{ color: black; background: lightgrey; } .modal2 { visibility: hidden; opacity: 0; position: absolute; top: 0; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: center; background: rgba(77, 77, 77, .7); transition: all .4s; } .modal2:target { visibility: visible; opacity: 1; } .modal_content2 { border-radius: 4px; position: relative; width: 500px; max-width: 90%; background: white; padding: 1.5em 2em; } .modal3 { visibility: hidden; opacity: 0; position: absolute; top: 0; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: center; background: rgba(77, 77, 77, .7); transition: all .4s; } .modal3:target { visibility: visible; opacity: 1; } .modal_content3 { border-radius: 4px; position: relative; width: 500px; max-width: 90%; background: white; padding: 1.5em 2em; } </style> </head> <body> <a href="#demo1">Devis Express</a> <!--Formulaire 1 --> <div id="demo1" class="modal1"> <div class="modal_content1"> <h1>Votre demande de devis</h1> <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p> <h2>Vos besoins (Total de 10 pièces minimum)</h2> <form enctype="multipart/form-data" action="" method="post"> <input type="submit" name="fermer1" class="modal_close" value="x"/> <p> <?php $modele = !empty($_SESSION['modele']) ? $_SESSION['modele'] : NULL; ?> <label for="modele">Modèle</label> <select name="modele" id="modele"/> <option value="T-shirts" <?php echo $modele == "T-shirts" ? "selected='selected' " : ""; ?>>T-shirts</option> <option value="Sweat-shirts" <?php echo $modele == "Sweat-shirts" ? "selected='selected' " : ""; ?>>Sweat-shirts</option> <option value="Pulls" <?php echo $modele == "Pulls" ? "selected='selected' " : ""; ?>>Pulls</option> </select> <label for="quantite">Quantité</label> <input type="number" name="quantite" id="quantite" class="quantite" min="10" value="<?php if (isset($_SESSION['quantite'])) { echo $_SESSION['quantite']; } ?>"/> <br></br> </p> <p> <?php $taille = !empty($_SESSION['taille']) ? $_SESSION['taille'] : NULL; ?> <label for="taille">Taille</label> <select name="taille" id="taille"/> <option value="XS" <?php echo $taille == "XS" ? "selected='selected' " : ""; ?>>XS</option> <option value="S" <?php echo $taille == "S" ? "selected='selected' " : ""; ?>>S</option> <option value="M" <?php echo $taille == "M" ? "selected='selected' " : ""; ?>>M</option> <option value="L" <?php echo $taille == "L" ? "selected='selected' " : ""; ?>>L</option> <option value="XL" <?php echo $taille == "XL" ? "selected='selected' " : ""; ?>>XL</option> </select> <?php $couleur = !empty($_SESSION['couleur']) ? $_SESSION['couleur'] : NULL; ?> <label for="couleur">Couleur</label> <select name="couleur" id="couleur"> <option value="bleu" <?php echo $couleur == "bleu" ? "selected='selected' " : ""; ?>>bleu</option> <option value="rouge" <?php echo $couleur == "rouge" ? "selected='selected' " : ""; ?>>rouge</option> <option value="vert" <?php echo $couleur == "vert" ? "selected='selected' " : ""; ?>>vert</option> </select> </p> <p> <input type="submit" name="suivant" value="Suivant"/> </p> <?php //Si le formulaire n'est pas rempli, on affiche le message d'erreur if (isset($afficheErreur1)) { echo $afficheErreur1; if (empty($_SESSION['quantite'])) { echo "<style>.quantite{background: #ffbdb0}</style>"; } else { echo "<style>.quantite{background: white;}</style>"; } } ?> </form> </div> </div> <!--Formulaire 2 --> <div id="demo2" class="modal2"> <div class="modal_content2"> <h1>Votre demande de devis</h1> <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p> <h2>Infos supplémentaires pour impression</h2> <form action="" method="post"> <input type="submit" name="fermer2" class="modal_close" value="x"/> <p> <?php $qualite = !empty($_SESSION['qualite']) ? $_SESSION['qualite'] : NULL; ?> <label for="qualite">Qualité</br></label> <select name="qualite" id="qualite"> <option value="Promotionnel/1er prix" <?php echo $qualite == "Promotionnel/1er prix" ? "selected='selected' " : ""; ?>>Promotionnel/1er prix</option> <option value="Meilleur rapport qualité / prix" <?php echo $qualite == "Meilleur rapport qualité / prix" ? "selected='selected' " : ""; ?>>Meilleur rapport qualité / prix</option> <option value="Haut de gamme" <?php echo $qualite == "Haut de gamme" ? "selected='selected' " : ""; ?>>Haut de gamme</option> </select> </p> <p> <?php $zone = !empty($_SESSION['zone']) ? $_SESSION['zone'] : NULL; ?> <label for="zone">Zone de personnalisation</br></label> <select name="zone" id="zone"> <option value="Coeur" <?php echo $zone == "Coeur" ? "selected='selected' " : ""; ?>>Coeur</option> <option value="Dos" <?php echo $zone == "Dos" ? "selected='selected' " : ""; ?>>Dos</option> <option value="Manche" <?php echo $zone == "Manche" ? "selected='selected' " : ""; ?>>Manche</option> </select> </p> <p> <label for="impression">Technique d'impression</br></label> <?php $impression = !empty($_SESSION['impression']) ? $_SESSION['impression'] : NULL; ?> <select name="impression" id="impression"> <option value="DTG" <?php echo $impression == "DTG" ? "selected='selected' " : ""; ?>>DTG</option> <option value="Transfert quadri" <?php echo $impression == "Transfert quadri" ? "selected='selected' " : ""; ?>>Transfert quadri</option> <option value="Sérigraphie" <?php echo $impression == "Sérigraphie" ? "selected='selected' " : ""; ?>>Sérigraphie</option> <option value="Flex Flock" <?php echo $impression == "Flex Flock" ? "selected='selected' " : ""; ?>>Flex Flock</option> <option value="Broderie" <?php echo $impression == "Broderie" ? "selected='selected' " : ""; ?>>Broderie</option> <option value="Sublimation" <?php echo $impression == "Sublimation" ? "selected='selected' " : ""; ?>>Sublimation</option> </select> </p> <p> <label for="fichier">Importez vos fichiers ici</br></label> <!--<input type="hidden" name="MAX_FILE_SIZE" value="30000" />--> <input type="file" id="fichier" name="fichier" class="fichier"> <!--accept="image/png, image/jpeg, .ai, .eps, .pdf, .svg">--> </p> <p> <input type="submit" name="retour1" value="Précèdent"/> <input type="submit" name="suivant1" value="Suivant"/> </p> </form> </div> </div> <!--Formulaire 3 --> <div id="demo3" class="modal3"> <div class="modal_content3"> <h1>Votre demande de devis</h1> <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p> <h2>Informations et précisions</h2> <form action="" method="post"> <input type="submit" name="fermer3" class="modal_close" value="x"/> <p> <input type="text" name="prenom" id="prenom" class="prenom" placeholder="prénom*" value ="<?php if (isset($_SESSION['prenom'])) { echo $_SESSION['prenom']; } ?>"/> <input type="text" name="nom" id="nom" class="nom" placeholder="Nom*" value ="<?php if (isset($_SESSION['nom'])) { echo $_SESSION['nom']; } ?>"/> <input type="email" name="email" id="email" class="email" size="30" placeholder="Adresse mail*" value ="<?php if (isset($_SESSION['email'])) { echo $_SESSION['email']; } ?>"/> </p> <p> <input type="tel" id="telephone" name="telephone" class="telephone" placeholder="Téléphone*" value ="<?php if (isset($_SESSION['telephone'])) { echo $_SESSION['telephone']; } ?>"/> <?php $client = !empty($_SESSION['client']) ? $_SESSION['client'] : NULL; ?> <select name="client" id="client"> <option value="Particulier" <?php echo $client == "Particulier" ? "selected='selected' " : ""; ?>>Particulier</option> <option value="Entreprise" <?php echo $client == "Entreprise" ? "selected='selected' " : ""; ?>>Entreprise</option> <option value="Autre" <?php echo $client == "Autre" ? "selected='selected' " : ""; ?>>Autre</option> </select> </p> <p> <textarea id="precision" name="precision" rows="5" cols="40" placeholder="Précision"> <?php if (isset($_SESSION['precision'])) { echo $_SESSION['precision']; } ?> </textarea> </p> <p> <input type="submit" name="retour2" value="Précèdent"/> <input type="submit" name="suivant2" value="Envoyer"/> </p> <?php //Si le formulaire n'est pas rempli, on affiche le message d'erreur //et on affiche la case en rouge if (isset($afficheErreur2)) { echo $afficheErreur2; if (empty($_SESSION['prenom'])) { echo "<style>.prenom{background: #ffbdb0;}</style>"; } else { echo "<style>.prenom{background: white;}</style>"; } if (empty($_SESSION['nom'])) { echo "<style>.nom{background: #ffbdb0;}</style>"; } else { echo "<style>.prenom{background: white;}</style>"; } if (empty($_SESSION['email'])) { echo "<style>.email{background: #ffbdb0;}</style>"; } else { echo "<style>.email{background: white;}</style>"; } if (empty($_SESSION['telephone'])) { echo "<style>.telephone{background: #ffbdb0;}</style>"; } else { echo "<style>.telephone{background: white;}</style>"; } } ?> </form> </div> </div> </body> </html>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour, bonjour. ^^
Donc j'ai changé la structure de mon code car le système avec les pop-ups c'était beaucoup trop compliqué.
Maintenant les écho s'affichent...
Voici la nouvelle structure.
J'ai ajouté un fichier et j'ai reçu le message : "erreur lors de l'upload du fichier vers uploads/", donc l'erreur est due au fait qu'il n'a pas su stocker le fichier dans "upload", C'est ça ?
Est-ce qu'on peut m'expliquer ce qu'il passe en ligne 54 avec l'upload, cela m'aiderait à comprendre pourquoi mon fichier n'a pas été uploader.
Donc j'ai changé la structure de mon code car le système avec les pop-ups c'était beaucoup trop compliqué.
Maintenant les écho s'affichent...
Voici la nouvelle structure.
<?php //On démarre une nouvelle session session_start(); if(isset($_POST['suivant'])){ //On récupère les données dans $_POST $modele=$_POST['modele']; $taille=$_POST['taille']; $couleur=$_POST['couleur']; $quantite=$_POST['quantite']; $qualite=$_POST['qualite']; $zone=$_POST['zone']; $impression=$_POST['impression']; //$fichier=$_POST['fichier']; $prenom=$_POST['prenom']; $nom=$_POST['nom']; $email=$_POST['email']; $telephone=$_POST['telephone']; $client=$_POST['client']; $precision=$_POST['precision']; //On définit des variables de session $_SESSION['modele'] = $modele; $_SESSION['taille'] = $taille; $_SESSION['couleur'] = $couleur; $_SESSION['quantite'] = $quantite; $_SESSION['qualite'] = $qualite; $_SESSION['zone'] = $zone; $_SESSION['impression'] = $impression; //$_SESSION['fichier'] = $fichier; $_SESSION['prenom'] = $prenom; $_SESSION['nom'] = $nom; $_SESSION['email'] = $email; $_SESSION['telephone'] = $telephone; $_SESSION['client'] = $client; $_SESSION['precison'] = $precision; //Envoi du fichier // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0) { // Testons si le fichier n'est pas trop gros if ($_FILES['fichier']['size'] <= 1000000) { // Testons si l'extension est autorisée $infosfichier = pathinfo($_FILES['fichier']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png', 'pdf'); if (in_array($extension_upload, $extensions_autorisees)) { // On peut valider le fichier et le stocker définitivement if(move_uploaded_file($_FILES['fichier']['tmp_name'], 'uploads/' . $_FILES['fichier']['name'])){ echo "L'envoi a bien été effectué !"; $_SESSION['fichier'] = 'uploads/' . $_FILES['fichier']['name']; }else{ echo "Erreur lors de l'upload du fichier vers " . 'uploads/' . $_FILES['fichier']['name'] ; exit; } }else{ echo "Extension error "; exit; } }else{ echo "Size Error !"; exit; } } //Envoie du formulaire // C'est l'adresse ou va être envoyé les données du formulaire $to = "fabio.cecere2509@gmail.com"; //adresse de l'utilisateur $from = $_SESSION['email']; //Objet mail (pour nous) $subject = "Demande de devis - Smartex"; //objet mail (pour l'utilisateur) $subject2 = "Confirmation de votre demande de devis - Smartex"; //Message du mail (pour nous) $message = "<h1>Devis Smartex</h1>" . "</br>" . "Demande de devis au nom de " . $_SESSION['prenom'] . " " . $_SESSION['nom'] . " (" . $_SESSION['client'] . ") " . "</br>" . " Email : " . $_SESSION['email'] . "</br>" . "Numéro de téléphone : " . $_SESSION['telephone'] . "</br>" . "Description du projet : " . $_SESSION['precison'] . "</br>" . "</br>" . "<h2>Description de la commande</h2>" . "</br>" . "Type de vêtement à personnaliser : " . $_SESSION['modele'] . " " . "Quantité : " . $_SESSION['quantite'] . "Taille " . $_SESSION['taille'] . "</br>" . " Couleur : " . $_SESSION['couleur'] . " Qualité : " . $_SESSION['qualite'] . " Zone d'impression : " . $_SESSION['zone'] . " Type d'impression " . $_SESSION['impression']; //Message du mail (pour l'utilisateur) $message2 = "<h1>Description de votre devis smartex</h1>". "chère Monsieur/Madame " . $_SESSION['prenom'] . " " . $_SESSION['nom'] . " Votre demande de devis a bien été envoyé et sera traité par notre équipe. Nous vous contacterons au plus vite, merci de votre confiance ^^" . "</br>" . "</br>" . "<h2>Description de la commande</h2>" . "</br>" . "Type de vêtement à personnaliser : " . $_SESSION['modele'] . " " . "Quantité : " . $_SESSION['quantite'] . "Taille " . $_SESSION['taille'] . "</br>" . " Couleur : " . $_SESSION['couleur'] . " Qualité : " . $_SESSION['qualite'] . " Zone d'impression : " . $_SESSION['zone'] . " Type d'impression " . $_SESSION['impression']; //adresse de l'utilisateur qui envoie le mail $headers = "From:" . $from; //Notre adresse $headers2 = "From:" . $to; if($quantite == false || $prenom == false || $nom == false || $email == false || $telephone == false){ $afficheErreur = "<h4>Veuillez compléter les champs obligatoires *</h4>"; } else{ //envoie du formulaire if(mail($to,$subject,$message,$headers) && mail($from,$subject2,$message2,$headers2)){ //header('Location: #'); echo "<h6>Votre message a bien été envoyé !</h6>"; $_SESSION = array(); header('Location: recupDataTest.php'); } else{ //non envoyer //header('Location: #'); echo "<h6>Votre message n'a pas pu être envoyé !<h6>"; $_SESSION = array(); } } } ?> <!DOCTYPE htlm> <html lang="fr"> <head> <meta charset="utf-8"/> <meta http-equiv="X_UA-Compatible" content="IE=edge"> <style> h4{ color: red; } h6{ color: green; } </style> </head> <body> <!--Formulaire 1 --> <div id="demo1" class="modal1"> <div class="modal_content1"> <?php //Si le formulaire n'est pas rempli, on affiche le message d'erreur //et on affiche la case en rouge if (isset($afficheErreur)){ echo $afficheErreur; if(empty($_SESSION['prenom'])){ echo "<style>.prenom{background: #ffbdb0;}</style>"; } else{ echo "<style>.prenom{background: white;}</style>"; } if(empty($_SESSION['nom'])){ echo "<style>.nom{background: #ffbdb0;}</style>"; } else{ echo "<style>.prenom{background: white;}</style>"; } if(empty($_SESSION['email'])){ echo "<style>.email{background: #ffbdb0;}</style>"; } else{ echo "<style>.email{background: white;}</style>"; } if(empty($_SESSION['telephone'])){ echo "<style>.telephone{background: #ffbdb0;}</style>"; } else{ echo "<style>.telephone{background: white;}</style>"; } } ?> <h1>Votre demande de devis gratuit</h1> <p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p> <form enctype="multipart/form-data" action="" method="post"> <p> <?php $modele = !empty($_SESSION['modele']) ? $_SESSION['modele']: NULL; ?> <label for="modele">Modèle</label> <select name="modele" id="modele"/> <option value="T-shirts" <?php echo $modele=="T-shirts" ? "selected='selected' " : "" ;?>><p>T-shirts</p></option> <option value="Sweat-shirts" <?php echo $modele=="Sweat-shirts" ? "selected='selected' " : "" ;?>>Sweat-shirts</option> <option value="Pulls" <?php echo $modele=="Pulls" ? "selected='selected' " : "" ;?>>Pulls</option> </select> <label for="quantite">Quantité *</label> <input type="number" name="quantite" id="quantite" class="quantite" min="10" value="<?php if (isset($_SESSION['quantite'])){echo $_SESSION['quantite'];} ?>"/> <br></br> </p> <p> <?php $taille = !empty($_SESSION['taille']) ? $_SESSION['taille']: NULL; ?> <label for="taille">Taille</label> <select name="taille" id="taille"/> <option value="XS" <?php echo $taille=="XS" ? "selected='selected' " : "" ;?>>XS</option> <option value="S" <?php echo $taille=="S" ? "selected='selected' " : "" ;?>>S</option> <option value="M" <?php echo $taille=="M" ? "selected='selected' " : "" ;?>>M</option> <option value="L" <?php echo $taille=="L" ? "selected='selected' " : "" ;?>>L</option> <option value="XL" <?php echo $taille=="XL" ? "selected='selected' " : "" ;?>>XL</option> </select> <?php $couleur = !empty($_SESSION['couleur']) ? $_SESSION['couleur']: NULL; ?> <label for="couleur">Couleur</label> <select name="couleur" id="couleur"> <option value="bleu" <?php echo $couleur=="bleu" ? "selected='selected' " : "" ;?>>bleu</option> <option value="rouge" <?php echo $couleur=="rouge" ? "selected='selected' " : "" ;?>>rouge</option> <option value="vert" <?php echo $couleur=="vert" ? "selected='selected' " : "" ;?>>vert</option> </select> </p> <p> <?php $qualite = !empty($_SESSION['qualite']) ? $_SESSION['qualite']: NULL; ?> <label for="qualite">Qualité</br></label> <select name="qualite" id="qualite"> <option value="Promotionnel/1er prix" <?php echo $qualite=="Promotionnel/1er prix" ? "selected='selected' " : "" ;?>>Promotionnel/1er prix</option> <option value="Meilleur rapport qualité / prix" <?php echo $qualite=="Meilleur rapport qualité / prix" ? "selected='selected' " : "" ;?>>Meilleur rapport qualité / prix</option> <option value="Haut de gamme" <?php echo $qualite=="Haut de gamme" ? "selected='selected' " : "" ;?>>Haut de gamme</option> </select> </p> <p> <?php $zone = !empty($_SESSION['zone']) ? $_SESSION['zone']: NULL; ?> <label for="zone">Zone de personnalisation</br></label> <select name="zone" id="zone"> <option value="Coeur" <?php echo $zone=="Coeur" ? "selected='selected' " : "" ;?>>Coeur</option> <option value="Dos" <?php echo $zone=="Dos" ? "selected='selected' " : "" ;?>>Dos</option> <option value="Manche" <?php echo $zone=="Manche" ? "selected='selected' " : "" ;?>>Manche</option> </select> </p> <p> <label for="impression">Technique d'impression</br></label> <?php $impression = !empty($_SESSION['impression']) ? $_SESSION['impression']: NULL; ?> <select name="impression" id="impression"> <option value="DTG" <?php echo $impression=="DTG" ? "selected='selected' " : "" ;?>>DTG</option> <option value="Transfert quadri" <?php echo $impression=="Transfert quadri" ? "selected='selected' " : "" ;?>>Transfert quadri</option> <option value="Sérigraphie" <?php echo $impression=="Sérigraphie" ? "selected='selected' " : "" ;?>>Sérigraphie</option> <option value="Flex Flock" <?php echo $impression=="Flex Flock" ? "selected='selected' " : "" ;?>>Flex Flock</option> <option value="Broderie" <?php echo $impression=="Broderie" ? "selected='selected' " : "" ;?>>Broderie</option> <option value="Sublimation" <?php echo $impression=="Sublimation" ? "selected='selected' " : "" ;?>>Sublimation</option> </select> </p> <p> <label for="fichier">Importez vos fichiers ici</br></label> <!--<input type="hidden" name="MAX_FILE_SIZE" value="30000" />--> <input type="file" id="fichier" name="fichier" class="fichier"> <!--accept="image/png, image/jpeg, .ai, .eps, .pdf, .svg">--> </p> </br> </br> <h2>Informations personnelles</h2> <p> <input type="text" name="prenom" id="prenom" class="prenom" placeholder="prénom*" value ="<?php if (isset($_SESSION['prenom'])){echo $_SESSION['prenom'];} ?>"/> <input type="text" name="nom" id="nom" class="nom" placeholder="Nom*" value ="<?php if (isset($_SESSION['nom'])){echo $_SESSION['nom'];} ?>"/> <input type="email" name="email" id="email" class="email" size="30" placeholder="Adresse mail*" value ="<?php if (isset($_SESSION['email'])){echo $_SESSION['email'];} ?>"/> </p> <p> <input type="tel" id="telephone" name="telephone" class="telephone" placeholder="Téléphone*" value ="<?php if (isset($_SESSION['telephone'])){echo $_SESSION['telephone'];} ?>"/> <?php $client = !empty($_SESSION['client']) ? $_SESSION['client']: NULL; ?> <select name="client" id="client"> <option value="Particulier" <?php echo $client=="Particulier" ? "selected='selected' " : "" ;?>>Particulier</option> <option value="Entreprise" <?php echo $client=="Entreprise" ? "selected='selected' " : "" ;?>>Entreprise</option> <option value="Autre" <?php echo $client=="Autre" ? "selected='selected' " : "" ;?>>Autre</option> </select> </p> <p> <textarea id="precision" name="precision" rows="5" cols="40" placeholder="Précision"> <?php if (isset($_SESSION['precision'])){echo $_SESSION['precision'];} ?> </textarea> </p> <p> <input type="submit" name="suivant" value="Envoyer"/> </p> </form> </div> </div> </body> </html>
J'ai ajouté un fichier et j'ai reçu le message : "erreur lors de l'upload du fichier vers uploads/", donc l'erreur est due au fait qu'il n'a pas su stocker le fichier dans "upload", C'est ça ?
Est-ce qu'on peut m'expliquer ce qu'il passe en ligne 54 avec l'upload, cela m'aiderait à comprendre pourquoi mon fichier n'a pas été uploader.
Bonjour,
Il n'a pas réussi à déplacer le fichier depuis le dossier temporaire vers le dossier désiré.
par contre le message est juste : "erreur lors de l'upload du fichier vers uploads/" ... il n'y a pas le nom d'un fichier après le uploads/ ??
Il serait utile, dans le ELSE qui affiche ce message d'erreur, d'ajouter un var_dump($_FILES);
Il faudrait ensuite vérifier :
1 - que le fichier est bien uploadé dans le fichier temp avant de le déplacer
Voir la fonction https://www.php.net/manual/fr/function.is-uploaded-file.php
2 - Voir que le répertoire de destination existe
https://www.php.net/manual/fr/function.is-dir.php
3 - Que tu disposes bien des droits en écriture sur ce dossier
https://www.geeksforgeeks.org/php-is_writable-function/
Il n'a pas réussi à déplacer le fichier depuis le dossier temporaire vers le dossier désiré.
par contre le message est juste : "erreur lors de l'upload du fichier vers uploads/" ... il n'y a pas le nom d'un fichier après le uploads/ ??
Il serait utile, dans le ELSE qui affiche ce message d'erreur, d'ajouter un var_dump($_FILES);
Il faudrait ensuite vérifier :
1 - que le fichier est bien uploadé dans le fichier temp avant de le déplacer
Voir la fonction https://www.php.net/manual/fr/function.is-uploaded-file.php
2 - Voir que le répertoire de destination existe
https://www.php.net/manual/fr/function.is-dir.php
3 - Que tu disposes bien des droits en écriture sur ce dossier
https://www.geeksforgeeks.org/php-is_writable-function/
Bon, ça ne donne pas grand-chose, mais j'avoue ne pas comprendre grand-chose.
J'ai écrit ce qui me semblait "correct", mais ne sachant pas quoi faire, j'ai fait un peu du grands n'importe quoi. ^^
J'ai écrit ce qui me semblait "correct", mais ne sachant pas quoi faire, j'ai fait un peu du grands n'importe quoi. ^^
//Envoi du fichier // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0) { // Testons si le fichier n'est pas trop gros if ($_FILES['fichier']['size'] <= 1000000) { // Testons si l'extension est autorisée $infosfichier = pathinfo($_FILES['fichier']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png', 'pdf'); if (in_array($extension_upload, $extensions_autorisees)) { // On peut valider le fichier et le stocker définitivement if(move_uploaded_file($_FILES['fichier']['tmp_name'], 'uploads/' . $_FILES['fichier']['name'])){ echo "L'envoi a bien été effectué !"; $_SESSION['fichier'] = 'uploads/' . $_FILES['fichier']['name']; }else{ echo "Erreur lors de l'upload du fichier vers " . 'uploads/' . $_FILES['fichier']['name'] ; var_dump(is_dir($_FILES)); if (is_uploaded_file($_FILES['fichier']['tmp_name'])) { echo "File ". $_FILES['fichier']['name'] ." téléchargé avec succès.\n"; echo "Affichage du contenu\n"; readfile($_FILES['fichier']['tmp_name']); } else { echo "Attaque possible par téléchargement de fichier : "; echo "Nom du fichier : '". $_FILES['fichier']['tmp_name'] . "'."; } if(is_writable($_FILES['fichier']['name'])) { echo ("$_FILES['fichier']['name'] file is writable!"); } else { echo ("$_FILES['fichier']['name'] file is not writable!"); } exit; } }else{ echo "Extension error "; exit; } }else{ echo "Size Error !"; exit; } }
Le IS_DIR ... et le IS_WRITABLE .. c'est sur le dossier dans lequel tu veux upload le fichier qu'il faut le faire ... pas sur le fichier lui même..
Et toutes ces vérifications.. il faut les faire AVANT d'essayer de faire le move ..
Une fois ton code écrit .. il serait bien de nous dire ce qui s'affiche ... (comme message d'erreur... )
Et toutes ces vérifications.. il faut les faire AVANT d'essayer de faire le move ..
Une fois ton code écrit .. il serait bien de nous dire ce qui s'affiche ... (comme message d'erreur... )
Bonjour,
Ok ok, j'ai placé le IS_DIR et le IS_WRITABLE avant le move.
Cependant il y a une chose que je ne comprends pas trop, il faut enregistrer sur un dossier ou on veut l'upload, n'importe quel dossier ? Je ne comprends pas trop.
Ok ok, j'ai placé le IS_DIR et le IS_WRITABLE avant le move.
Cependant il y a une chose que je ne comprends pas trop, il faut enregistrer sur un dossier ou on veut l'upload, n'importe quel dossier ? Je ne comprends pas trop.
//Envoi du fichier // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0) { // Testons si le fichier n'est pas trop gros if ($_FILES['fichier']['size'] <= 1000000) { // Testons si l'extension est autorisée $infosfichier = pathinfo($_FILES['fichier']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png', 'pdf'); if (in_array($extension_upload, $extensions_autorisees)) { // On peut valider le fichier et le stocker définitivement if (is_uploaded_file($_FILES['fichier']['tmp_name'])) { echo "File ". $_FILES['fichier']['name'] ." téléchargé avec succès.\n"; echo "Affichage du contenu\n"; readfile($_FILES['fichier']['tmp_name']); } else { echo "Attaque possible par téléchargement de fichier : "; echo "Nom du fichier : '". $_FILES['fichier']['tmp_name'] . "'."; } if(is_writable($_FILES['fichier']['name'])) { echo ("$_FILES['fichier']['name'] file is writable!"); } else { echo ("$_FILES['fichier']['name'] file is not writable!"; } if(move_uploaded_file($_FILES['fichier']['tmp_name'], 'uploads/' . $_FILES['fichier']['name'])){ echo "L'envoi a bien été effectué !"; $_SESSION['fichier'] = 'uploads/' . $_FILES['fichier']['name']; }else{ echo "Erreur lors de l'upload du fichier vers " . 'uploads/' . $_FILES['fichier']['name'] ; var_dump($_FILES); exit; } }else{ echo "Extension error "; exit; } }else{ echo "Size Error !"; exit; } }
Le fichier .. tu vas le sauvegarder dans un emplacement ( un dossier ) de ton serveur web...
Il faut donc regarder, avant d'essayer d'y mettre le fichier, que ce dossier existe ET est accessible en écriture...
C'est donc sur ce dossier qu'il faut regarder si c'est bien un dossier (et si il existe) via l'instruction is_dir et si tu y a les droits en écriture ...
Je le redis ... sur le DOSSIER ... et non pas sur le $_FILES !!
Et puis, tu vas faire le MOVE ( vers ce dossier ... destination finale de ton fichier donc.. ) SI .. il a bien été chargé ( ce que tu vérifies avec la fonction is_uploaded_file ) ... ce n'est donc pas dans le ELSE de celui ci qu'il faut mettre le code .. mais bien dans la partie IF ..
en gros..
Il faut donc regarder, avant d'essayer d'y mettre le fichier, que ce dossier existe ET est accessible en écriture...
C'est donc sur ce dossier qu'il faut regarder si c'est bien un dossier (et si il existe) via l'instruction is_dir et si tu y a les droits en écriture ...
Je le redis ... sur le DOSSIER ... et non pas sur le $_FILES !!
Et puis, tu vas faire le MOVE ( vers ce dossier ... destination finale de ton fichier donc.. ) SI .. il a bien été chargé ( ce que tu vérifies avec la fonction is_uploaded_file ) ... ce n'est donc pas dans le ELSE de celui ci qu'il faut mettre le code .. mais bien dans la partie IF ..
en gros..
if (is_uploaded_file($_FILES['fichier']['tmp_name'])) { echo "File ". $_FILES['fichier']['name'] ." téléchargé avec succès.\n"; if(is_dir('uploads/'){ if(is_writable('uploads/')) { if(move_uploaded_file($_FILES['fichier']['tmp_name'], 'uploads/' . $_FILES['fichier']['name'])){ echo "L'envoi vers le serveur a bien été effectué !"; $_SESSION['fichier'] = 'uploads/' . $_FILES['fichier']['name']; }else{ echo "Erreur lors de l'upload du fichier vers " . 'uploads/' . $_FILES['fichier']['name'] ; var_dump($_FILES); exit; } } else { echo ("Erreur: Le dossier n'a pas les droits en écriture"; } }else{ echo "Erreur : dossier de destination manquant ou erreur dans le chemin !"; } } else { echo "Attaque possible par téléchargement de fichier : "; echo "Nom du fichier : '". $_FILES['fichier']['tmp_name'] . "'."; }
Ok ok, donc en gros j'ai suivis cette logique, mais j'ai tout de même une erreur de compilation.
Parse error: syntax error, unexpected 'if' (T_IF) in C:\xamppp\htdocs\smartex\wordpress\wordpress.php on line 131 enfin dans ce cas ci la ligne 131 corespond à la ligne 18
Parse error: syntax error, unexpected 'if' (T_IF) in C:\xamppp\htdocs\smartex\wordpress\wordpress.php on line 131 enfin dans ce cas ci la ligne 131 corespond à la ligne 18
//Envoi du fichier // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur if (isset($_FILES['fichier']) AND $_FILES['fichier']['error'] == 0) { // Testons si le fichier n'est pas trop gros if ($_FILES['fichier']['size'] <= 1000000) { // Testons si l'extension est autorisée $infosfichier = pathinfo($_FILES['fichier']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png', 'pdf'); if (in_array($extension_upload, $extensions_autorisees)) { // On peut valider le fichier et le stocker définitivement if (is_uploaded_file($_FILES['fichier']['tmp_name'])) { echo "File ". $_FILES['fichier']['name'] ." téléchargé avec succès.\n"; if(is_dir('uploads/'){ if(is_writable('uploads/')) { if(move_uploaded_file($_FILES['fichier']['tmp_name'], 'uploads/' . $_FILES['fichier']['name'])){ echo "L'envoi vers le serveur a bien été effectué !"; $_SESSION['fichier'] = 'uploads/' . $_FILES['fichier']['name']; }else{ echo "Erreur lors de l'upload du fichier vers " . 'uploads/' . $_FILES['fichier']['name'] ; var_dump($_FILES); exit; } } else { echo ("Erreur: Le dossier n'a pas les droits en écriture"; } }else{ echo "Erreur : dossier de destination manquant ou erreur dans le chemin !"; } } else { echo "Attaque possible par téléchargement de fichier : "; echo "Nom du fichier : '". $_FILES['fichier']['tmp_name'] . "'."; } }else{ echo "Extension error "; exit; } }else{ echo "Size Error !"; exit; } }
Il te manque a minima, la fonction move_uploaded_file
Cependant, c'est bizarre, mais au lancement je ne vois pas les tests que j'effectue.
Et après comment faire pour afficher le résultas sur une autre page ?
peut-être ajouter des et y faire ?
Oui j'ai essayé, mais aucun affichage. En vrai je suis un peu perdu, j'ai beau chercher de la documentation, mais ce n'est jamais très clair. Est-ce que vous avez de la documentation sur comment utiliser $_FILES ou m'expliquer comment ça fonctionne. Est-ce que je m'y prend bien, comment pourrais-je l’améliorer ?
Merci beaucoup.