Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1299 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  champ hidden, formulaire, mail...

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

champ hidden, formulaire, mail...

n°812991
tristus
Posté le 02-08-2004 à 19:38:18  profilanswer
 

Bonjour à tous !
 je souhaite me faire envoyer un formulaire par mail, via le ftp de mon site ; je mets donc en action dans ce formulaire une page nommée "ok.php", qui peut récupérer les valeurs des champs . Mais ,le problème, c'est que ce formulaire est long, y'a des dizaines de champs ! alors comment faire pour "compresser" toutes les données du formulaire , en un seul petit champ qui les recueillerait gentiment...Je suis plongé depuis 12 heures dans ce forum, dans les tutos et les docs des "champs cachés" genre Hidden, mais là j'avoue que je capte rien...Ces champs hidden sembleraient pouvoir gober les variables d'un tabeau, masi pas d'un formulaire ?
 
Si quelqu'un a rencontré le problème...Merci d'avance !
Amitiés

mood
Publicité
Posté le 02-08-2004 à 19:38:18  profilanswer
 

n°812995
naceroth
Posté le 02-08-2004 à 19:45:28  profilanswer
 

Même pas compris ta question :(
 
Les champs hidden sont des champs de formulaire, pas un truc abstrait à part. Puis tu peux récupérer et traiter tes champs pour les envoyer comme bon te semble dans un mail :)
 
(t'envois souvent des mails par ftp toi ? :D)

n°813095
tristus
Posté le 02-08-2004 à 23:35:07  profilanswer
 

certes, je me suis mal exprimé ! d'après ce que je capte (vaguement), le fait d'être hébergé par phpnet,  disposant du ftp me permet de me faire envoyer les formulaires validés dans mon site perso, sur mon e-mail perso, en passant par la fonction mail.
 
Mais existe-t-il un moyen de regrouper, dans un formulaire ou dans la page mise en action par ce formulaire, une vingtaine de noms de champs ainsi que leurs valeurs entrées dans le formulaire par le "valideur" ? Est-ce que les champs hidden peuvent servir à cela ???

n°813114
esox_ch
Posté le 03-08-2004 à 00:21:35  profilanswer
 

Donc deja, le fait que ton hebergeur aie un FTP (ce qui me semble assez probable pask sinon je vois pa comment tu uploaderais tes ficher :p) n'a rien a voir avec la fonction mail() du serveur, qui elle depend du protocole smtp .. bon passons... Les champs hidden ne sont enfait rien d'autre que des champs de type texte invisibles, ils ont les memes fonctions aux yeux du php. Ce que je comprend pas c'est en quoi le fait d'avoir beaucoup de champs te pose un probleme...

n°813119
naceroth
Posté le 03-08-2004 à 00:54:59  profilanswer
 

tristus a écrit :

certes, je me suis mal exprimé ! d'après ce que je capte (vaguement), le fait d'être hébergé par phpnet,  disposant du ftp me permet de me faire envoyer les formulaires validés dans mon site perso, sur mon e-mail perso, en passant par la fonction mail.


 
Oui, ça d'accord. L'envoi de mail n'a juste rien à voir avec le protocole ftp  :)  
 

Citation :

Mais existe-t-il un moyen de regrouper, dans un formulaire ou dans la page mise en action par ce formulaire, une vingtaine de noms de champs ainsi que leurs valeurs entrées dans le formulaire par le "valideur" ? Est-ce que les champs hidden peuvent servir à cela ???


 
Non, les champs hidden ne servent pas à ça. Je me répète, mais un champs hidden est un champs de formulaire (et donc présent dans le document où se situe le form, sur le client) et n'a rien de différent d'un champs text pour php (qui se trouve lui sur le serveur).  
 
Concernant le regroupement, bien sûr que oui c'est possible, tu concatènes tes champs venant du formulaire comme bon te semble dans une variable php par exemple et tu te sers de la variable comme corps du message du mail.

n°813157
tristus
Posté le 03-08-2004 à 09:16:38  profilanswer
 

Génial, Naceroth ! C'est exactement ce dont j'ai besoin, un système de concaténation, dont le résultat-variable sera injecté dans le corps de la fonction mail().
Donc si mes champs de formulaire sont nom, adressse, phone...je récupère leurs valeurs dans la page mise en action dans le formulaire, sous la forme $nom, $adresse, $phone...et si je souhaite les concaténer dans une variable $message avant de mailer, quelle est la syntaxe ? Comment puis-je injecter des espaces entre les valeurs ? faut que je retape $\n entre chaque, dans la ligne de concaténation ? Ou comment insérer des sauts de ligne pour que les valeurs du formulaire m'arrivent propres et lisibles dans le mail ?
merci à vous ! (Nacéroth et Esox)
 
(P.S ok, je me suis fourvoyé dans les appellations plus haut ! Lire "SMTP" au lieu de "FTP"... ;)

n°813214
Profil sup​primé
Posté le 03-08-2004 à 10:22:22  answer
 

mais pourquoi tu veux les concatener ou pas les envoyer sur plusieurs champs?

n°813637
tristus
Posté le 03-08-2004 à 14:20:35  profilanswer
 

parce que ça va m'obliger à écrire 50 lignes pour 50 champs différents ! si je dois me taper (enfin j'imagine commeça)  :
$mes = $nom  $mes = "\n" $mes= $prenom $mes = "\n" $mes=$phone....puis après 50 fois, me mailer $mes, ça va prendre des plombes !  ;)

n°813651
fb@alphalo​g
Posté le 03-08-2004 à 14:26:23  profilanswer
 

je crois que tu n'as oas trop le choix  
a moins que tes variables ne soit dans un tableau a  parcourir

n°813848
tristus
Posté le 03-08-2004 à 16:04:47  profilanswer
 

faible lueur d'espoir, alors fb ?
si j'insère mon formulaire dans un tableau, c'est possible ?

mood
Publicité
Posté le 03-08-2004 à 16:04:47  profilanswer
 

n°813850
Dj YeLL
$question = $to_be || !$to_be;
Posté le 03-08-2004 à 16:06:38  profilanswer
 

Citation :

si j'insère mon formulaire dans un tableau, c'est possible ?


 
:??:
 
Je dois avouer que j'ai de plus en plus de mal à saisir ce que tu veux faire ...
 
J'avais cru comprendre que tu voulais faire un système tout bête qui récupère les valeurs des input et qui les envoies par mail ... c'est pas ça ?

n°813860
fb@alphalo​g
Posté le 03-08-2004 à 16:15:51  profilanswer
 

tu vas faire  
$tab = list($nomVariable1 => $var1,$nomVariable2=> $var2 ...)
 
ensuite  
$msg = "";
foreach ($tab as $nom=>$valeur )
    $msg .=$nom.":".$valeur."\n";
 
mais au final c exactement pareil  
il faut que tu tape tous les noms de tes variables
 

n°813865
Dj YeLL
$question = $to_be || !$to_be;
Posté le 03-08-2004 à 16:20:35  profilanswer
 

ou sinon tu donne le meme nom à tous tes champs...
 
Du genre :
 

Code :
  1. Nom : <input type="text" name="infos[]">
  2. Prénom : <input type="text" name="infos[]">
  3. Age : <input type="text" name="infos[]">
  4. Ville : <input type="text" name="infos[]">


 
Puis tu fais un :
 

Code :
  1. foreach($infos as $valeur)
  2. {
  3.    $msg .= $valeur."\n";
  4. }


 
A toi apres de savoir à quoi correspond chaque ligne dans l'email que tu reçois ... mais si tu en as plus de 50 ... il te faut une bonne mémoire...
 
++


Message édité par Dj YeLL le 03-08-2004 à 16:21:48
n°813867
tristus
Posté le 03-08-2004 à 16:21:04  profilanswer
 

Dj YeLL a écrit :

Citation :

si j'insère mon formulaire dans un tableau, c'est possible ?


 
:??:
 
Je dois avouer que j'ai de plus en plus de mal à saisir ce que tu veux faire ...
 
J'avais cru comprendre que tu voulais faire un système tout bête qui récupère les valeurs des input et qui les envoies par mail ... c'est pas ça ?


 
sisi Yell, c'est ça !

n°813873
Dj YeLL
$question = $to_be || !$to_be;
Posté le 03-08-2004 à 16:26:38  profilanswer
 

Donc tu n'as pas bcp le choix, soit tu fais comme fb@alphalog a dit un peu plus haut, soit comme j'ai dis juste avant ton message précédent...
 
++

n°813881
Aurelienaz​erty
Posté le 03-08-2004 à 16:37:26  profilanswer
 

while (list($key, $val) = each($_POST)) {
 echo "\$_POST['".$key."'] = $val;<br>";
}

si ton forumlaire est en GET, mettre $_GET...
Et à la place de l'echo, ben tu fais ce que tu veux


Message édité par Aurelienazerty le 03-08-2004 à 16:37:59

---------------
http://lan.team-azerty.com, LAN fun en Rhône-Alpes
n°813885
Dj YeLL
$question = $to_be || !$to_be;
Posté le 03-08-2004 à 16:42:03  profilanswer
 

aurelienazerty a écrit :

while (list($key, $val) = each($_POST)) {
 echo "\$_POST['".$key."'] = $val;<br>";
}

si ton forumlaire est en GET, mettre $_GET...
Et à la place de l'echo, ben tu fais ce que tu veux


 
[:catchocaps]


Message édité par Dj YeLL le 03-08-2004 à 16:46:09
n°813889
naceroth
Posté le 03-08-2004 à 16:44:34  profilanswer
 

tristus a écrit :

et si je souhaite les concaténer dans une variable $message avant de mailer, quelle est la syntaxe ? Comment puis-je injecter des espaces entre les valeurs ? faut que je retape $\n entre chaque, dans la ligne de concaténation ? Ou comment insérer des sauts de ligne pour que les valeurs du formulaire m'arrivent propres et lisibles dans le mail ?
merci à vous ! (Nacéroth et Esox)


 
Bon, je précise d'entrée que j'ai pas tester les solutions que je vais proposer, j'ai pas de serveur web sous la main, c'est donc du théorique :)
 
Solution 1 :

Code :
  1. $message = implode("\n",$_POST);
  2. mail(...,...,$message);


 
Solution 2 :

Code :
  1. $message = '';
  2. foreach ($_POST as $nom=>$valeur){
  3.    $message .= "$nom : $valeur\n";
  4. )


 
Bon, je garantis rien, faut les essayer :)

n°813977
tristus
Posté le 03-08-2004 à 17:52:48  profilanswer
 

BRAVO Naceroth, le coup du "implode", le premier que j'essaie, et ça a marché du premier coup ! Merci encore (et aux autres, bien sûr ! ) :)
par contre, j'ai essayé de joindre une photo (en injectant un champ de fichier dans le formulaire, et là, que dalle...enfin si, je reçois toujours les données alphanumériques (nom, prénom, adresse), mais point de photo.jpg.
et est-il aussi possible (je sais, je sui!s exigeant ! ;)) de récupérer les noms de champs en face de leurs valeurs dans le fichier mailé ?
Les dieux de la programmation sont-ils toujours là ? ;)
merci !

n°813983
naceroth
Posté le 03-08-2004 à 17:57:36  profilanswer
 

tristus a écrit :

BRAVO Naceroth, le coup du "implode", le premier que j'essaie, et ça a marché du premier coup ! Merci encore (et aux autres, bien sûr ! ) :)
par contre, j'ai essayé de joindre une photo (en injectant un champ de fichier dans le formulaire, et là, que dalle...enfin si, je reçois toujours les données alphanumériques (nom, prénom, adresse), mais point de photo.jpg.


 
Tu veux transmettre le fichier en pièce jointe ?
 

Citation :

et est-il aussi possible (je sais, je sui!s exigeant ! ;)) de récupérer les noms de champs en face de leurs valeurs dans le fichier mailé ?


 
La solution 2 le fait :) C'est peut être possible à base de implode, mais c'est une manip qu'il faudrait que je fasse avec un serveur :)

n°813987
tristus
Posté le 03-08-2004 à 17:58:58  profilanswer
 

NB : la deuxième méthode nacerothienne fonctionne aussi (avec le foreach), mais ne permet pas non plus de récupérer un fichier photo.

n°813989
tristus
Posté le 03-08-2004 à 18:03:05  profilanswer
 

ok Naceroth, je viens de tester la solution 2, et je récupère en prime mes noms de champs ! la vie est belle, bravo !
Oui, je ouhaite que le valideur du formulaire pûisse m'envoyer qqs photos (en pièce jointe ou incorporées) au mail.
Il faut donc que dans le formulaire j'insère un champ dit " de fichier" ? je l'ai fait, le joli bouton "parcourir"  est apparu, j'ai testé, mais point de fichier photo à l'arrivée...

n°814038
naceroth
Posté le 03-08-2004 à 18:47:44  profilanswer
 

Bon, les pièces jointes c'est une autre paire de manche, hors de question que je le fasse de mémoire :)
 
Je poste le script dès que je le retrouve :)

n°814046
tristus
Posté le 03-08-2004 à 19:02:56  profilanswer
 

précisions, je suis en "POST" dans le formulaire, et en encodage multipart form data...

n°814105
naceroth
Posté le 03-08-2004 à 19:58:37  profilanswer
 

bon, accroche toi à ta chaise, surtout si tu dois adapter le code :D

Code :
  1. <?php
  2. $boundary = "-----=".md5(uniqid(rand()));
  3. // Construction des en-têtes
  4. $header = "MIME-Version: 1.0\r\n";
  5. $header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
  6. // Corps du message
  7. // Problème de client mail
  8. $msg = "Message au format MIME 1.0\r\n";
  9. $msg .= "--$boundary\r\n";
  10. $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
  11. $msg .= "Content-Transfer-Encoding:8bit\r\n";
  12. // Ligne vide obligatoire
  13. $msg .= "\r\n";
  14. // Texte du message  
  15. foreach ($_POST as $nom=>$valeur){
  16.    $msg .= "$nom : $valeur\r\n";
  17. }
  18. // Fin du texte
  19. $msg .= "--$boundary\r\n";
  20. // Gestion du fichier joint
  21. // 1. On lit le contenu du fichier
  22. $fp = fopen($_FILES['fichier']['tmp_name'],"rb" );
  23. $attachment = fread($fp, $_FILES['fichier']['size']);
  24. fclose($fp);
  25. // 2. Convertion RFC 2045
  26. $attachment = chunk_split(base64_encode($attachment));
  27. // 3. En-tête de cette partie
  28. $msg .= "Content-Type: ".$_FILES['fichier']['type']."; name=\"".$_FILES['fichier']['name']."\"\r\n";
  29. $msg .= "Content-Transfer-Encoding: base64\r\n";
  30. $msg .= "Content-Disposition: attachment;\r\n";
  31. // 4. Ligne vide obligatoire
  32. $msg .= "\r\n";
  33. // 5. Insertion du fichier
  34. $msg .= $attachment . "\r\n";
  35. // Fin du message
  36. $msg .= "--$boundary--\r\n";
  37. mail(...,...,$msg,$header);
  38. ?>


 
fonctionne pour une pièce jointe. J'ai légèrement modifier mon script de départ pour lui permettre d'envoyer des MIME connus et pas juste des zip comme il le faisait à la base, je t'encourage donc à me signaler les bugs :D
 
J'oubliais, le script considère que le champs du formulaire contenant le fichier s'appelle fichier.


Message édité par naceroth le 03-08-2004 à 20:00:28
n°814305
tristus
Posté le 03-08-2004 à 23:03:41  profilanswer
 

ben non, Naceroth, ça plante dès la 1ère ligne, dès la variable boundary... :(
j'ai trouvé ceci pour envoyer plusieurs fichiers origine koi29 :  
http://www.koi29.info/php/index.php?param=15)
 
D'après ce que je capte, le code du form est :
 
 
<html>
<head><title>Envoi de fichiers</title></head>
<body>
<form action='test.php' method ='POST' enctype='multipart/form-data'>
<input type='hidden' name='MAX_FILE_SIZE' value='64000'>
Fichiers :  
<TABLE width='640' border='0'>
<TR>
<?  
for ($j=0; $j<2; $j++)
{ // on charge les noms dans un tableau qui s'auto-incrémente
 echo "<TD>";
 for ($i=0; $i<6; $i++) echo "<br><input type='file' name='upload_file[]'>";
 echo "</TD>";
}
?>
</TR>
<TR><TD colspan='2' align='middle'><input  type='submit' value='             Envoyer  les fichiers              '></TD></TR></form>
</font>
</TABLE>
</body></html>
 
bien que la dernière balise table, on se demande ce qu'elle fout là...
 
ensuite, la page mise en action est donc :
 
/*----------------
     test.php
----------------*/
<?
$REP_FINAL= 'e:/Apache/htdocs/essai/';  // mettre l'url du rep final de stockage
 
$UPLOAD_TYPES['JPG'] = 1;
$UPLOAD_TYPES['JPEG'] = 1;
$UPLOAD_SIZES['max'] = 64000;  // taille maxi autorisée  
$UPLOAD_SIZES['min'] = 0;
 
for ($k = 0; $k<count($upload_file) ; $k++)
{
   if ( $upload_file[$k] == "" )   continue; // pas de fichier ici on saute
   
   echo "<hr>Fichier : ".$HTTP_POST_FILES['upload_file']['name'][$k]."<br>Taille : ".$HTTP_POST_FILES['upload_file']['size'][$k]."<br><br>\n";
 
   // vérifie le type et la taille
   $resultat = check_in( $HTTP_POST_FILES['upload_file']['name'][$k] , $HTTP_POST_FILES['upload_file']['size'][$k] );
 
   $message = $HTTP_POST_FILES['upload_file']['name'][$k]." n'est pas acceptable<br><br>";
   switch ( $resultat )
  {
 case '-1' :     echo $message."<font face='Arial Black' color='red' size='3'> Taille du fichier > 64kO !!!</font>" ;       break;
 case '-2' :    echo $message." <font face='Arial Black' color='red' size='3'>Type de fichier non autorisé !!!</font>" ;   break;
  }
  if (   ($resultat == -1) ||  ($resultat == -2)  )   continue; // pas acceptable : on saute
  $nf =  $HTTP_POST_FILES['upload_file']['name'][$k];
  $xxx = split('[.]', $nf );
  $xxx[count($xxx) - 2] = strtoupper($xxx[count($xxx) - 2]);
  $filename = implode( ".", $xxx );
  // le fichier existe-t'il déjà ?
  $ret = exist_file( $REP_FINAL , $filename );
  switch ( $ret )
 {  
    case '0' : // on utilise la fonction PHP  move_uploaded_file
     if ( !move_uploaded_file( $HTTP_POST_FILES['upload_file']['tmp_name'][$k] , $REP_FINAL.$filename) )
          die( "Vous n'avez pas envoyé de fichier ou celui-ci ne peut pas être déplacé vers". $REP_FINAL.$HTTP_POST_FILES['upload_file']['name'][$k] );  
     else echo "Le fichier ".$filename." est parvenu dans son répertoire de destination";  
   break;
   case '1' :
     echo "<font face='Arial Black' color='red' size='3'>Le fichier ".$filename." existe dans le répertoire de destination. Transfert non effectué.</font>"; }
   break;
   case '-1' :
     echo "<font face='Arial Black' color='red' size='3'>Le répertoire de destination n' existe pas. Transfert non effectué.</font>";  
   break;
 } // fin du switch ret
} // fin de boucle for
 
/*-----------------------------------------------------
 fonction check_in
 objectif : vérifier le fichier envoyé
 entrées :
  $nom :  nom du fichier
  $taille    :  taille
 sortie :
  1   si OK
  -1 si taille incorrecte
  -2 si type incorrect
-----------------------------------------------------*/
function check_in( $nom, $taille )
{
 // vérifie d'abord la taille
 if (   ($taille < $GLOBALS['UPLOAD_SIZES']['min']) || ($taille > $GLOBALS['UPLOAD_SIZES']['max']) )  
   return -1;
 // vérifie le type
 $arrSegments = split('[.]', $nom );  // nom de fichier avec plusieurs points ?
 $strExtension =  $arrSegments[count($arrSegments) - 1];
 if ( $GLOBALS['UPLOAD_TYPES'][strtoupper($strExtension)] != 1 ) return -2;
 
 return 1; // c'est ok
}
/*----------------------------------------------------
 fonction exist_file  
 objectif : vérifier si le fichier existe dans le repertoire spécifié
 entrées :  
  nom du repertoire
  nom du fichier
 sortie :  
       -1 si le rep n'existe pas
       1 si le fichier existe dans le rep  
       0  sinon
 je n'utilise pas la fonction file_exist qui teste dans le répertoire courant
-----------------------------------------------------*/
function exist_file( $dir, $fileName )
{  
 $a_dir = @opendir(  $dir );
 if ( !$a_dir ) return -1; // le rep n'existe pas
 while ( $fp = readdir( $a_dir ) )  
 {  
  if ( $fp == $fileName ) return 1; // un fichier de même nom existe
 }
 return 0;
}
?>
 
le blème, c'est comment  se faire mailer ces fichiers, au lieu de tout balancer dans un $REP_FINAL ???
 
J'ai aussi en stock ce tuto  :
 
http://www.phpfrance.com/tutorials/index.php?id=10
 
le monsieur l'est bien ganetil, mais l'explique pas comment on se fait mailer le fichier !
j'ai essayé de le trafiquer avec ma fonction mail, tout ce que je réccolte dans ma box, c'est le nom temporaire du fichier qu'est stocké sur mon hébergeur ; mais pour le récupérer, tintin !
 
Avis aux spécialistes...merci les gars !

n°814363
naceroth
Posté le 04-08-2004 à 00:09:45  profilanswer
 

tristus a écrit :

ben non, Naceroth, ça plante dès la 1ère ligne, dès la variable boundary... :(


 
Ben non, ça fonctionne nickel, t'imagines bien que je l'ai pas laché dans la nature sans le tester :)
 
Maintenant, sans message d'erreur, comme d'hab, on peut rien faire  :sarcastic:

n°814552
tristus
Posté le 04-08-2004 à 10:51:36  profilanswer
 

Oups ! j'avais z'oublié :)
voici la réponse de la page actionnée par le formulaire (cette page est appelée ok5;php, c'est sur celle-ci que j'ai copié-collé tout ton script):
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/users/t/tristan/www/monsite/ok5.php on line 4
 
bon, la ligne 4, c'est celle du boundary !
merci, amitiés
tristan

n°815078
naceroth
Posté le 04-08-2004 à 17:24:48  profilanswer
 

Bizarre une erreur comme ça sur la première ligne d'un script qui seul fonctionne :D
 
T'as pas oublié un ; à la ligne juste avant ? :)

n°815251
tristus
Posté le 04-08-2004 à 20:03:06  profilanswer
 

ben non, j'ai copié-collé !
bon, je progresse ! j'ai réussi à trouver un script (bouuré de bugs) où je parviens à faire télécharger des photos sur un répertoire de mon site !  
maintenant, comment me les faire mailer ? Mystère...;)
Amitiés

n°815375
Dj YeLL
$question = $to_be || !$to_be;
Posté le 04-08-2004 à 22:44:41  profilanswer
 

Tu dois avoir un drôle de php, chez moi ça marche nickel son script ...
 
De plus tu dis que tu n'as fais qu'un copier coller, mais alors pourquoi ton script dit que l'erreur vient de la ligne 4 alors que la ligne du boundary est la ligne 2 ... c'est que tu as forcement mis qqch avant cette ligne ...
 
Et c'est de là que doit venir le pb...
 
++

n°815384
naceroth
Posté le 04-08-2004 à 23:07:44  profilanswer
 

tristus a écrit :

ben non, j'ai copié-collé !


 
Euh...Non :D
 
Comme le dit Dj YeLL, le numéro de la ligne d'erreur ne correspond pas à copier/coller strict :)
 
Colle nous ta page ok5.php complète qu'on voit ça de plus près :)

n°815575
tristus
Posté le 05-08-2004 à 10:21:02  profilanswer
 

Bon, je viens de réessayer, ça plante toujours.
J'ai fait démarrer ma page "ok5.php" avec l'ouverture <php en ligne 1...Euh...fallait ptêt pas ? :(
 
Merci de votre indulgence !
Donc voici le code :
fichier formex5 (5 pour 5ème tentative désespérée !) qui injecte le formulaire :
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans nom</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body>
<form action="ok5.php" method="post" enctype="multipart/form-data" name="form1">
  <p>
    Nom :
    <input name="nom" type="text" id="nom">
 Pr&eacute;nom :  
 <input name="prenom" type="text" id="prenom">
  </p>
  <p>fichier &agrave; envoyer :
    <input name="fichier" type="file" id="fichier">
    <input type="submit" name="Submit" value="Envoyer">
    </p>
</form>
</body>
</html>
 
(désolé, je ne sais pas comment vous faites pour intégrer les jolies fenêtres "code" dans vos mails !)
 
et voici le fichier Nacerothien mizenaction (ok5.php) :
 
<?php  
††$boundary†=†"-----=".md5(uniqid(rand()));  
††//†Construction†des†en-tÍtes  
††$header†=†"MIME-Version:†1.0\r\n";  
††$header†.=†"Content-Type:†multipart/mixed;†boundary=\"$boundary\"\r\n";  
††//†Corps†du†message  
†††//†ProblËme†de†client†mail  
†††$msg†=†"Message†au†format†MIME†1.0\r\n";  
†††$msg†.=†"--$boundary\r\n";  
††  
††$msg†.=†"Content-Type:†text/plain;†charset=\"iso-8859-1\"\r\n";  
††$msg†.=†"Content-Transfer-Encoding:8bit\r\n";  
††//†Ligne†vide†obligatoire  
††$msg†.=†"\r\n";  
††//†Texte†du†message†  
††foreach†($_POST†as†$nom=>$valeur){  
†††††††$msg†.=†"$nom†:†$valeur\r\n";  
††}  
††//†Fin†du†texte  
††$msg†.=†"--$boundary\r\n";  
††//†Gestion†du†fichier†joint  
††//†1.†On†lit†le†contenu†du†fichier  
††$fp†=†fopen($_FILES['fichier']['tmp_name'],"rb" );  
††$attachment†=†fread($fp,†$_FILES['fichier']['size']);  
††fclose($fp);  
††//†2.†Convertion†RFC†2045  
††$attachment†=†chunk_split(base64_encode($attachment));  
††//†3.†En-tÍte†de†cette†partie  
††$msg†.=†"Content-Type:†".$_FILES['fichier']['type'].";†name=\"".$_FILES['fichier']['name']."\"\r\n";  
††$msg†.=†"Content-Transfer-Encoding:†base64\r\n";  
††$msg†.=†"Content-Disposition:†attachment;\r\n";  
††//†4.†Ligne†vide†obligatoire  
††$msg†.=†"\r\n";  
††//†5.†Insertion†du†fichier  
††$msg†.=†$attachment†.†"\r\n";  
††//†Fin†du†message  
††$msg†.=†"--$boundary--\r\n";  
††mail("tris.tan@tele2.fr","fichier joint",$msg,$header);†  
††?>  
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body>
 
</body>
</html>
 
Euh...Les petits crucifix, je vois pas ce qu'ils foutent là quand je copie-colle ! ça doit être les espaces....C'est ça, mon bug ?
 
L'erreur pondue à l'arrivée sur ok5 est cette fois du type :
Parse error: parse error, unexpected T_VARIABLE in /home/users/t/tristan/www/monsite/ok5.php on line 2
 
ligne 2, donc tjrs celle du boundary !
 
c'est grave, Docteur(s)  ?  ;)
 
 

n°815589
Dj YeLL
$question = $to_be || !$to_be;
Posté le 05-08-2004 à 10:34:33  profilanswer
 

Je doute que ce soit normal toutes ces croix ... bienvenue dans la maison du Seigneur :D

n°815612
tristus
Posté le 05-08-2004 à 10:51:13  profilanswer
 

Saint Yell, priez pour moi...;)

n°815659
Dj YeLL
$question = $to_be || !$to_be;
Posté le 05-08-2004 à 11:22:51  profilanswer
 

Ben à ce que je vois, quand tu kopikol ta 1ere page, ya pas de croix. Donc essaye de voir pkoi il y en a sur la 2eme.
 
Au pire, tu recopie le code à la main :)
 
++

n°816142
naceroth
Posté le 05-08-2004 à 16:41:11  profilanswer
 

Oui recopie le code à la main, parce que là, les croix, c'est pas très php :)

n°816585
tristus
Posté le 06-08-2004 à 14:22:06  profilanswer
 

Sans-coeur que vous êtes ! Pourriez me le mailer ! ;)
Bon, sinon je prévois des vivres, et je me retape tout...
 
Sinon tiens, comme z'avez l'air vachement calé et que vous ne m'envoyez pas ballader en me traitant de grosse truffe (ce qui arrive souvent sur ce site, hélas ! :)), j'ai z'encore une p'tite question :
 
dans une bd mysql, j'ai 3 tables : table A, B, C...
Je voudrais les regrouper dans une seule grosse table, avec la structure et les données ; comment faire ?
 Existe-t-il un script ?
 peut-on le faire manuellement ? Comment ?
 
Sinon, comment recopier fiche par fiche (ex je prends une fiche de la table A, et je la colle dans la grosse table...)
 
Merci à tous, ça me simplifierait énormément la vie !  
amitiés
Tristan

n°816646
Dj YeLL
$question = $to_be || !$to_be;
Posté le 06-08-2004 à 15:16:29  profilanswer
 

Bon écoute, on est pas à ta botte non plus hein, alors va te faire voir grosse truffe...
 
:D
 
P.S. : Bon maintenant je vais lire ta question et essayer d'y répondre ;)
 
++

n°816649
Dj YeLL
$question = $to_be || !$to_be;
Posté le 06-08-2004 à 15:17:38  profilanswer
 

Le "regrouppement" que tu veux faire, c'est un truc définitif, c'est bien ça ? Tu peux nous donner les champs de tes tables ?
 
++

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  champ hidden, formulaire, mail...

 

Sujets relatifs
Mail qui renvoie des réponses à un questionnaire ?[html][JS] Formulaire de chat avec iframe
Formulaire dynamique en javascriptappliquer un syle different a un champ texte et a un radio button ?
selection d'un champ a l'ouverutre de la page :heink:envoyer un formulaire via un mail ou serveur?
imbrication formulaire?[HTML] Formulaire et zone de texte
caract tronqués apr espace lors passage form à autre avec input hidden 
Plus de sujets relatifs à : champ hidden, formulaire, mail...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR