Bonjour en fait je voudrai ke avec un seul bouton je puisse tester la validiter du numero de carte bancaire. Le formulaite beta 14.asp teste le code et recharge la page si le code est erroné et je soumet a un formulaire s'apellant email.asp si le code est bon,du moin c'est ce que je souhaite faire: voici mon code...si quelqu'un peut m'aider...ca sauve mon stage ;) Merci d'avance:::::
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.
[b][php]<%
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][/php]