Bonjour,
voici ce code je voudrais que vous m'aidiez à le comprendre.
Comment marche un code PHP ( de haut en bas ou de bas en haut ?)
Ce cade fonctionne à partir d'un formulaire d'inscription :
Voici le formulaire :
<form name="subscribeForm" method="post" target="_top" action="/nesox/subscribe.php">
<script language="javascript">
function subscribeMe(b)
{
var emailRegex = /^[A-z0-9][\w.-]*@[A-z0-9][\w\-\.]+\.[A-z0-9]{2,6}$/;
var f = document.subscribeForm;
if (f.email.value == "")
{
alert("Email address was not specified!");
f.email.focus();
return false;
}
if (!f.email.value.match(emailRegex))
{
alert("Invalid email address format!");
f.email.focus();
return false;
}
if (!b)
f.action = f.action + "?act=unsubscribe";
f.submit();
}
</script>
<table id="frameTable" border="1" cellpadding="4" cellspacing="0" style="border-collapse: collapse; font-family:Verdana; font-size:9pt" bordercolor="#C0C0C0">
<tr><td bgcolor="#5680D6"><b><font color="#FFFFFF">Sign up for our newsletter:</font></b></td></tr><tr><td>
<table id="subscribeTable" style="font-family:Verdana; font-size:8pt">
<tr id="tr_FirstName">
<td align="right">First Name:</td>
<td><input name="FirstName" type="text" maxlength="255"> *</td>
</tr>
<tr id="tr_LastName">
<td align="right">Last Name:</td>
<td><input name="LastName" type="text" maxlength="255"> *</td>
</tr>
<tr id="tr_email">
<td align="right">Email:</td>
<td><input name="email" type="text" maxlength="255"> *</td>
</tr>
<tr id="tr_Country">
<td align="right">Country:</td>
<td><select name="Country" size="1"><option value="AF">Afghanistan</option><option value="AL">Albania</option><option value="DZ">Algeria</option><option value="AS">American Samoa</option><option value="AD">Andorra</option><option value="AO">Angola</option><option value="AI">Anguilla</option><option value="AQ">Antarctica</option><option value="AG">Antigua and Barbuda</option><option value="AR">Argentina</option><option value="AM">Armenia</option><option value="AW">Aruba</option><option value="AU">Australia</option><option value="AT">Austria</option><option value="AZ">Azerbaijan</option><option value="BS">Bahamas</option><option value="BH">Bahrain</option><option value="BD">Bangladesh</option><option value="BB">Barbados</option><option value="BY">Belarus</option><option value="BE">Belgium</option><option value="BZ">Belize</option><option value="BJ">Benin</option><option value="BM">Bermuda</option><option value="BT">Bhutan</option><option value="BO">Bolivia</option><option value="BA">Bosnia and Herzegovina</option><option value="BW">Botswana</option><option value="BV">Bouvet Island</option><option value="BR">Brazil</option><option value="IO">British Indian Ocean</option><option value="BN">Brunei</option><option value="BG">Bulgaria</option><option value="BF">Burkina Faso</option><option value="BI">Burundi</option><option value="KH">Cambodia</option><option value="CM">Cameroon</option><option value="CA">Canada</option><option value="CV">Cape Verde</option><option value="KY">Cayman Islands</option><option value="CF">Central African Republic</option><option value="TD">Chad</option><option value="CL">Chile</option><option value="CN">China</option><option value="CX">Christmas Island</option><option value="CC">Cocos (Keeling) Islands</option><option value="CO">Colombia</option><option value="KM">Comoros</option><option value="CG">Congo</option><option value="CK">Cook Islands</option><option value="CR">Costa Rica</option><option value="CI">C&ocirc;te d'Ivoire</option><option value="HR">Croatia (Hrvatska)</option><option value="CU">Cuba</option><option value="CY">Cyprus</option><option value="CZ">Czech Republic</option><option value="CD">Congo (DRC)</option><option value="DK">Denmark</option><option value="DJ">Djibouti</option><option value="DM">Dominica</option><option value="DO">Dominican Republic</option><option value="TP">East Timor</option><option value="EC">Ecuador</option><option value="EG">Egypt</option><option value="SV">El Salvador</option><option value="GQ">Equatorial Guinea</option><option value="ER">Eritrea</option><option value="EE">Estonia</option><option value="ET">Ethiopia</option><option value="FK">Falkland Islands (Islas Malvinas)</option><option value="FO">Faroe Islands</option><option value="FJ">Fiji Islands</option><option value="FI">Finland</option><option value="FR">France</option><option value="GF">French Guiana</option><option value="PF">French Polynesia</option><option value="TF">French Southern and Antarctic Lands</option><option value="GA">Gabon</option><option value="GM">Gambia</option><option value="GE">Georgia</option><option value="DE">Germany</option><option value="GH">Ghana</option><option value="GI">Gibraltar</option><option value="GR">Greece</option><option value="GL">Greenland</option><option value="GD">Grenada</option><option value="GP">Guadeloupe</option><option value="GU">Guam</option><option value="GT">Guatemala</option><option value="GN">Guinea</option><option value="GW">Guinea-Bissau</option><option value="GY">Guyana</option><option value="HT">Haiti</option><option value="HM">Heard Island and McDonald Islands</option><option value="HN">Honduras</option><option value="HK">Hong Kong SAR</option><option value="HU">Hungary</option><option value="IS">Iceland</option><option value="IN">India</option><option value="ID">Indonesia</option><option value="IR">Iran</option><option value="IQ">Iraq</option><option value="IE">Ireland</option><option value="IL">Israel</option><option value="IT">Italy</option><option value="JM">Jamaica</option><option value="JP">Japan</option><option value="JO">Jordan</option><option value="KZ">Kazakhstan</option><option value="KE">Kenya</option><option value="KI">Kiribati</option><option value="KR">Korea</option><option value="KW">Kuwait</option><option value="KG">Kyrgyzstan</option><option value="LA">Laos</option><option value="LV">Latvia</option><option value="LB">Lebanon</option><option value="LS">Lesotho</option><option value="LR">Liberia</option><option value="LY">Libya</option><option value="LI">Liechtenstein</option><option value="LT">Lithuania</option><option value="LU">Luxembourg</option><option value="MO">Macao SAR</option><option value="MK">Macedonia, Former Yugoslav Republic of</option><option value="MG">Madagascar</option><option value="MW">Malawi</option><option value="MY">Malaysia</option><option value="MV">Maldives</option><option value="ML">Mali</option><option value="MT">Malta</option><option value="MH">Marshall Islands</option><option value="MQ">Martinique</option><option value="MR">Mauritania</option><option value="MU">Mauritius</option><option value="YT">Mayotte</option><option value="MX">Mexico</option><option value="FM">Micronesia</option><option value="MD">Moldova</option><option value="MC">Monaco</option><option value="MN">Mongolia</option><option value="MS">Montserrat</option><option value="MA">Morocco</option><option value="MZ">Mozambique</option><option value="MM">Myanmar</option><option value="NA">Namibia</option><option value="NR">Nauru</option><option value="NP">Nepal</option><option value="NL">Netherlands</option><option value="AN">Netherlands Antilles</option><option value="NC">New Caledonia</option><option value="NZ">New Zealand</option><option value="NI">Nicaragua</option><option value="NE">Niger</option><option value="NG">Nigeria</option><option value="NU">Niue</option><option value="NF">Norfolk Island</option><option value="KP">North Korea</option><option value="MP">Northern Mariana Islands</option><option value="NO">Norway</option><option value="OM">Oman</option><option value="PK">Pakistan</option><option value="PW">Palau</option><option value="PA">Panama</option><option value="PG">Papua New Guinea</option><option value="PY">Paraguay</option><option value="PE">Peru</option><option value="PH">Philippines</option><option value="PN">Pitcairn Islands</option><option value="PL">Poland</option><option value="PT">Portugal</option><option value="PR">Puerto Rico</option><option value="QA">Qatar</option><option value="RE">Reunion</option><option value="RO">Romania</option><option value="RU">Russia</option><option value="RW">Rwanda</option><option value="WS">Samoa</option><option value="SM">San Marino</option><option value="ST">S&atilde;o Tom?| and Pr?ªncipe</option><option value="SA">Saudi Arabia</option><option value="SN">Senegal</option><option value="YU">Serbia and Montenegro</option><option value="SC">Seychelles</option><option value="SL">Sierra Leone</option><option value="SG">Singapore</option><option value="SK">Slovakia</option><option value="SI">Slovenia</option><option value="SB">Solomon Islands</option><option value="SO">Somalia</option><option value="ZA">South Africa</option><option value="GS">South Georgia and the South Sandwich Islands</option><option value="ES">Spain</option><option value="LK">Sri Lanka</option><option value="SH">St. Helena</option><option value="KN">St. Kitts and Nevis</option><option value="LC">St. Lucia</option><option value="PM">St. Pierre and Miquelon</option><option value="VC">St. Vincent and the Grenadines</option><option value="SD">Sudan</option><option value="SR">Suriname</option><option value="SJ">Svalbard and Jan Mayen</option><option value="SZ">Swaziland</option><option value="SE">Sweden</option><option value="CH">Switzerland</option><option value="SY">Syria</option><option value="TW">Taiwan</option><option value="TJ">Tajikistan</option><option value="TZ">Tanzania</option><option value="TH">Thailand</option><option value="TG">Togo</option><option value="TK">Tokelau</option><option value="TO">Tonga</option><option value="TT">Trinidad and Tobago</option><option value="TN">Tunisia</option><option value="TR">Turkey</option><option value="TM">Turkmenistan</option><option value="TC">Turks and Caicos Islands</option><option value="TV">Tuvalu</option><option value="UG">Uganda</option><option value="UA">Ukraine</option><option value="AE">United Arab Emirates</option><option value="UK">United Kingdom</option><option value="US">United States</option><option value="UM">United States Minor Outlying Islands</option><option value="UY">Uruguay</option><option value="UZ">Uzbekistan</option><option value="VU">Vanuatu</option><option value="VA">Vatican City</option><option value="VE">Venezuela</option><option value="VN">Viet Nam</option><option value="VG">Virgin Islands (British)</option><option value="VI">Virgin Islands</option><option value="WF">Wallis and Futuna</option><option value="YE">Yemen</option><option value="ZM">Zambia</option><option value="ZW">Zimbabwe</option></select> *</td>
</tr>
<tr>
<td colspan="2" align="right"><input type="button" value="Subscribe" onclick="javascript:subscribeMe(true);"></td>
</tr>
</table></td></tr></table>
</form>
***********************************************************************************
voici maintenant le script PHP à expliquer s'il vous plait :
***********************************************************************************
<?php
require("class.phpmailer.php");
header('Expires: '.date('D,d M Y H:i:s',mktime(0,0,0,1,1,2000)).' GMT');
header('Last-Modified:'.gmdate('D,d M Y H:i:s').' GMT');
header('Cache-control: private, no-cache,must-revalidate');
header('Pragma: no-cache');
$MAIL_PROGRAM = "";
$MAIL_DEBUG = "";
$MAIL_DOUBLE_OPT = "";
$MAIL_VERSION = "";
$MAIL_SERVER = "";
$MAIL_PORT = 25;
$MAIL_USERNAME = "";
$MAIL_PASSWORD = "";
$MAIL_CHARSET = "";
$MAIL_RECIPIENT_SUBSCRIBE = "";
$MAIL_RECIPIENT_UNSUBSCRIBE = "";
$MAIL_SUBJECT_SUBSCRIBE = "";
$MAIL_SUBJECT_UNSUBSCRIBE = "";
$MAIL_SUBJECT_SUCCESS = "";
$MAIL_SUBJECT_ACTIVATE = "";
$MAIL_REDIRECT_PAGE = "";
$INFO_SUBSCRIBE_SUCCESS = "";
$INFO_UNSUBSCRIBE_SUCCESS = "";
$INFO_OPT_ERROR = "";
$INFO_DOUBLE_OPT_CONFIRM = "";
$INFO_ERROR_CODE = "";
$INFO_ERROR_NUMBER = "";
$INFO_ERROR_DESCRIPTION = "";
$INFO_ERROR_EMAIL_MISSING = "";
$INFO_ERROR_EMAIL_FORMAT = "";
LoadSettings();
$fullname = &$_REQUEST["fullname"];
$email = &$_REQUEST["email"];
if (!isset($email) || $email == "")
PrintInfo($INFO_ERROR_EMAIL_MISSING);
$act = &$_REQUEST["act"];
$code = &$_REQUEST["code"];
$activated = !$MAIL_DOUBLE_OPT;
$from = "";
$fromName = "";
$to = "";
$toName = "";
$subject = "";
$textBody = "";
$htmlBody = "";
if ($act == "activate")
{
$activated = ($code == md5($email));
if(!$activated)
PrintInfo($INFO_ERROR_CODE);
}
$textBody = "[Marketer]";
$textBody = $textBody . "\r\nversion=" . $MAIL_VERSION;
if ($activated)
$textBody = $textBody . "\r\nactivated=True";
else
$textBody = $textBody . "\r\nactivated=False";
$textBody = $textBody . "\r\n\r\n[Data]";
if (count($HTTP_GET_VARS))
{
while (list($key, $value) = each ($HTTP_GET_VARS))
{
if ($key != "act" && $key != "code")
$textBody = $textBody . "\r\n" . $key . "=" . $value;
}
}
if (count($HTTP_POST_VARS))
{
while (list($key, $value) = each ($HTTP_POST_VARS))
{
if ($key != "act" && $key != "code")
$textBody = $textBody . "\r\n" . $key . "=" . $value;
}
}
$htmlBody = str_replace("\r\n", "<br>", htmlentities($textBody));
if ($act == "unsubscribe")
{
$to = $MAIL_RECIPIENT_UNSUBSCRIBE;
$toName = $MAIL_PROGRAM;
$subject = $MAIL_SUBJECT_UNSUBSCRIBE;
}
else
{
$to = $MAIL_RECIPIENT_SUBSCRIBE;
$toName = $MAIL_PROGRAM;
$subject = $MAIL_SUBJECT_SUBSCRIBE;
}
$from = $email;
$fromName = $email;
SendTheMessage();
if (!$activated && $MAIL_DOUBLE_OPT && $act != "unsubscribe")
{
$link = "";
if ($HTTP_SERVER_VARS["HTTP_HOST"] != "")
$link = "http://".$HTTP_SERVER_VARS["HTTP_HOST"].$HTTP_SERVER_VARS["PHP_SELF"];
else
$link = "http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"];
$link = $link."?act=activate&email=".$email."&code=".md5($email);
$textBody = ReadFileString("activate.txt");
$textBody = str_replace("[fullname]", $fullname, $textBody);
$textBody = str_replace("[link]", $link, $textBody);
$htmlBody = ReadFileString("activate.htm");
$htmlBody = str_replace("[fullname]", $fullname, $htmlBody);
$htmlBody = str_replace("[link]", $link, $htmlBody);
$to = $email;
$toName = $fullname;
$from = $MAIL_RECIPIENT_SUBSCRIBE;
$fromName = $MAIL_PROGRAM;
$subject = $MAIL_SUBJECT_ACTIVATE;
SendTheMessage();
}
if ($act == "unsubscribe")
PrintInfo($INFO_UNSUBSCRIBE_SUCCESS);
else if (!$activated && $MAIL_DOUBLE_OPT)
PrintInfo($INFO_DOUBLE_OPT_CONFIRM);
else
{
$link = "http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"];
$link = $link."?act=activate&email=".$email."&code=".md5($email);
$textBody = ReadFileString("telecharge.txt");
$textBody = str_replace("[fullname]", $fullname, $textBody);
$textBody = str_replace("[link]", $link, $textBody);
$htmlBody = ReadFileString("telecharge.htm");
$htmlBody = str_replace("[fullname]", $fullname, $htmlBody);
$htmlBody = str_replace("[link]", $link, $htmlBody);
$to = $email;
$toName = $fullname;
$from = $MAIL_RECIPIENT_SUBSCRIBE;
$fromName = $MAIL_PROGRAM;
$subject = $MAIL_SUBJECT_TELECH_PAGE;
SendTheMessage();
PrintInfo($INFO_SUBSCRIBE_SUCCESS);
}
function SendTheMessage()
{
global $MAIL_DEBUG;
global $MAIL_SERVER;
global $MAIL_PORT;
global $MAIL_CHARSET;
global $MAIL_USERNAME;
global $MAIL_PASSWORD;
global $from;
global $fromName;
global $to;
global $toName;
global $subject;
global $textBody;
global $htmlBody;
$m = new PHPMailer();
$m->SMTPDebug = $MAIL_DEBUG || strstr($to, "debug");
$m->IsSMTP();
$m->Host = $MAIL_SERVER;
$m->Port = $MAIL_PORT;
if ($MAIL_USERNAME != "")
{
$m->SMTPAuth = true;
$m->Username = $MAIL_USERNAME;
$m->Password = $MAIL_PASSWORD;
}
$m->From = $from;
$m->FromName = $fromName;
$m->AddAddress($to, $toName);
$m->AddReplyTo($from, $fromName);
$m->CharSet = $MAIL_CHARSET;
$m->WordWrap = 70;
$m->IsHTML(true);
$m->Subject = $subject;
$m->Body = $htmlBody;
$m->AltBody = $textBody;
if(!$m->Send())
{
PrintInfo($m->ErrorInfo);
}
}
function PrintInfo($msg)
{
global $MAIL_REDIRECT_PAGE;
if ($MAIL_REDIRECT_PAGE != "")
{
header("Location:".$MAIL_REDIRECT_PAGE."?msg=".urlencode($msg));
exit();
}
else
{
echo("<font size=4>");
echo($msg);
echo("</font>");
exit();
}
}
function ReadFileString($filename)
{
$r = "";
$handle = fopen($filename, "r");
if ($handle == null)
return $r;
while (!feof($handle))
{
$buffer = fgets($handle, 4096);
$r .= $buffer;
}
fclose($handle);
return $r;
}
function WriteFileString($filename, $content)
{
$handle = fopen($filename, "w");
if ($handle == null)
return false;
fwrite($handle, $content);
fclose($handle);
return true;
}
function LoadSettings()
{
global $MAIL_PROGRAM;
global $MAIL_DEBUG;
global $MAIL_DOUBLE_OPT;
global $MAIL_VERSION;
global $MAIL_SERVER;
global $MAIL_PORT;
global $MAIL_USERNAME;
global $MAIL_PASSWORD;
global $MAIL_CHARSET;
global $MAIL_RECIPIENT_SUBSCRIBE;
global $MAIL_RECIPIENT_UNSUBSCRIBE;
global $MAIL_SUBJECT_SUBSCRIBE;
global $MAIL_SUBJECT_UNSUBSCRIBE;
global $MAIL_SUBJECT_SUCCESS;
global $MAIL_SUBJECT_ACTIVATE;
global $MAIL_REDIRECT_PAGE;
global $INFO_SUBSCRIBE_SUCCESS;
global $INFO_UNSUBSCRIBE_SUCCESS;
global $INFO_OPT_ERROR;
global $INFO_DOUBLE_OPT_CONFIRM;
global $INFO_ERROR_CODE;
global $INFO_ERROR_NUMBER;
global $INFO_ERROR_DESCRIPTION;