Problème de formulaire
iTonton
-
iTonton -
iTonton -
Bonjour chers membres de la communauté CCM,
Aujourd'hui je suis très gêné dans l'aboutissement d'un projet,
En gros le projet est un blog pour commenter un événement, chaque participant à un compte pour mettre en ligne un article qui passera en modération,
un article se compose ainsi:
#Un titre
#Un contenu
#Une photo (facultative)
j'ai donc codé un truc pour le titre et le contenu, j'ai également récupéré un bout de code pour l'upload d'image mais quand je réuni les deux formulaire en un seul ça ne fait plus ce que je veux. Je veux vérifier s'il y a une photo avec un
mais cela ne marche que dans le cas ou je retire le enctype="multipart/form-data" de la balise form...
Je voudrais donc savoir ce qu'il faut modifier dans le code et comprendre pourquoi.
voici mon code source :
page du formulaire:
et la page d'action
Bref je vous remercie d'avance de vous pencher sur ce code complètement boiteux xD
Aujourd'hui je suis très gêné dans l'aboutissement d'un projet,
En gros le projet est un blog pour commenter un événement, chaque participant à un compte pour mettre en ligne un article qui passera en modération,
un article se compose ainsi:
#Un titre
#Un contenu
#Une photo (facultative)
j'ai donc codé un truc pour le titre et le contenu, j'ai également récupéré un bout de code pour l'upload d'image mais quand je réuni les deux formulaire en un seul ça ne fait plus ce que je veux. Je veux vérifier s'il y a une photo avec un
if(isset($_POST['fichier'])
mais cela ne marche que dans le cas ou je retire le enctype="multipart/form-data" de la balise form...
Je voudrais donc savoir ce qu'il faut modifier dans le code et comprendre pourquoi.
voici mon code source :
page du formulaire:
<html> <head> <title>Mettre en ligne</title> <style> body { font-family:"DejaVu Sans Light"; font-weight:2px; color:#424242; } .title { font-size:42px; } </style> </head> <body> <center><div class="title"><b>Mettre en ligne</b></div></center> <?php session_start(); require('conn.php'); $error = FALSE; $connexionOK = FALSE; if(isset($_POST["connexion"])){ if($_POST["login"] == NULL OR $_POST["pass"] == NULL){ $error = TRUE; $errorMSG = "Vous devez remplir tout les champs !"; } else { $sql = "SELECT login FROM login WHERE login = '".$_POST["login"]."' "; $req = mysql_query($sql); if($sql){ $sql = "SELECT * FROM login WHERE login = '".$_POST["login"]."' "; $req = mysql_query($sql); if($sql){ $donnees = mysql_fetch_assoc($req); if($_POST["pass"] == $donnees["pass"]){ $connexionOK = TRUE; $connexionMSG = "Connexion au site réussie. Vous êtes désormais connecté !"; $_SESSION["login"] = $_POST["login"]; $_SESSION["pass"] = $_POST["pass"]; } // Sinon on lui affiche un message d'erreur. else{ $error = TRUE; $errorMSG = "Nom de compte ou mot de passe incorrect !"; } } // Sinon on lui affiche un message d'erreur. else{ $error = TRUE; $errorMSG = "Nom de compte ou mot de passe incorrect !"; } } // Sinon on lui affiche un message d'erreur. else{ $error = TRUE; $errorMSG = "Nom de compte ou mot de passe incorrect !"; } } } mysql_close($BDD); if(isset($_SESSION["login"]) AND isset($_SESSION["pass"])) { echo' <center> <form method="POST" action="upload/index.php" enctype="multipart/form-data"> <input type="text" name="title" placeholder="Titre" size="65"><br> <textarea name="content" " cols="50" rows="15" resizable="0"></textarea> <br><br> Ajouter une photo<br> <label for="fichier_a_uploader" title="Recherchez le fichier à uploader !"></label> <input type="hidden" name="MAX_FILE_SIZE" value="'."MAX_SIZE".'" /> <input name="fichier" type="file" id="fichier_a_uploader" name="fichier" /><br> <input type="submit" name="submit" value="Valider" /> </form> <br> '; echo '<br><a href="destroy.php">logout</a><br>'; } else { echo ' <form action="" method="post"> <table> <tr> <td><label for="login"><strong>identifiant</strong></label></td> <td><input type="text" name="login" id="login"/></td> </tr> <tr> <td><label for="pass"><strong>mot de passe</strong></label></td> <td><input type="password" name="pass" id="pass"/></td> </tr> </table> <input type="submit" name="connexion" value="Se connecter"/> </form>';} ?> <body>
et la page d'action
<?php session_start(); if(isset($_SESSION["login"]) AND isset($_SESSION["pass"])) { $date = date("d-m-Y"); $heure = date("H:i"); require('conn.php'); mysql_query('INSERT INTO content (login,title,content,validate,heure) VALUES("'.$_SESSION['login'].'","'.$_POST['title'].'","'.$_POST['content'].'","0","'.date('H:i').'")'); echo'Votre arcticle va passer en moderation avant d\'etre publie<meta http-equiv="refresh" content="2; URL=../article.php">'; if(isset($_POST['fichier'])) { echo'swag'; // Constantes define('TARGET', 'files/'); // Repertoire cible define('MAX_SIZE', 100000); // Taille max en octets du fichier define('WIDTH_MAX', 2000); // Largeur max de l'image en pixels define('HEIGHT_MAX', 2000); // Hauteur max de l'image en pixels // Tableaux de donnees $tabExt = array('jpg','gif','png','jpeg'); // Extensions autorisees $infosImg = array(); // Variables $extension = ''; $message = ''; $nomImage = ''; /************************************************************ * Creation du repertoire cible si inexistant *************************************************************/ if( !is_dir(TARGET) ) { if( !mkdir(TARGET, 0755) ) { exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !'); } } /************************************************************ * Script d'upload *************************************************************/ if(!empty($_POST)) { // On verifie si le champ est rempli if( !empty($_FILES['fichier']['name']) ) { // Recuperation de l'extension du fichier $extension = pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION); // On verifie l'extension du fichier if(in_array(strtolower($extension),$tabExt)) { // On recupere les dimensions du fichier $infosImg = getimagesize($_FILES['fichier']['tmp_name']); // On verifie le type de l'image if($infosImg[2] >= 1 && $infosImg[2] <= 14) { // On verifie les dimensions et taille de l'image if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['fichier'][' tmp_name']) <= MAX_SIZE)) { // Parcours du tableau d'erreurs if(isset($_FILES['fichier']['error']) && UPLOAD_ERR_OK === $_FILES['fichier']['error']) { // On renomme le fichier include('name_maker.php'); $nomImage = $key.'.'. $extension; // Si c'est OK, on teste l'upload if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET.$nomImage)) { $message = 'Upload réussi !'; include('conn.php'); mysql_query('INSERT INTO image (login, time, name) VALUES ("user","Le '.date('d-m').' a '.date("H:i").'","'.$nomImage.'")'); } else { // Sinon on affiche une erreur systeme $message = 'Problème lors de l\'upload !'; } } else { $message = 'Une erreur interne a empêché l\'uplaod de l\'image'; } } else { // Sinon erreur sur les dimensions et taille de l'image $message = 'Erreur dans les dimensions de l\'image !'; } } else { // Sinon erreur sur le type de l'image $message = 'Le fichier à uploader n\'est pas une image !'; } } else { // Sinon on affiche une erreur pour l'extension $message = 'L\'extension du fichier est incorrecte !'; } } else { // Sinon on affiche une erreur pour le champ vide $message = 'Veuillez remplir le formulaire svp !'; } } } } ?>
Bref je vous remercie d'avance de vous pencher sur ce code complètement boiteux xD
A voir également:
- Problème de formulaire
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Webmastering
- Problème avec Google Chrome - Forum Google Chrome
1 réponse
pour vérifier si l'utilisateur a donner une photo tu doit plutôt faire ça
parce que les données qu'on upload ne se transmettent pas dans la variable $_POST
donc le code de ta deuxième page (la page d'action)
if(isset($_FILES['fichier']))
parce que les données qu'on upload ne se transmettent pas dans la variable $_POST
donc le code de ta deuxième page (la page d'action)
<?php session_start(); if(isset($_SESSION["login"]) AND isset($_SESSION["pass"])) { $date = date("d-m-Y"); $heure = date("H:i"); require('conn.php'); mysql_query('INSERT INTO content (login,title,content,validate,heure) VALUES("'.$_SESSION['login'].'","'.$_POST['title'].'","'.$_POST['content'].'","0","'.date('H:i').'")'); echo'Votre arcticle va passer en moderation avant d\'etre publie<meta http-equiv="refresh" content="2; URL=../article.php">'; if(isset($_FILES['fichier'])) { echo'swag'; // Constantes define('TARGET', 'files/'); // Repertoire cible define('MAX_SIZE', 100000); // Taille max en octets du fichier define('WIDTH_MAX', 2000); // Largeur max de l'image en pixels define('HEIGHT_MAX', 2000); // Hauteur max de l'image en pixels // Tableaux de donnees $tabExt = array('jpg','gif','png','jpeg'); // Extensions autorisees $infosImg = array(); // Variables $extension = ''; $message = ''; $nomImage = ''; /************************************************************ * Creation du repertoire cible si inexistant *************************************************************/ if( !is_dir(TARGET) ) { if( !mkdir(TARGET, 0755) ) { exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !'); } } /************************************************************ * Script d'upload *************************************************************/ if(!empty($_POST)) { // On verifie si le champ est rempli if( !empty($_FILES['fichier']['name']) ) { // Recuperation de l'extension du fichier $extension = pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION); // On verifie l'extension du fichier if(in_array(strtolower($extension),$tabExt)) { // On recupere les dimensions du fichier $infosImg = getimagesize($_FILES['fichier']['tmp_name']); // On verifie le type de l'image if($infosImg[2] >= 1 && $infosImg[2] <= 14) { // On verifie les dimensions et taille de l'image if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['fichier'][' tmp_name']) <= MAX_SIZE)) { // Parcours du tableau d'erreurs if(isset($_FILES['fichier']['error']) && UPLOAD_ERR_OK === $_FILES['fichier']['error']) { // On renomme le fichier include('name_maker.php'); $nomImage = $key.'.'. $extension; // Si c'est OK, on teste l'upload if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET.$nomImage)) { $message = 'Upload réussi !'; include('conn.php'); mysql_query('INSERT INTO image (login, time, name) VALUES ("user","Le '.date('d-m').' a '.date("H:i").'","'.$nomImage.'")'); } else { // Sinon on affiche une erreur systeme $message = 'Problème lors de l\'upload !'; } } else { $message = 'Une erreur interne a empêché l\'uplaod de l\'image'; } } else { // Sinon erreur sur les dimensions et taille de l'image $message = 'Erreur dans les dimensions de l\'image !'; } } else { // Sinon erreur sur le type de l'image $message = 'Le fichier à uploader n\'est pas une image !'; } } else { // Sinon on affiche une erreur pour l'extension $message = 'L\'extension du fichier est incorrecte !'; } } else { // Sinon on affiche une erreur pour le champ vide $message = 'Veuillez remplir le formulaire svp !'; } } } } ?>
Les informations que tu m'as donné m'ont été très précieuses ! ça marche nickel chrome :))