champ hidden, formulaire, mail...

champ hidden, formulaire, mail... - PHP - Programmation

Marsh Posté le 02-08-2004 à 19:38:18    

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

Reply

Marsh Posté le 02-08-2004 à 19:38:18   

Reply

Marsh Posté le 02-08-2004 à 19:45:28    

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)

Reply

Marsh Posté le 02-08-2004 à 23:35:07    

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 ???

Reply

Marsh Posté le 03-08-2004 à 00:21:35    

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...

Reply

Marsh Posté le 03-08-2004 à 00:54:59    

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.

Reply

Marsh Posté le 03-08-2004 à 09:16:38    

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"... ;)

Reply

Marsh Posté le 03-08-2004 à 10:22:22    

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

Reply

Marsh Posté le 03-08-2004 à 14:20:35    

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 !  ;)

Reply

Marsh Posté le 03-08-2004 à 14:26:23    

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

Reply

Marsh Posté le 03-08-2004 à 16:04:47    

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

Reply

Marsh Posté le 03-08-2004 à 16:04:47   

Reply

Marsh Posté le 03-08-2004 à 16:06:38    

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 ?

Reply

Marsh Posté le 03-08-2004 à 16:15:51    

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
 

Reply

Marsh Posté le 03-08-2004 à 16:20:35    

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
Reply

Marsh Posté le 03-08-2004 à 16:21:04    

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 !

Reply

Marsh Posté le 03-08-2004 à 16:26:38    

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...
 
++

Reply

Marsh Posté le 03-08-2004 à 16:37:26    

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
Reply

Marsh Posté le 03-08-2004 à 16:42:03    

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
Reply

Marsh Posté le 03-08-2004 à 16:44:34    

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 :)

Reply

Marsh Posté le 03-08-2004 à 17:52:48    

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 !

Reply

Marsh Posté le 03-08-2004 à 17:57:36    

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 :)

Reply

Marsh Posté le 03-08-2004 à 17:58:58    

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.

Reply

Marsh Posté le 03-08-2004 à 18:03:05    

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...

Reply

Marsh Posté le 03-08-2004 à 18:47:44    

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 :)

Reply

Marsh Posté le 03-08-2004 à 19:02:56    

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

Reply

Marsh Posté le 03-08-2004 à 19:58:37    

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
Reply

Marsh Posté le 03-08-2004 à 23:03:41    

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 !

Reply

Marsh Posté le 04-08-2004 à 00:09:45    

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:

Reply

Marsh Posté le 04-08-2004 à 10:51:36    

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

Reply

Marsh Posté le 04-08-2004 à 17:24:48    

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 ? :)

Reply

Marsh Posté le 04-08-2004 à 20:03:06    

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

Reply

Marsh Posté le 04-08-2004 à 22:44:41    

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...
 
++

Reply

Marsh Posté le 04-08-2004 à 23:07:44    

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 :)

Reply

Marsh Posté le 05-08-2004 à 10:21:02    

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)  ?  ;)
 
 

Reply

Marsh Posté le 05-08-2004 à 10:34:33    

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

Reply

Marsh Posté le 05-08-2004 à 10:51:13    

Saint Yell, priez pour moi...;)

Reply

Marsh Posté le 05-08-2004 à 11:22:51    

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 :)
 
++

Reply

Marsh Posté le 05-08-2004 à 16:41:11    

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

Reply

Marsh Posté le 06-08-2004 à 14:22:06    

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

Reply

Marsh Posté le 06-08-2004 à 15:16:29    

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 ;)
 
++

Reply

Marsh Posté le 06-08-2004 à 15:17:38    

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 ?
 
++

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed