PS: avec le code suivant le mail est bien envoyé mai l'algoritme de Luhn verifiant la carte bancaire ne s'execute plus.alors qu'avant il s'executait mai il ny avai pas de mail.
<%
option explicit
dim nbvisite, cartetype, numerocarte, prefix, prefix1, ok, msg, totalcarte, increment, i, numero, arret
arret=false
ok=true
nbvisite = request("nbvisite")+1
cartetype = request("cartetype")
numerocarte = request("numerocarte")
prefix=mid(numerocarte,1,2)
'si il doit y avoir un nbre maxi de tentives, le compteur est nbvisite
'if nbvisite>maxi then
' ...action trop de tentatives
' arret=true
'else 'on continue
' ... suite du traitement et ajouter un end if à la fin du code asp
'test si le type de carte a ete indique
'if (nbvisite>1) then 'on ne fait pas le test si c'est le premier affichage
' if cartetype="" then
' msg="<font color=red face=arial size=2><P>Erreur 0a : <br>Veuillez indiquer votre type de carte</font>"
' ok=false
' end if
' if numerocarte="" and ok=true then
' msg="<font color=red face=arial size=2><P>Erreur 0b : <br>Veuillez indiquer votre numero de carte</font>"
' ok=false
' end if
'end if
'Verifie le préfixe en fonction de la carte
'if ok=true then 'on a un numero et un type de carte
' test visa
if cartetype=1 then
' test la longueur VISA
if len(numerocarte)>16 or len(numerocarte)<13 then
msg="<font color=red face=arial size=2><P>Erreur 1 : <br>Votre numéro de carte n'est pas valable</font>"
ok=false
end if
' test le préfixe VISA
if ok= true then
prefix=mid(numerocarte,1,1)
if prefix<>4 then
msg="<font color=red face=arial size=2><P>Erreur 2 : <br>Votre numéro de carte n'est pas valable</font>"
ok=false
end if
end if
end if ' fin test visa
' test mastercard
if cartetype=2 then
' test de longueur MASTERCARD
if len(numerocarte)<>16 then
msg="<font color=red face=arial size=2><P>Erreur 3 : <br>Votre numéro de carte n'est pas valable</font>"
ok=false
end if
' test le préfixe MASTERCARD
if ok=true then
if prefix<>51 and prefix<>52 and prefix<>53 and prefix<>54 and prefix<>55 then
msg="<font color=red face=arial size=2><P>Erreur 4 : <br>Votre numéro de carte n'est pas valable</font>"
ok=false
end if
end if
end if ' fin test master card
'test Amex
if cartetype=3 then
'test la longueur du numero
if len(numerocarte)<>15 then
msg="<font color=red face=arial size=2><P>Erreur 5 : <br>Votre numéro de carte n'est pas valable</font>"
ok=false
end if
' test le préfixe Amex
if ok=true then
if prefix<>34 and prefix<>37 then
msg="<font color=red face=arial size=2><P>Erreur 6 : <br>Votre numéro de carte n'est pas valable</font>"
ok=false
end if
end if
end if ' fin test amex
'test Diners Club / Carte Blanche
if cartetype=4 then
'test la longueur du numero
if len(numerocarte)<>14 then
msg="<font color=red face=arial size=2><P>Erreur 7 : <br>Votre numéro de carte n'est pas valable</font>"
ok=false
end if
' test le préfixe Diners Club / Carte Blanche
if ok=true then
prefix1=mid(numerocarte,1,3)
if prefix<>36 and prefix<>38 then
msg="<font color=red face=arial size=2><P>Erreur 8 : <br>Votre numéro de carte n'est pas valable</font>"
ok=false
else
if prefix1>305 or prefix1<300 then
msg="<font color=red face=arial size=2><P>Erreur 2 : <br>Votre numéro de carte n'est pas valable</font>"
ok=false
end if
end if
end if
end if ' fin test Diners Club / Carte Blanche
'test Discover
if cartetype=5 then
'test la longueur du numero
if len(numerocarte)<>16 then
msg="<font color=red face=arial size=2><P>Erreur 9 : <br>Votre numéro de carte n'est pas valable</font>"
ok=false
end if
' test le préfixe Discover
if ok=true then
prefix=mid(numerocarte,1,4)
if prefix<>6011 then
msg="<font color=red face=arial size=2><P>Erreur 10 : <br>Votre numéro de carte n'est pas valable</font>"
ok=false
end if
end if
end if ' fin test Discover
'test JCB version1
if cartetype=6 then
if len(numerocarte)=16 then
' test le préfixe JCB version1
if ok=true then
prefix=mid(numerocarte,1,1)
if prefix<>3 then
msg="<font color=red face=arial size=2><P>Erreur 11 : <br>Votre numéro de carte n'est pas valable</font>"
ok=false
end if
end if ' fin test JCB version1
else
'test JCB version2
if len(numerocarte)=15 then
'test le préfixe JCB version2
if ok=true then
prefix=mid(numerocarte,1,4)
if prefix<>2131 and prefix<>1800 then
msg="<font color=red face=arial size=2><P>Erreur 12 : <br>Votre numéro de carte n'est pas valable</font>"
ok=false
end if
end if
else
'on a un type JCB mais pas le bon nombre de chiffres
msg="<font color=red face=arial size=2><P>Erreur 13 : <br>Votre numéro de carte n'est pas valable</font>"
ok=false
end if 'fin du test JCB Version2
end if 'fin des tests JCB versions 1&2
end if
'end if 'fin on a un numero et un type de carte
'Algorithme de Luhn
if isnumeric(numerocarte) and ok=true then ' si c'est bien un numéro
if ok=true then ' si les tests précédents ont été effectués avec succès
'debut de l'algo
totalcarte=0
increment=0
for i=len(numerocarte) to 1 step -1
numero=cint(mid(numerocarte,i,1))
increment=increment+1
'if increment mod 2 = 0 then ' nombre paire
if increment mod 2 <> 0 then
totalcarte=totalcarte+numero ' ajout normal dans la somme
else ' nombre impaire
numero=numero*2
if numero>=10 then
totalcarte=totalcarte+1+numero-10 'nombre>10 donc on additionne les 2 chiffres du nombre plus la somme
else
totalcarte=totalcarte+numero
end if
end if
next
' division du total
if (totalcarte mod 10)<>0 then
msg="<font color=red face=arial size=2><P>Erreur 20 : <br>Votre numéro de carte n'est pas valable</font> "
ok=false
end if
end if
else
if msg="" and request("nbvisite")>1 then
msg="<br><font color=red face=arial size=2><P>Erreur 21 : <br>Votre numéro de carte n'est pas valable</font>"
ok=false
end if
end if
' Fin de vérification carte bancaire si ok=true à ce niveau la carte est ok
'end if 'dans le cas d'un nombre limite de tentatives
%>
<html>
<head>
<meta http-equiv="Content-Language" content="fr">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Reservation</title>
<style type="text/css">
<!--
.Style2 {color: #CCCCCC}
.Style3 { font-size: 18px;
font-weight: bold;
}
.Style4 {font-size: 18px}
-->
</style>
<link href="Disponibilites2.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
body {
background-color: #CCCCCC;
}
.Style5 {color: #666666}
.Style7 {color: #808080}
-->
</style></head>
<body>
<%
'dans le cas d'un nombre limite de tentatives
'if arret=true then
%>
<script language="javascript">
function Teste_numero()
{
var cartetype
var ok=true
var numero = document.forms[0].elements[1].value;
// Quel est le type de carte
for (i=0;i<document.numcb.cartetype.length;i++)
{
if(document.numcb.cartetype[i].checked)
{ cartetype = document.numcb.cartetype[i].value }
}
if(numero=="" && (cartetype && ok)) {
alert("Veuillez préciser le numero de carte")
document.forms[0].elements[1].focus()
ok = false
}
return ok;
}
</script>
<div id="en_tete"><font size="4" color="#666666">B E S T W E S T E R N</font><br>
<font size="6" color="#666666">ALBA Hôtel</font><br>
<font size="4" color="#666666">41 Avenue Jean Médecin,</font> <font size="4" color="#666666">06000 Nice - France</font><br>
<font size="4" color="#666666">Tel: 33 04 93 88 02 88 Fax: 33 04 93 88 55</font><br>
<font size="4" color="#666666">[email protected]</font><br>
<h2>.</h2>
</div>
<p><font face="Futura Lt BT" color="#666666"><form method="post" name="numcb" action="email.asp">
<form action="tetot.asp" method="post" enctype="multipart/form-data" name="numcb">
<div id="corps">
<h1>Disponibilités et tarifs</h1>
<font color="#666666" face="Futura Lt BT" style="italic";>* Les champs obligatoires apparaissent en noir<br>
<span class="Style4"><u><br>
</u></span></font> <u><span class="Style4"><font color="#333333" face="Futura Lt BT" style="bold";><b>Quel type de séjour envisagez-vous ?</b> </font> </span></u>
<ul>
</ul>
</div>
<span class="Style5">Affaires</span>
<input type="radio" value="Affaires" name="rate_plan">
<font face="Futura Lt BT" color="#666666"> Loisirs/vacances
<input type="radio" value="Loisirs/vacances" name="rate_plan">
</font></p>
<p class="Style4"><font color="#333333" face="Futura Lt BT"><b><u>Dates d'arrivée et de départ :</u></b></font></p>
<p><font color="#666666" face="Futura Lt BT"> <i>Les disponibilités peuvent être vérifiées sur les 350 prochains jours, il n'est pas nécessaire de mentionner l'année.</i></font></p>
<p align="justify"><font face="Futura Lt BT" color="#666666">Date d'arrivée:</font><font color="#666666" face="Roman" size="+0">
<select name="doa_dd">
<option value="1"selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="doa_mm">
<option value="0"selected>janvier</option>
<option value="1">février</option>
<option value="2">mars</option>
<option value="3">avril</option>
<option value="4">mai</option>
<option value="5">juin</option>
<option value="6">juillet</option>
<option value="7">août</option>
<option value="8">septembre</option>
<option value="9">octobre</option>
<option value="10">novembre</option>
<option value="11">décembre</option>
</select>
</font><font face="Futura Lt BT"><span class="Style2">-----------------------------------------</span></font><font face="Futura Lt BT" color="#666666">Date de départ:</font><font color="#666666" face="Roman" size="+0">
<select name="dod_dd">
<option value="1"selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="dod_mm">
<option value="janvier"selected>janvier</option>
<option value="février">février</option>
<option value="mars">mars</option>
<option value="avril">avril</option>
<option value="mai">mai</option>
<option value="juin">juin</option>
<option value="juillet">juillet</option>
<option value="août">août</option>
<option value="septembre">septembre</option>
<option value="octobre">octobre</option>
<option value="novembre">novembre</option>
<option value="décembre">décembre</option>
</select>
</font></p>
<tr>
<td align="right" height="0"> </td>
<td align="left" height="21">
<div align="left"></div></td>
</tr>
<tr>
<td align="right" height="21"><div align="left"></div></td>
<td align="left" height="21"> <br>
</td>
<tr>
<td height="15" colSpan="2" vAlign="top" class="Style4">
<div align="left"><font color="#333333" face="Futura Lt BT"><b><u>Préférences:</u></b></font></div></td>
</tr>
<tr>
<tr>
<td vAlign="top" align="right" height="21"><div align="left"><font face="Futura Lt BT" color="#666666">Nombre de personnes :</font><font color="#666666" face="Futura Lt BT" size="+0">
<select size="1" name="num_rooms">
<option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select>
</font></div></td>
<td height="21"> <font color="#666666" face="Futura Lt BT" size="+0"> </font></td>
</tr>
<br>
<br>
<table width="560" height="132" border="0" align="center" cellpadding="0" cellspacing="2">
<caption>
Tarifs public 2005/2006
</caption>
<tr bgcolor="#ffcc66" height="33">
<td width="165" height="1" bgcolor="#808080">
<center>
</center></td>
<td width="272" height="1" bgcolor="#808080">
<p align="center"> <font face="Futura Lt BT" color="#FFFFFF">HAUTE SAISON</font></p>
<p align="center"> <font face="Futura Lt BT" size="2" color="#FFFFFF"> Du 01/04/04 au 31/10/04</font></p></td>
<td width="272" height="1" bgcolor="#808080">
<p align="center"> <font face="Futura Lt BT" color="#FFFFFF">BASSE SAISON</font></p>
<p align="center"> <font face="Futura Lt BT" size="2" color="#FFFFFF"> Du 1/11/04 au31/03/05</font></p></td>
<td width="238" height="1" bgcolor="#808080">
<p align="center"> <font face="Futura Lt BT" color="#FFFFFF">Périodes spéciales*</font></p></td>
</tr>
<tr height="33">
<td bgcolor="#999999" width="165" height="33" align="center">
<p align="center"> <font color="#FFFFFF" face="Futura Lt BT">Single standard</font></p></td>
<td bgcolor="#FFFFCC" width="272" height="33" align="center"> <font face="Futura Lt BT" size="4" color="#666666"> 95</font></td>
<td bgcolor="#FFFFCC" width="272" height="33" align="center"> <font face="Futura Lt BT" size="4" color="#666666">110</font></td>
<td bgcolor="#FFFFCC" width="238" height="33" align="center"> <font face="Futura Lt BT" size="4" color="#666666">145</font></td>
</tr>
<tr height="33">
<td bgcolor="#999999" width="165" height="33" align="center"> <font color="#FFFFFF" face="Futura Lt BT">Single supérieur</font></td>
<td bgcolor="#FFFFCC" width="272" height="33" align="center"> <font face="Futura Lt BT" size="4" color="#666666"> 115</font></td>
<td bgcolor="#FFFFCC" width="272" height="33" align="center"> <font face="Futura Lt BT" size="4" color="#666666">140</font></td>
<td bgcolor="#FFFFCC" width="238" height="33" align="center"> <font face="Futura Lt BT" size="4" color="#666666">175</font></td>
</tr>
<tr height="33" bgcolor="#ffebcd">
<td width="165" height="33" bgcolor="#999999" align="center">
<center>
<font color="#FFFFFF" face="Futura Lt BT">Junior Suite</font>
</center></td>
<td width="272" height="33" align="center" bgcolor="#FFFFCC"> <font face="Futura Lt BT" size="4" color="#666666"> 135</font></td>
<td width="272" height="33" align="center" bgcolor="#FFFFCC"> <font face="Futura Lt BT" size="4" color="#666666"> 170</font></td>
<td width="238" height="33" align="center" bgcolor="#FFFFCC"> <font face="Futura Lt BT" size="4" color="#666666">195</font></td>
</tr>
<tr height="33" bgcolor="#ffebcd">
<td width="165" height="33" bgcolor="#999999" align="center">
<center>
<font color="#FFFFFF" face="Futura Lt BT">Suites Duplex</font>
</center></td>
<td width="272" height="33" align="center" bgcolor="#FFFFCC"> <font face="Futura Lt BT" size="4" color="#666666"> 160</font></td>
<td width="272" height="33" align="center" bgcolor="#FFFFCC"> <font face="Futura Lt BT" size="4" color="#666666"> 190</font></td>
<td width="238" height="33" align="center" bgcolor="#FFFFCC"> <font face="Futura Lt BT" size="4" color="#666666">230</font></td>
</tr>
</table>
<p class="signature"> </p>
<p class="signature"> </p>
<p class="signature"> </p>
<p class="signature"> </p>
<p class="signature"> </p>
<p class="signature"> </p>
<p class="signature"> </p>
<p align="left" class="signature">Les périodes spéciales sont:<br />
    - Le carnaval<br />
    - Le grand prix de Monaco<br />
    - Pâques<br />
    - Les congrès Acropolis </p>
<tr><br>
<td vAlign="top" colSpan="2" height="15"><div align="left" class="Style4"><font color="#333333" face="Futura Lt BT"><b><u>Type de chambres :</u></b></font></div></td>
</tr>
<tr>
<td vAlign="top" align="right" height="21"><div align="left"><font face="Futura Lt BT" color="#666666">Choisir le type de chambre souhaité :</font><font color="#666666" face="Futura Lt BT" size="+0">
<select name="type_rooms">
<option value="Single standard" selected>Single standard</option>
<option value="Double standard">Double standard</option>
<option value="Junior suite">Junior suite</option>
<option value="Suite duplex">Suite duplex</option>
</select>
</font></div></td>
<td height="21"> <font color="#666666" face="Futura Lt BT" size="+0"> </font></td>
</tr>
<br>
<br>
<p class="signature"> </p>
<!-- LE TABLEAU-->
<tr><br>
<td colSpan="2" height="15">
<div align="left">
<p> </p>
<p class="Style3"><u><font face="Futura Lt BT" color="#333333">Indiquez votre numéro de carte de fidélité ou votre numéro d'identification professionnel ici: </font></u></p>
</div></td>
</tr>
<tr>
<td align="right" height="34"> <font face="Futura Lt BT" color="#808080">Best Western Gold Crown Club: </font> </td>
<td align="left" height="34"> <font face="Futura Lt BT" color="#808080">
<!--webbot bot="Validation" S-Data-Type="String" B-Allow-Digits="TRUE"
-->
<input onfocus="this.select()" size="16" name="freq_guest_id">
<br>
</font></td>
</tr>
<tr>
<td height="32"> </td>
<td height="32"> <font size="-1" face="Futura Lt BT" color="#808080">Tapez les 8 ou 16 chiffres de votre numéro de carte Gold Crown Club.</font></td>
</tr>
<tr><br>
<br>
<td height="20" align="right" bgcolor="#666666"> <font face="Futura Lt BT" color="#808080">                    Agence de voyages: </font> </td>
<td align="left" height="20"> <font face="Futura Lt BT" color="#808080">
<!--webbot bot="Validation" S-Data-Type="String" B-Allow-Digits="TRUE"
-->
<input onfocus="this.select()" size="8" name="agent_id">
<font size="-2">(IATA/ARC/TIDS)</font> </font> </td>
</tr>
<br>
<br>
<tr><br>
<td colSpan="2" height="15">
<div align="center" class="Style3"><font face="Futura Lt BT" color="#333333"><u>Par Carte Bancaire :</u></font></div></td>
</tr>
<p align="center">
<label><span class="Style7">Nom : </span></label>
<input type="text" name="textfield">
<label><span class="Style2">-----------------</span><span class="Style7">Prénom : </span>
<input type="text" name="textfield2">
</label></p>
<input type="hidden" name="nbvisite"
value="<%if ok=true and nbvisite>1 then%>1<%else%><%=nbvisite%><%end if%>"><div
align="center"><center><table border="0" cellpadding="0" cellspacing="0" width="497">
<tr>
<td width="474" align="center" bgcolor="#FFFFDD"><font face="Arial"><small>Votre numéro de carte <i>(UNIQUEMENT
les chiffres)</i> </small></font><input name="Numerocarte" type="text"
size="29" maxlength="16" length="16" onload="this.focus()">
<br>
</td>
</tr>
<tr>
<td bgcolor="#FFFFDD"><table width="100%" border="0">
<tr>
<td nowrap bgcolor="#CCCCCC"><div align="left">
<input type="radio" name="cartetype" value="1"
<%if (cartetype=1) then%>checked<%end if%>>
VISA<br>
<input type="radio" name="cartetype" value="2" <%if (cartetype=2) then%>checked<%end if%>>
Mastercard<br>
<input type="radio" name="cartetype" value="3" <%if (cartetype=3) then%>checked<%end if%>>
AMEX<br>
</div></td>
<td nowrap bgcolor="#CCCCCC"><div align="left">
<input type="radio" name="cartetype" value="4"
<%if (cartetype=4) then%>checked<%end if%>>
Diners Club / Carte Blanche<br>
<input type="radio" name="cartetype" value="5" <%if (cartetype=5) then%>checked<%end if%>>
Discover<br>
<input type="radio" name="cartetype" value="6" <%if (cartetype=6) then%>checked<%end if%>>
JCB </div></td>
</tr>
</table>
</td>
</tr>
<tr>
<td bgcolor="#FFFFDD" align="center"><br>
<input type="button" value="Vérifiez et validez vos informations"
onclick="javascript:(Teste_numero())?this.form.submit():document.forms[0].elements[0].select()">
<input name="reset" type="reset" value="Effacer le formulaire ">
<br>
<%
if OK<>true AND nbvisite>1 then
response.write("<BR><font face=arial color=#008000>Tentative effectuées : <b>" & nbvisite-1 & "</b></font>")
response.write(msg)
end if
if ok=true and nbvisite>1 then
response.write("<BR><font face=arial color=#008000><b>Numero de carte bancaire correct (ou inutilisée),reservation effectuée</b></font>")
end if
%> </td>
</tr>
</table>
</center></div><div align="center"><center><p><small></p>
</center></div>
</form>
<%
'dans le cas d'un nombre limite de tentatives
'else
' response.write("<font color=red face=arial size=2><P>Vous avez fait trop de tentatives infructueuses... Désolé</font>")
'end if
%>
<p align="center">
</form>
</p>
<center><div align="center"><center>
</center>
</div>
</center>
</body>
</html>
/*php /php*/[/b]