De l'aide pour un problème de formulaire SVP
Résolu/Fermé
Gare
-
15 mai 2010 à 18:09
freezer25 Messages postés 34 Date d'inscription dimanche 11 avril 2010 Statut Membre Dernière intervention 22 juillet 2010 - 15 mai 2010 à 20:22
freezer25 Messages postés 34 Date d'inscription dimanche 11 avril 2010 Statut Membre Dernière intervention 22 juillet 2010 - 15 mai 2010 à 20:22
A voir également:
- De l'aide pour un problème de formulaire SVP
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Google Chrome
- Problème d'envoi de formulaire ✓ - Forum PHP
- Le formulaire rempli - Guide
1 réponse
freezer25
Messages postés
34
Date d'inscription
dimanche 11 avril 2010
Statut
Membre
Dernière intervention
22 juillet 2010
1
15 mai 2010 à 18:44
15 mai 2010 à 18:44
En faite comme ça je vois deux choses soit le chemin de destination et faux ou le fichier php.ini qui n'autorise pas cette manipulation mais je penche plus que tu t'est trompé dans le chemin de destination.
Il y aussi un truc qui me viens à l'esprit les dossier parent sont aussi en CHMOD 777 ?
Il y aussi un truc qui me viens à l'esprit les dossier parent sont aussi en CHMOD 777 ?
15 mai 2010 à 18:49
Le générateur demande que le nom du dossier mais pas la destination
donc pas http://www.monsite.com/upload mais juste upload.
Je deviens dingue.
Où se trouve le dossier e fichier php.ini ?
Merci pour ta réponse
15 mai 2010 à 18:58
15 mai 2010 à 19:02
15 mai 2010 à 19:07
Lorsque je me connecte via mon FTP j'arrive directement dans mes dossiers et mes pages et aucun s'appelle comme www, httpdocs et chomder
Je crois que je vais abandonner...
Je t'envoie quand même le code mais je ne veux pas que tu perdes trop de temps pour moi!
Encore Merqui!
<?php
// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i", "$desactive") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}
// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) {
// Définir l'indicateur d'erreur sur zéro...
$flag_erreur = 0;
//On commence une session pour enregistrer les variables du formulaire...
session_start();
$_SESSION['champ1'] = $_POST['champ1'];
//Contrôle du spam...
if (eregi("http",$_POST['champ1'])) {
$erreur_champ1 = "Pour raisons de sécurité, ce champ ne peut comporter les caractères <b>http</b>";
$flag_erreur = 1;
}
if (eregi("\[url",$_POST['champ1'])) {
$erreur_champ1 = "Pour raisons de sécurité, ce champ ne peut comporter les caractères <B>[url</b>";
$flag_erreur = 1;
}
if (eregi("<a",$_POST['champ1'])) {
$erreur_champ1 = "Pour raisons de sécurité, ce champ ne peut comporter des liens hypertexte.";
$flag_erreur = 1;
}
if (eregi("\[link",$_POST['champ1'])) {
$erreur_champ1 = "Pour raisons de sécurité, ce champ ne peut comporter les caractères <b>[link</b>";
$flag_erreur = 1;
}
// Nbre de zones de sélection de fichiers -1 car on commence le tableau à zéro...
$nbre_zones_fichiers = 1 - 1;
// Répertoire de téléchargement du fichier...
$repertoire = "/kunden/homepages/39/d141584484/htdocs/upload";
// Taille maximale autorisée en octets...
$taille_max_fichier = 2048000;
// Extensions de fichiers autorisées...
$extensions_autorisees = array("","jpg","jpeg","","doc","txt","","");
// Définir l\'icone apparaissant en cas d\'erreur...
// Définir sur 0 pour afficher un petit x de couleur rouge.
// Définir sur 1 pour afficher l\'image d\'une croix rouge telle que celle utilisée dans l\'assistant
// Si vous utilisez l\'option 1, l\'image de la croix rouge \'icone.gif\' doit se trouver dans le répertoire \'images\',
// ce dernier devant se trouver au même niveau que votre formulaire...
$flag_icone = 0;
// On vérifie si $flag_icone est défini sur 0 ou 1...
if ($flag_icone == 0) {
$icone = "<b><font size=\"3\" face=\"Arial, Verdana, Helvetica, sans-serif\" color=\"#CC0000\">x</font></b>";
} else {
$icone = "<img src=\"images/icone.gif\"";
}
//Validation PHP des éléments du formulaire...
//Envoi avec fichier...
if (($_FILES['fichier']['name']['0'] !="") && is_array($_FILES)) {
if (!is_dir($repertoire)) {
$erreur_fichier[0] = "Le répertoire de téléchargement spécifié n'existe pas!";
$flag_erreur = 1;
} else {
// Vérifier si le répertoire a les droits en écriture...
if (!is_writeable($repertoire)) {
$erreur_fichier[0] = "Le répertoire spécifié n'a pas les droits d'accès en écriture.";
$flag_erreur = 1;
} else {
// On boucle x nbre de fois, sauf si aucun fichier n'a été sélectionné...
for ($u = 0; $u <= $nbre_zones_fichiers, $_FILES['fichier']['name'][$u] != ""; $u++) {
// Vérifier les éventuelles erreurs de téléchargement du fichier...
if ($_FILES['fichier']['error'][$u] != 0) {
switch ($_FILES['fichier']['error'][$u]) {
//case UPLOAD_ERR_OK:
case 0;
break;
//case UPLOAD_ERR_INI_SIZE:
case 1;
$erreur_fichier[$u] = "Le fichier téléchargé dépasse la taille maximale autorisée par le serveur.";
$flag_erreur = 1;
break;
//case UPLOAD_ERR_FORM_SIZE:
case 2;
$erreur_fichier[$u] = "Le fichier téléchargé dépasse la taille maximale autorisée par le formulaire.";
$flag_erreur = 1;
break;
//case UPLOAD_ERR_PARTIAL:
case 3;
$erreur_fichier[$u] = "Le fichier n'a été téléchargé que partiellement.";
$flag_erreur = 1;
break;
//case UPLOAD_ERR_NO_FILE:
case 4;
$erreur_fichier[$u] = "Aucun fichier n'a été téléchargé.";
$flag_erreur = 1;
break;
// case UPLOAD_ERR_NO_TMP_DIR:
case 6:
$erreur_fichier[$u] = "Répertoire temporaire manquant.";
$flag_erreur = 1;
break;
// case UPLOAD_ERR_CANT_WRITE:
case 7:
$erreur_fichier[$u] = "Echec d'écriture du fichier";
$flag_erreur = 1;
break;
default:
$erreur_fichier[$u] = "Erreur de fichier inconnue";
$flag_erreur = 1;
} // fin du switch
} else {
// On vérifie si la taille du fichier ne dépasse pas le maximum autorisé
if ($_FILES['fichier']['size'][$u] > $taille_max_fichier) {
$erreur_fichier[$u] = "Le fichier téléchargé dépasse la taille maximum autorisée.";
$flag_erreur = 1;
} else {
// On met le nom du fichier en minuscules...
$nom_fichier = strToLower($_FILES['fichier']['name'][$u]);
// On recherche la position du point dans le nom de fichier...
$dernPos = strRChr($nom_fichier, ".");
// On extrait l'extension du fichier...
$extension = strToLower(subStr($dernPos, 1));
// Si l'extension n'existe pas ou qu'elle ne fait pas partie des extensions autorisées...
if (($dernPos == "") OR (in_array($extension, $extensions_autorisees) == false)) {
$erreur_fichier[$u] = "L'extension de fichier spécifiée n'est pas autorisée.";
$flag_erreur = 1;
} else {
//On extrait seulement le nom du fichier sans l'extension, $dernPos donnant l'extension avec le point.
$posExtension = strpos($nom_fichier, $dernPos);
$nom_sans_extension = substr($nom_fichier,0,$posExtension);
// On ajoute au nom du fichier un numéro unique puis l'extension du fichier...
$nom_unique[$u] = $nom_sans_extension. "_ID_" . uniqid(rand()).$dernPos;
} // Fin du else
} // Fin du else
} // Fin du else
} // Fin de la boucle for... ()
// On boucle une seconde fois, et on ne copie les fichiers que si aucun d'eux n'a retourné d'erreurs...
$u = 0;
while ((($u<= $nbre_zones_fichiers) && ($_FILES['fichier']['name'][$u] != "") && ($flag_erreur !=1))) {
// On déplace le fichier téléchargé du répertoire temporaire sur le répertoire spécifié
if (!move_uploaded_file($_FILES['fichier']['tmp_name'][$u], $repertoire."/".$nom_unique[$u])) {
$erreur_move_uploaded[$u] = "Impossible de déplacer le fichier dans le répertoire de destination...";
$flag_erreur = 1;
} // Fin du if
$u++;
} // Fin de la boucle while
} // Fin du else
} // Fin du else
} // Fin du if (($_FILES['fichier']['name']['0'] !="") && is_array($_FILES)) {
// N'envoyer le formulaire que s'il n'y a pas d'erreurs...
if ($flag_erreur == 0) {
// Addresse de réception du formulaire
$email_dest = "garance.tosello@neuf.fr";
$sujet = "Formulaire commande";
if (($_FILES['fichier']['name']['0'] !="") && is_array($_FILES)) {
// En-têtes spécifiques de l'e-mail AVEC pièce jointe:
// Génération d'une chaîne de délimitation
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$entetes ="MIME-Version: 1.0 \n";
$entetes .="From: Garance Tosello<garance.tosello@neuf.fr>\n";
$entetes .="Content-Type: multipart/mixed;\n";
$entetes .=" boundary=\"{$mime_boundary}\"";
$partie_entete = "Message au format MIME.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/html; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
"<html>\n<head>\n<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n</head>\n<body bgcolor=#FFFFFF>\n";
} else { // En-têtes de l'e-mail sans envoi de fichier...
$entetes ="MIME-Version: 1.0 \n";
$entetes .="From: Garance Tosello<garance.tosello@neuf.fr>\n";
$entetes .="Return-Path: Garance Tosello<garance.tosello@neuf.fr>\n";
$entetes .="Reply-To: Garance Tosello<garance.tosello@neuf.fr>\n";
$entetes .="Content-Type: text/html; charset=iso-8859-1 \n";
$partie_entete = "<html>
<head>
<title>Formulaire</title>
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
</head>
<body bgcolor=#FFFFFF>\n";
} // fin du else...
//Partie HTML de l'e-mail...
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Nom = " . $_SESSION['champ1'] . "</font><br>\n";
// Enfin, on indique le nom et l'emplacement de la pièce jointe sur le serveur.
if (($_FILES['fichier']['name']['0'] !="") && is_array($_FILES)) {
// On boucle x nbre de fois, sauf si aucun fichier n'a été sélectionné...
for ($u = 0; $u <= $nbre_zones_fichiers, $_FILES['fichier']['name'][$u] != ""; $u++) {
$a = $u + 1;
$partie_fichier .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Pièce jointe $a : " . $nom_unique[$u] . "</font><br>";
} // Fin de la boucle for...
} // Fin du if...
$fin = "</body></html>\n\n";
// Si envoi de fichier...
if (($_FILES['fichier']['name']['0'] !="") && is_array($_FILES)) {
// Construction de la pièce jointe...
for ($u = 0; $u <= $nbre_zones_fichiers, $_FILES['fichier']['name'][$u] != ""; $u++) {
$type = $_FILES['fichier']['type'][$u];
// Lecture du fichier ('rb' = lecture en binaire)
$fichier = fopen($repertoire . "/" . $nom_unique[$u],'rb');
$donnees = fread($fichier,filesize($repertoire . "/" . $nom_unique[$u]));
fclose($fichier);
// Encodage Base64 des données
$donnees = chunk_split(base64_encode($donnees));
// Partie piece jointe de l'e-mail
$piece_jointe .= "--{$mime_boundary}\n" .
"Content-Type: {$type};\n" .
" name=\"{$nom_unique[$u]}\"\n" .
"Content-Disposition: attachment;\n" .
" filename=\"{$nom_unique[$u]}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$donnees . "\n\n";
} // Fin de la boucle for...
// Fin de la pièce jointe...
$piece_jointe .= "--{$mime_boundary}--\n";
$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_listes . $partie_boutons . $partie_cases . $partie_zone_texte . $partie_fichier . $fin . $piece_jointe;
} else {
$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_listes . $partie_boutons . $partie_cases . $partie_zone_texte . $fin;
}
// On supprime le fichier du serveur...
for ($u = 0; $u <= $nbre_zones_fichiers, $_FILES['fichier']['name'][$u] != ""; $u++) {
unlink($repertoire."/".$nom_unique[$u]);
} // fin de la boucle for...
// Send the e-mail
if (@!mail($email_dest,$sujet,$sortie,$entetes)) {
echo("Envoi du formulaire impossible");
exit();
} else {
// Rediriger vers la page de remerciement
header("Location:http://www.votre-faire-part.com/remerciement-commande.htm");
exit();
} // Fin else
} // Fin du if ($flag_erreur == 0) {
} // Fin de if POST
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- Assistant de création de formulaires PHP pour les nuls - Version Pro 2.0
Auteur : Frédéric Ménard (assistant@f1-fantasy.net)
Site : http://www.f1-fantasy.net/assistant
-->
<head>
<title>Formulaire</title></head><body><form name="mail_form" method="post" action="<?php echo($_SERVER['PHP_SELF']); ?>" enctype="multipart/form-data">
<div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma"><strong>Formulaire
de contact</strong></font></div><br></br><table align="center" width="566" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="16"><div align="center">
<font color="#CC0000" size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma"><strong><?php
if ($erreur_champ1) {
echo(stripslashes($erreur_champ1));
} else {
if ($erreur_fichier[0]) {
echo(stripslashes($erreur_fichier[0]));
} else {
} // Fin du else...
} // Fin du else...
?>
</strong></font>
</div></td>
</tr>
</table>
<p align="center"></p><table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Nom</font></div></td>
<td align="center" valign="middle" width="30">
<?php
if ($erreur_champ1) {
echo($icone);
}
?>
</td>
<td><input name="champ1" type="text" value="<?php echo(stripslashes($_SESSION['champ1'])); ?>"></input></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="140" align="right"><font face="Verdana" size="2">Fichier<input name="MAX_FILE_SIZE" type="hidden" value="2048000"></input></font></td>
<td width="30" align="center" valign="middle">
<?php
if ($erreur_fichier[0]) {
echo($icone);
}
?>
</td>
<td><input type="file" name="fichier[]" id="fichier1"></input>
<font face="Verdana" size="2">(2 Mo maximum)</font></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td valign="top"><div align="center">
<input type="reset" name="Reset" value=" Effacer "></input>
<input type="submit" name="envoi" value="Envoyer"></input>
</div></td></tr></table><div align="center"><input name="nbre_fichiers" type="hidden" id="nbre_fichiers" value="1"></input></div></form></body></html>
15 mai 2010 à 19:11
Lorsque je me connecte sur mon FTP je rentre directement sur mes pages et sur mes dossiers et je n'ai pas de dossiers appelés"www ou httpdocs et chomder".
Je ne veux pas que tu perdes trop de temps pour moi!!
Je t'envoie quand même le code mais si tu n'y arrives pas laisse tomber.
Ca fait juste un an que j'essaye via plusieurs générateurs en y mettre un bouton parcourir pour les fichiers!!!
Merci quand même