| | ogd | Posté le 23/03/2006 @ 18:08 | Astucien
2047 Messages
| Bonjour,
je suis entrain de préparer un formulaire php et je me pose certaines questions :
1)dans mon formulaire html, j'utilisais un code pour que la page se ferme toute seule après le message de confirmation...
voici le code:
<INPUT type="button" value="Envoyer" onClick="Envoyer(this.form);alert('Merci et à très bientôt dans FREQUENCE PLUS ONLINE!!!');window.close()">
Mais dans la page en php, ce code reste sans effet, je n'ai même pas la fenêtre javascript de confirmation...voici la ligne telle quelle:
<input type="submit" name="envoi" value="Envoyer" onClick="Envoyer(this.form);alert('Merci et à très bientôt dans FREQUENCE PLUS ONLINE!!!');window.close()">
2)je voudrais savoir s'il est possible de récupérer dans l'email l'ip de celui qui a rempli le formulaire? ou sa véritable adresse email en faisant passer le formulaire par son logicile de messagerie par exemple?
Merci d'avance et bonne après midi
ogd[smile]
| | |
| |
| Publicité |
|
| | ti_ouf | Posté le 23/03/2006 à 20:14 | Astucien
4770 Messages
| salut
on peut savoir ce qu'est ta fonction Envoyer() ? que tu mets dans ton onClick
De plus tu pourrais te passer d'utiliser le javascript, en faisant une condition php, disant :
si je recupere les variables $_POST alors j'affiche un message de remerciement ... | | | | | ogd | Posté le 24/03/2006 à 18:33 | Astucien
2047 Messages
| Ce qu'elle fait là??? Ben heuuu, c'est à dire queuuuuu...
elle s'est disputée avec son cher et tendre et elle s'est dit "tiens, je vais aller faire un tour dans un formulaire php..."
Mais j'ai appelé son cher et tendre qui la ramenée à la maison...
Et effectivement, ça marche mieux comme ça...
j'ai déjà cette conditon, mais si je laisse seulement le window(close), la fenêtre se ferme sans qu'on ait pu lire la confirmation...
Sauf si tu connais une autre solution?
Pour l'ip et/ou le mail, tu ne sait pas si c'est possible?
Merci
Ogd | | | | | ti_ouf | Posté le 24/03/2006 à 19:05 | Astucien
4770 Messages
| en général si tu veux utiliser une fonction comme celle que tu as envoyer(), il faut la définir, sinon le navigateur ne peut pas deviner quoi faire ...
En php, pour récuprer l'ip, il suffit d'utiliser la Superglobale $_SERVER["REMOTE_ADDR"], ensuite tu la mets dans la variable qui recupere le texte que tu veux t'envoyer ... | | | | | ogd | Posté le 27/03/2006 à 16:26 | Astucien
2047 Messages
| Hello,
Merci pour ton aide !
pour l'ip, je place la variable dansle code php, pas d'erreur à l'ouverture de la page mais je ne reçois rien dans le mail...
il y a un endroit précis où placer la variable?
Merci
Ogd | | | | | ti_ouf | Posté le 27/03/2006 à 18:52 | Astucien
4770 Messages
| il faudrait déjà alléger un peu ton code, parce que là, çà fait une grosse tartine.
Pour commencer il faut essayer d'utiliser le php au maxi, si tu l'utilises déjà, je pense par exemple que pour tout ce qui est vérification de formulaire, php te permets de faire beaucoup mieux que javascript.
Utilises javascript uniquement si php est limité dans ce que tu evux faire et surtout pour tout ce qui est dynamisme coté client.
voilà un exemple de ce que je ferais : sachant que pour ton exemple il faut un peu l'arranger, mais bon çà te met montre un peu :
[code]<?php
if (!empty($_POST)) //vérification du formulaire soumis{
$message_remerciement = "Message envoyé !";
if (isset($_POST['champ1']) && isset($_POST['champ2']) ......) // vérification que tes champs sont bien existant {
$email = $_POST['champ1'];
$nom = $_POST['champ1'];
$comment = htmlentities($_POST['champ3'], ENT_NOQUOTES);
$commentaire = addslashes($comment);
//liste des destinataire du message
$destinataire = "mon email ici";
//sujet du message
$sujet="mon site ici";
//contenu du message
$corps = "Un visiteur du nom de $nom a remplit le formulaire contact.Son ip est : $_SERVER[\"REMOTE_ADDR\"] ..... \n\r Son email est : $mail
\nSes remarques sont les suivantes : $commentaire";
//envoi du mail
@mail ($destinataire,$sujet,$corps);
}
else {
// par défaut, c'est le bouton 1, même si on ne clique pas/
$message_remerciement = "Message non envoyé !";
}
echo '</p>';
echo '<p>Le champ texte contient : ', $_POST['champ'], '</p>';
}
?>[/code] | | | | | ogd | Posté le 29/03/2006 à 18:36 | Astucien
2047 Messages
| Hello!
j'ai essayé de placer ton code, mais j'obtiens cette erreur :
Parse error: parse error, unexpected T_CHARACTER, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/users/f/fplus/www/formulaires/formulairephp.php on line 220
j'ai donc remplacé :
<input name="nbre_zones_texte" type="hidden" value="1">
<input name="nbre_zone_email" type="hidden" value="1">
<input name="titre_champ1" type="hidden" value="Nom (surnom)"><input name="titre_champ2" type="hidden" value="Age"><input name="titre_champ3" type="hidden" value="Ville"><input name="titre_champ4" type="hidden" value="Prénom (surnom) du destinataire"><input name="titre_champ5" type="hidden" value="Age"><input name="titre_champ6" type="hidden" value="Ville"><input name="titre_champ7" type="hidden" value="votre tube préféré en ce moment"><input name="titre_email" type="hidden" value="votre adresse E Mail"><input name="titre_zone" type="hidden" value="Votre message"></td>
<td width="423"><div align="center">
<input type="hidden" name="IP" value="$SERVEUR["REMOTE_ADDR"]">
<input type="reset" name="Reset" value="Effacer">
<input type="submit" name="envoi" value="Envoyer" onClick="alert('Merci et à très bientôt dans FREQUENCE PLUS ONLINE!!!');window.close()">
par :
<?php
if (!empty($_POST)) //vérification du formulaire soumis{
$message_remerciement = "Message envoyé !";
if (isset($_POST['champ1']) && isset($_POST['champ2']) && isset($_post['champ3']) && isset($_post['champ4']) && isset($_post['champ5']) && isset($_post['champ6']) && isset($_post['champ7']) ) // vérification que tes champs sont bien existant {
$email = $_POST['champ1'];
$nom = $_POST['champ1'];
$comment = htmlentities($_POST['champ3'], ENT_NOQUOTES);
$commentaire = addslashes($comment);
//liste des destinataire du message
$destinataire = "xxx@monsite.com";
//sujet du message
$sujet="Fréquence Plus Online";
//contenu du message
$corps = "Un visiteur du nom de $nom a remplit le formulaire contact.Son ip est : $_SERVER[\"REMOTE_ADDR\"] ..... \n\r Son email est : $mail
\nSes remarques sont les suivantes : $commentaire";
//envoi du mail
@mail ($destinataire,$sujet,$corps);
}
else {
// par défaut, c'est le bouton 1, même si on ne clique pas/
$message_remerciement = "Message non envoyé !";
}
echo '</p>';
echo '<p>Le champ texte contient : ', $_POST['champ'], '</p>';
}
?>
C'est bien ce qu'il fallait faire?
Merci Modifié par ogd le 29/03/2006 18:37 | | | | | ti_ouf | Posté le 29/03/2006 à 18:59 | Astucien
4770 Messages
| tu peux faire beaucoup plus court!
En prennant ton exemple tu mets un champ caché dans ton formulaire
=> <input type="hidden" name="ip" value="$_SERVER['REMOTE_ADRR']" />
tu n'as qu'a vérifier que ton champs a été soumis!
donc
if(isset($_POST['ip']))
.... | | | | | ogd | Posté le 31/03/2006 à 18:47 | Astucien
2047 Messages
| Heuu, je sens que tu vas te fâcher là[oeilnoir]
finalement, je change de script php...
j'en ai trouvé un pas mal je crois sur zonesecurité...
par contre il est en 2 fichiers...
tu peux me dire si tu vois des failles particulières et s'il y a un moyen de rassembler les 2 fichiers en un?
Merci :
code fichier 1 :
<?php include_once( "fronline.lib.php" ); ?>
<html>
<head>
<title>Fréquence Plus Online</title>
<!--
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
-->
<style type='text/css'>
.form_title{
color : #000000;
font-size: 13px;
font-family: verdana, Geneva, Arial, Helvetica, sans-serif;
font-weight : bold;
}
.form_field {
font-size : 13px;
font-family : Verdana, Arial, Helvetica, sans-serif;
color : #474747;
font-weight : bold;
text-align:left;
}
.form_text{
font-size : 11px;
font-family : Verdana, Arial, Helvetica, sans-serif;
color : #000000;
}
.text_box{
font-size : 11px;
font-family : Verdana, Arial, Helvetica, sans-serif;
color : #000000;
width:200px;
}
.text_area{
font-size : 11px;
font-family : Verdana, Arial, Helvetica, sans-serif;
color : #000000;
width:200px;
height:60px;
}
.text_select{
font-size : 11px;
font-family : Verdana, Arial, Helvetica, sans-serif;
color : #000000;
}
.form_error{
font-size : 11px;
font-family : Verdana, Arial, Helvetica, sans-serif;
color : #ff0000;
font-weight : bold;
}
.copyright{
font-size : 11px;
font-family : Verdana, Arial, Helvetica, sans-serif;
color : #000000;
}
</style>
</head>
<body marginheight="0" marginwidth="0" leftmargin="0" topmargin="0">
<meta http-equiv="content-type" content="text/html; charset=">
<!-- ------------------------ Begin: Description de votre FormMail ------------------------ -->
<br><br><br>
<table cellspacing='16' cellpadding='0' border='0' align='center' ><tr><td>
<font class='form_title'>Remplissez le formulaire, votre message sera envoyé à Cynthia Delory :</font>
</td></tr></table>
<!-- ------------------------ End: Description de votre FormMail ------------------------ -->
<!-- ======================= Begin: Form Généré sur Zone Sécurité ======================= -->
<?php
if( !$isHideForm ):
global $sErr ;
if( $sErr ) print "<br><a name='error'></a><center><font class='form_error' >$sErr</font></center><br>";
$starColor = $sErr ? "#ff0000" : "#000000";
$style=" class='form_text' ";
?>
<form name="frmFormMail" action="<?php print PHP_SELF ?>" method='post' enctype='multipart/form-data'>
<input type='hidden' name='formmail_submit' value='Y'>
<input type='hidden' name='esh_formmail_recipient' value="xxx@xxx.com">
<input type='hidden' name='esh_formmail_subject' value="Fréquence Plus Online">
<input type='hidden' name='esh_formmail_cc' value="">
<input type='hidden' name='esh_formmail_bcc' value="">
<input type='hidden' name='esh_formmail_return_subject' value="Re: Fréquence Plus Online">
<input type='hidden' name='esh_formmail_return_msg' value="Bonjour!
Votre message a bien été pris en compte !
Il sera diffusé dès que possible entre 20H et Minuit.
Rendez-vous avec Cynthia Delory pour savoir qui vous a envoyé un message dans Fréquence Plus Online !">
<input type='hidden' name='esh_formmail_mail_and_file' value="">
<input type='hidden' name='esh_formmail_charset' value="">
<table cellspacing='16' cellpadding='0' border='0' >
<tr>
<td class="form_field" valign='top' align='right'>Prénom (ou pseudo) </td><td width='10' aligh='right' valign='top'> <font size='2' color='#ff0000'>*</font> </td>
<td class="form_text">
<input type="text" name="Prénom_(ou_pseudo)" value="<?php print HtmlSpecialChars( $HTTP_POST_VARS[ "Prénom_(ou_pseudo)" ] ); size="20" ?>" class='text_box'>
</td>
</tr>
<tr>
<td class="form_field" valign='top' align='right'>Age </td><td width='10' aligh='right' valign='top'> <font size='2' color='#ff0000'>*</font> </td>
<td class="form_text">
<input type="text" name="Age" value="<?php print HtmlSpecialChars( $HTTP_POST_VARS[ "Age" ] ); size="20" ?>" class='text_box'>
</td>
</tr>
<tr>
<td class="form_field" valign='top' align='right'>Ville </td><td width='10' aligh='right' valign='top'> <font size='2' color='#ff0000'>*</font> </td>
<td class="form_text">
<input type="text" name="Ville" value="<?php print HtmlSpecialChars( $HTTP_POST_VARS[ "Ville" ] ); size="20" ?>" class='text_box'>
</td>
</tr>
<tr>
<td class="form_field" valign='top' align='right'>Adresse E-mail </td><td width='10' aligh='right' valign='top'> <font size='2' color='#ff0000'>*</font> </td>
<td class="form_text">
<input type="e-mail" name="Adresse_E-mail" value="<?php print HtmlSpecialChars( $HTTP_POST_VARS[ "Adresse_E-mail" ] ); size="20" ?>" class='text_box'>
</td>
</tr>
<tr>
<td class="form_field" valign='top' align='right'>Destinataire </td><td width='10' aligh='right' valign='top'> <font size='2' color='#ff0000'>*</font> </td>
<td class="form_text">
<input type="text" name="Destinataire" value="<?php print HtmlSpecialChars( $HTTP_POST_VARS[ "Destinataire" ] ); size="20" ?>" class='text_box'>
</td>
</tr>
<tr>
<td class="form_field" valign='top' align='right'>Age </td><td width='10' aligh='right' valign='top'> <font size='2' color='#ff0000'>*</font> </td>
<td class="form_text">
<input type="text" name="Age" value="<?php print HtmlSpecialChars( $HTTP_POST_VARS[ "Age" ] ); size="20" ?>" class='text_box'>
</td>
</tr>
<tr>
<td class="form_field" valign='top' align='right'>Ville </td><td width='10' aligh='right' valign='top'> <font size='2' color='#ff0000'>*</font> </td>
<td class="form_text">
<input type="text" name="Ville" value="<?php print HtmlSpecialChars( $HTTP_POST_VARS[ "Ville" ] ); size="20" ?>" class='text_box'>
</td>
</tr>
<tr>
<td class="form_field" valign='top' align='right'>Votre tube préféré en ce moment </td><td width='10' aligh='right' valign='top'> <font size='2' color='#ff0000'>*</font> </td>
<td class="form_text">
<input type="text" name="Votre_tube_préféré_en_ce_moment" value="<?php print HtmlSpecialChars( $HTTP_POST_VARS[ "Votre_tube_préféré_en_ce_moment" ] ); size="20" ?>" class='text_box'>
</td>
</tr>
<tr>
<td class="form_field" valign='top' align='right'>Votre message </td><td width='10' aligh='right' valign='top'> <font size='2' color='#ff0000'>*</font> </td>
<td class="form_text">
<input type="text" name="Votre_message" value="<?php print HtmlSpecialChars( $HTTP_POST_VARS[ "Votre_message" ] ); size="20" ?>" class='text_box'>
</td>
</tr>
<tr><td colspan=3 align='center'><input type='submit' value='Envoyer'> <input type='button' value='Sortie' onclick="location.href='/';"></td></tr>
</table>
</form>
<!-- ======================= End: ======================= -->
<?php
if( $sErr ) print "<script language='javascript' type='text/javascript'>location.href='#error';</script>";;;
else: //!$isHideForm
print( "<br><br><hr><center><b>Votre formulaire a été envoyé.<br>Merci</b><br><br><INPUT type='button' value='Fermer' onClick='window.close()'></center><br><br>" );
endif; //!$isHideForm
?>
<!-- -------------------------------------- COPY RIGHT -------------------------------------- -->
<br><br><br><br>
<div align="right" class='copyright'>
<b>Généré sur: </b>
<a href="http://www.zonesecurite.com" target="_blank">ZoneSécurité.com</a>
</div>
<br><br><br>
</body>
</html>
fichier 2
<?
define( "ADMIN_MAIL", "xxx@xxx.com" ); // bug report email
define( "HOST_NAME", getEnv( "HTTP_HOST" ) );
define( "PHP_SELF", getEnv( "SCRIPT_NAME" ) );
define( "ERR_MISSING", "Champ requis manquant : " );
define( "ERR_EMAIL", "Veuillez saisir une adresse E-mail valide : " );
define( "ERR_CREDIT_CARD_NUMBER", "Veuillez vérifier la solvabilité des numéros de la carte : " );
define( "ERR_CREDIT_CARD_EXPIRED", "Veuillez vérifier la solvabilité de la date d'échéance de la carte : " );
define( "ERR_SELECT_UPLOAD", "Veuillez choisir le fichier à télécharger : " );
error_reporting( E_ERROR | E_WARNING | E_PARSE );
?><?php
// --- Array of Form Elements ---
$form_mail[] = array( "name" => "Prénom_(ou_pseudo)", "text" => "Prénom (ou pseudo)", "type" => "text", "required" => "Required" ) ;
$form_mail[] = array( "name" => "Age", "text" => "Age", "type" => "text", "required" => "Required" ) ;
$form_mail[] = array( "name" => "Ville", "text" => "Ville", "type" => "text", "required" => "Required" ) ;
$form_mail[] = array( "name" => "Adresse_E-mail", "text" => "Adresse E-mail", "type" => "e-mail", "required" => "Required" ) ;
$form_mail[] = array( "name" => "Destinataire", "text" => "Destinataire", "type" => "text", "required" => "Required" ) ;
$form_mail[] = array( "name" => "Age", "text" => "Age", "type" => "text", "required" => "Required" ) ;
$form_mail[] = array( "name" => "Ville", "text" => "Ville", "type" => "text", "required" => "Required" ) ;
$form_mail[] = array( "name" => "Votre_tube_préféré_en_ce_moment", "text" => "Votre tube préféré en ce moment", "type" => "text", "required" => "Required" ) ;
$form_mail[] = array( "name" => "Votre_message", "text" => "Votre message", "type" => "text", "required" => "Required" ) ;
// -- Detech Submit & SendMail --
$isHideForm = false;
if( $HTTP_POST_VARS["formmail_submit"] ){
$sErr = checkPass();
if( ! $sErr ){
sendFormMail( $form_mail, "") ;
$isHideForm = true;
$redirect = "";
if( strlen(trim($redirect)) ):
header( "Location:$redirect" );
exit;
endif;
}
}
?>
<?
// ===============================================
function sendFormMail( $form_mail, $sFileName = "" )
{
global $HTTP_POST_VARS ;
$to = $HTTP_POST_VARS["esh_formmail_recipient"]; // I don't detect spam at this moment. it's to do list.
$from = "online.submit@" . HOST_NAME ;
$subject = $HTTP_POST_VARS["esh_formmail_subject"];
// first stage keep it simple:
$sWhatToDo = $sFileName ? "mailandfile" : "" ; //$HTTP_POST_VARS["esh_formmail_mail_and_file"];
//$sFileName = $HTTP_POST_VARS["esh_formmail_save_record_file"];
$cc = $HTTP_POST_VARS["esh_formmail_cc"];
$bcc = $HTTP_POST_VARS["esh_formmail_bcc"];
$charset = $HTTP_POST_VARS["esh_formmail_charset"];
for( $i = 0; $i < count( $form_mail ); $i ++ ){
$value = trim( $HTTP_POST_VARS[ $form_mail[ $i ][ "name" ] ] );
$content .= $form_mail[ $i ][ "text" ] . " \t : " . $value ."\n";
$line .= remove_newline( $value ) . "\t" ;
if( strtolower("E-mail") == strtolower($form_mail[ $i ][ "type" ]) ) {
//print "Type:[" . $form_mail[ $i ][ "type" ] . "] $value <br>\n";
$from = $value ;
}
};
$content .= "\n\nIP:" . getEnv( "REMOTE_ADDR" );
Switch( strtolower($sWhatToDo) ){
case "mailandfile" :
mailAttachments( $to , $subject , $content, $from, $charset, $cc , $bcc ) ;
if( ! appendToFile( $sFileName, $line ) )
mailReport( $content . "\n\nFaille de l'écriture du Form Mail dans le dossier." );
break;
case "fileonly" :
if( ! appendToFile( $sFileName, $line ) )
mailReport( $content . "\n\nFaille de l'écriture du Form Mail dans le dossier.", $from );
break;
default :
mailAttachments( $to , $subject , $content, $from, $charset, $cc , $bcc ) ;
}
mailAutoResponse( $from ) ;
}
//------------------------------------------------------------------------------------------
function mailAutoResponse( $to ){
global $HTTP_POST_VARS ;
$subject = $HTTP_POST_VARS["esh_formmail_return_subject"];
$responseMsg = $HTTP_POST_VARS["esh_formmail_return_msg"];
if( $to && $responseMsg )
mail( $to, $subject, $responseMsg, "From: " . $HTTP_POST_VARS["esh_formmail_recipient"] );
}
//------------------------------------------------------------------------------------------
function mailReport( $content = "", $from = "" ){
mail( ADMIN_MAIL, "Error@" . HOST_NAME . PHP_SELF, $content, "From:$from" );
}
//------------------------------------------------------------------------------------------
function remove_newline( $str = "" ){
$newliner = "<!--esh_newline-->" ; // replace \r\n with $newliner ;
$newtaber = "<!--esh_newtaber-->" ; // replace \t with $newtaber ;
$str = ereg_replace( "\t", $newtaber, $str );
$str = ereg_replace( "\r\n", $newliner, $str );
return ereg_replace( "\n", $newliner, $str );
}
//------------------------------------------------------------------------------------------
function checkPass()
{
global $form_mail ;
global $HTTP_POST_VARS ;
global $HTTP_POST_FILES ;
for( $i = 0; $i < count( $form_mail ); $i ++ ){
$type = strtolower( $form_mail[ $i ][ "type" ] );
$value = trim( $HTTP_POST_VARS[ $form_mail[ $i ][ "name" ] ] );
$required = $form_mail[ $i ][ "required" ] ;
$text = stripslashes( $form_mail[ $i ][ "text" ] );
// simple check the field has something keyed in.
if( !strlen($value) && ( $required == "Required" ) && $type != "attachment" )
return ERR_MISSING . $text ;
// verify the special case
if(
( strlen($value) || $type == "attachment" )
&& $required == "Required"
):
Switch( $type ){
case strtolower("Sender's Name") :
break;
case strtolower("E-mail generique"):
case strtolower("E-mail"):
if( ! formIsEMail($value) ) return ERR_EMAIL . $text ;
break;
case "text" :
break;
case "textarea" :
break;
case "checkbox" :
case "radio" :
break;
case "selection" :
break;
case "attachment" :
$upload_file = $HTTP_POST_FILES[ $form_mail[ $i ]["name"] ][ "tmp_name" ] ;
if( ! is_uploaded_file($upload_file) )
return ERR_SELECT_UPLOAD . $text;
break;
case strtolower("Date(MM-DD-YYYY)"):
break;
case strtolower("Date(MM-YYYY)"):
break;
case strtolower("CreditCard(MM-YYYY)"):
if( $value < date("Y-m") ) return ERR_CREDIT_CARD_EXPIRED . $text;
break;
case strtolower("CreditCard#"):
if( !formIsCreditNumber( $value ) ) return ERR_CREDIT_CARD_NUMBER . $text ;
break;
case strtolower("Time(HH:MM:SS)"):
break;
case strtolower("Time(HH:MM)"):
break;
default :
//return $sErrRequired . $form_mail[ $i ][ "text" ];
} // Switch
endif;
} // for
return "" ;
}
//------------------------------------------------------------------------------------------
function formSelected( $var, $val )
{
echo ( $var == $val ) ? "selected" : "";
}
//------------------------------------------------------------------------------------------
function formChecked( $var, $val )
{
echo ( $var == $val ) ? "checked" : "";
}
//------------------------------------------------------------------------------------------
function formIsEMail( $email ){
return ereg( "^(.+)@(.+)\\.(.+)$", $email );
}
//------------------------------------------------------------------------------------------
function selectList( $name, $selectedValue, $start, $end, $prompt = "-Select-", $style = "" )
{
$tab = "\t" ;
print "<select name=\"$name\" $style>\n" ;
print $tab . "<option value=''>$prompt</option>\n" ;
$nLen = strlen( "$end" ) ;
$prefix_zero = str_repeat( "0", $nLen );
for( $i = $start; $i <= $end ; $i ++ ){
$stri = substr( $prefix_zero . $i, strlen($prefix_zero . $i)-$nLen, $nLen );
$selected = ( $stri == $selectedValue ) ? " selected " : "" ;
print $tab . "<option value=\"$stri\" $selected >$stri</option>\n" ;
}
print "</select>\n\n" ;
}
//------------------------------------------------------------------------------------------
// something like CreditCard.pm in perl CPAN
function formIsCreditNumber( $number ) {
$tmp = $number;
$number = preg_replace( "/[^0-9]/", "", $tmp );
if ( preg_match( "/[^\d\s]/", $number ) ) return 0;
if ( strlen($number) < 13 && 0+$number ) return 0;
for ($i = 0; $i < strlen($number) - 1; $i++) {
$weight = substr($number, -1 * ($i + 2), 1) * (2 - ($i % 2));
$sum += (($weight < 10) ? $weight : ($weight - 9));
}
if ( substr($number, -1) == (10 - $sum % 10) % 10 ) return $number;
return $number;
}
// -------------------------- Begin Mail Attachment Functions -----------------------------------------------------------------
function mailAttachments( $to = "" , $subject = "" , $message = "" , $from = "xxx@xxx.com" , $charset = "iso-8859-1", $cc = "" , $bcc = "" ){
global $HTTP_POST_FILES ;
if( ! strlen( trim( $to ) ) ) return "Missing \"To\" Field." ;
$boundary = "====_My_PHP_Form_Generator_" . md5( uniqid( srand( time() ) ) ) . "====";
// setup mail header infomation
$headers = "From: $from\r\n";
if ($cc) $headers .= "CC: $cc\r\n";
if ($bcc) $headers .= "BCC: $bcc\r\n";
$plainHeaders = $headers ; // for no attachments header
$headers .= "MIME-Version: 1.0\nContent-type: multipart/mixed;\n\tboundary=\"$boundary\"\n";
$txtMsg = "\nThis is a multi-part message in MIME format.\n" .
"\n--$boundary\n" .
"Content-Type: text/plain;\n\tcharset=\"$charset\"\n\n" . $message . "\n";
//create mulitipart attachments boundary
$sError = "" ;
$nFound = 0;
foreach( $HTTP_POST_FILES as $aFile ){
$sFileName = $aFile[ "tmp_name" ] ;
$sFileRealName = $aFile[ "name" ] ;
if( is_file( $sFileName ) ):
if( $fp = fopen( $sFileName, "rb" ) ) :
$sContent = fread( $fp, filesize( $sFileName ) );
$sFName = basename( $sFileRealName ) ;
$sMIME = getMIMEType( $sFName ) ;
$bPlainText = ( $sMIME == "text/plain" ) ;
if( $bPlainText ) :
$encoding = "" ;
else:
$encoding = "Content-Transfer-Encoding: base64\n";
$sContent = chunk_split( base64_encode( $sContent ) );
endif;
$sEncodeBody .= "\n--$boundary\n" .
"Content-Type: $sMIME;\n" .
"\tname=\"$sFName\"\n" .
$encoding .
"Content-Disposition: attachment;\n" .
"\tfilename=\"$sFName\"\n\n" .
$sContent . "\n" ;
$nFound ++;
else:
$sError .= "<br>File $sFileName can not open.\n" ;
endif; // if( $fp = fopen( $sFileName, "rb" ) ) :
else:
$sError .= "<br>File $sFileName doesn't exist.\n" ;
endif; //if( file_exists( $sFileName ) ):
}; // end foreach
$sEncodeBody .= "\n\n--$boundary--" ;
$sSource = $txtMsg . $sEncodeBody ;
$nFound ? mail( $to, $subject, $sSource, $headers )
: mail( $to, $subject, $message, $plainHeaders );
return $sError ;
}
/* ---------------------------------------------------------------------------------------------------
Parameters: $sFileName
Return :
1. "" : no extendsion name, or sFileName is empty
2. string: MIME Type name of array aMimeType's definition.
---------------------------------------------------------------------------------------------------*/
function getMIMEType( $sFileName = "" ) {
$sFileName = strtolower( trim( $sFileName ) );
if( ! strlen( $sFileName ) ) return "";
$aMimeType = array(
"txt" => "text/plain" ,
"pdf" => "application/pdf" ,
"zip" => "application/x-compressed" ,
"html" => "text/html" ,
"htm" => "text/html" ,
"avi" => "video/avi" ,
"mpg" => "video/mpeg " ,
"wav" => "audio/wav" ,
"jpg" => "image/jpeg " ,
"gif" => "image/gif" ,
"tif" => "image/tiff " ,
"png" => "image/x-png" ,
"bmp" => "image/bmp"
);
$aFile = split( "\.", basename( $sFileName ) ) ;
$nDiminson = count( $aFile ) ;
$sExt = $aFile[ $nDiminson - 1 ] ; // get last part: like ".tar.zip", return "zip"
return ( $nDiminson > 1 ) ? $aMimeType[ $sExt ] : "";
}
// -------------------------- End Mail Attachment Functions -----------------------------------------------------------------
//------------------------------------------------------------------------------------------
function appendToFile( $sFileName = "", $line = "" ){
if( !$sFileName || !$line ) return 0;
$hFile = fopen( "$sFileName", "a+w" );
$nBytes = 0;
if( $hFile ){
$nBytes = fputs( $hFile , trim($line)."\r\n" );
fclose( $hFile );
};
return $nBytes ;
}
?>
Merci | | | |
| | Haut de la page |
| | Inscrivez-vous ! |
- Posez vos questions
- Résolvez vos problèmes
- Aidez les autres
- Participez et créez vos discussions
- Dialoguez en privé avec d'autres membres
- Suivez vos sujets préférés
- Affichez les signatures des membres
|
|