PHP ↔ UPLOAD ▲ script ne marc
Résolu
-CCM-
Messages postés
927
Date d'inscription
Statut
Membre
Dernière intervention
-
arth Messages postés 9374 Date d'inscription Statut Contributeur Dernière intervention -
arth Messages postés 9374 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai developpé un formulaire php qui marchais en local.
Il permetais a un membre d'envoyer des documents et des infos, aujourd"hui sur le serveur, le script ne marche plus.
J'ai bien une erreur (retourné par le script) mais je ne vois pas ce qu'il cloche :s le dossier destination est en chmod 777 pour mes test ..
Voici le code, et en gras l'erreur retourné :
Quelles conditions peuvent faire que l'upload ne soit pas valide ?
Merci de votre aide.
j'ai developpé un formulaire php qui marchais en local.
Il permetais a un membre d'envoyer des documents et des infos, aujourd"hui sur le serveur, le script ne marche plus.
J'ai bien une erreur (retourné par le script) mais je ne vois pas ce qu'il cloche :s le dossier destination est en chmod 777 pour mes test ..
Voici le code, et en gras l'erreur retourné :
<!--- SCRIPT D ENVOI DES INFORMATIONS ET DU FICHIER ( UPLOAD) --> <?php if( isset($_POST['envoi']) )// si formulaire soumis { // enregistrement des dates d'édition des documents if(isset($_POST['docdate'])) $docdate=$_POST['docdate']; else $docdate=""; // conversion du format de date jj-mm-aaaa en aaaa-mm-jj pour le stockage dans la base de données au format date function dateFRenMySQL ($jour) //$jour au format JJ-MM-AAAA {return substr($jour,6,4).substr($jour,3,2).substr($jour,0,2);} //renvoie la date au format AAAA-MM-JJ $docdate= dateFRenMySQL ($docdate); // definir les variables en fonction des données saisi dans les champs if(isset($_POST['type'])) $type=$_POST['type']; else $type=""; if (isset($_POST['titre']) ) { $titre=$_POST['titre']; $titre=addslashes($titre); } else $titre=""; if (isset($_POST['description']) ) { $description=$_POST['description']; $description=addslashes($description); } else $description=""; if (isset($_POST['langue']) ) $langue=$_POST['langue']; else $langue=""; $langue = str_replace ( 'ç' , 'c' , $langue); if (isset($_POST['mot_clef']) ) { $mot_clef=$_POST['mot_clef']; $mot_clef=addslashes($mot_clef); } else $mot_clef=""; // On vérifie si les champs sont vides if(empty($type) OR empty($docdate) OR empty($titre) OR empty($description) OR empty($langue) OR empty($mot_clef)) { echo "<script>alert('Merci de remplir tout les champs.');</script>"; } else { // dossier où sera déplacé le fichier $content_dir = '/var/www/repertoire'; // la partie "repertoir/" est à modifier en fonction des répertoires ou seront placer les fichiers $tmp_file = $_FILES['fichier']['tmp_name']; if( !is_uploaded_file($tmp_file) ) { exit("Le fichier est introuvable"); } // infos sur le fichier $nom = $_FILES['fichier']['name']; // nom complet du fichier: "fichier.doc" $type_file = $_FILES['fichier']['type']; // application associé. : "application/msword" $extension = strstr($_FILES['fichier']['name'], '.'); $extension = str_replace ( '.' , '' , $extension);// extension du fichier: "doc" // On autorise uniquement l'upload des fichiers portant l'une des extensuions suivante : if ($extension != 'doc' && $extension !='docx' && $extension != 'xls' && $extension != 'txt' && $extension != 'rtf' && $extension != 'pdf' && $extension != 'ppt' && $extension != 'gif' && $extension != 'jpg' && $extension != 'jpeg' && $extension != 'png') { echo "<script>alert('Ce fichier type de fichier n\'est pas autorisé.');</script>"; exit; } else { if( !move_uploaded_file($tmp_file, $content_dir . $nom) ) { echo "<script>alert('Impossible de copier le fichier. Veuillez nous contacter.');</script>"; exit; } // si l'upload c'est bien passé, on réalise la mise a jour des infos dans la base else { include 'toto.php'; //les variables de connexion host user passwd et bdd sont sur une autre page // Connexion au serveur et à la base de données mysql_connect($host, $usrr,$pass) or die("erreur de connexion au serveur"); mysql_select_db($bd) or die("erreur de connexion a la base de donnees"); // on insert les données $sql1 ="INSERT INTO $temp ( `type` , `titre` , `description` , `nom_fichier` , `langue` , `format` , `mots_clefs` , `docdate`) VALUES('$type', '$titre', '$description', '$nom', '$langue', '$extension', '$mot_clef','$docdate')"; mysql_query($sql1) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); echo "<script>alert('Formulaire envoyé, merci. ');</script>"; // On se déconnecte de MySQL mysql_close(); } } } } ?>
Quelles conditions peuvent faire que l'upload ne soit pas valide ?
Merci de votre aide.
A voir également:
- PHP ↔ UPLOAD ▲ script ne marc
- Script vidéo youtube - Guide
- Upload video youtube - Télécharger - Diffusion
- Easy php - Télécharger - Divers Web & Internet
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
4 réponses
Bonjour,
Tu es sûr que ton répertoire /var/www/repertoire est en 777 ?
Par contre autre question est-ce que l'utilisateur qui lance ton serveur web a accès à ce répertoire?
Tu es sûr que ton répertoire /var/www/repertoire est en 777 ?
Par contre autre question est-ce que l'utilisateur qui lance ton serveur web a accès à ce répertoire?
salut oui je suis certains qu'il est en 777, j'ai verifier sous filezilla puis forcer en ligne de commande le chmod au cas ou...
Non il ne devra avoir acces qu'en ecriture.
Le repertoire lui sera invisible, la seul chose qu'il est censé faire, c'est envoyer des documents via un formulaire.
Non il ne devra avoir acces qu'en ecriture.
Le repertoire lui sera invisible, la seul chose qu'il est censé faire, c'est envoyer des documents via un formulaire.
Après je ne sais combien de temps de recherche, j'ai enfin trouver : oufff
$content_dir = '/var/www/repertoire/'; un slash manquant !!! agrrr
Merci.
Pour info, dans le script ci dessus il y a une fonction de conversion de date, format anglais, un script d'upload, et de mise a jour d'info d'une base de donée....
Il est complet si vous voulez l'utiliser !! (manque juste un slash a la fin du repertoire d'upload)
$content_dir = '/var/www/repertoire/'; un slash manquant !!! agrrr
Merci.
Pour info, dans le script ci dessus il y a une fonction de conversion de date, format anglais, un script d'upload, et de mise a jour d'info d'une base de donée....
Il est complet si vous voulez l'utiliser !! (manque juste un slash a la fin du repertoire d'upload)