Bonjour
J’ai un gros pb de liaison avec un caddy dans une application e-commerce en asp
A partir de ma page de détail des produits je fais un lien
<a href="Boutique/addcaddie.asp?num=<%=(Liste_Prod.Fields.Item("Id_Prod").Value)%>">Ajouter au panier</a>
Code de ma page addcaddie.asp
<%@LANGUAGE="VBSCRIPT"%>
<!-- #include file="connexion.asp"-->
<%
'- Déclaration des variables
'---------------------------------------------------
Dim conn '- Variable connexion
Dim sql '- Chaîne de requête sql
Dim Temp '- Copie temporaire du caddie
Dim prod '- Recordset
Dim i, Trouve
'- Mise en cache de la page sur le serveur
'---------------------------------------------------
Response.buffer=true
'- Désactivation de la mise en cache sur le client
'---------------------------------------------------
Response.expiresabsolute=now()-1
'- Test erreur appel de addcaddie.asp sans paramètre num
'---------------------------------------------------
if request("num")="" then
response.write "<font face=arial size=3 color=Red><center>Accès Refusé</center></font>"
response.flush
response.End 'Arrêt de l'exécution
end if
'Copie du tableau caddy
'---------------------------------------------------
Temp=Session("Caddy")
sql = "SELECT produits.* FROM produits WHERE Id_prod=" & Request("Num")
Set prod=conn.execute(Sql)
if not prod.eof then
'- Il existe des produit pour cette catégorie
'---------------------------------------------------
prod. movefirst
else
' Gestion de l'erreur : Catégorie inexistante
'---------------------------------------------------
response.write "<font face=arial size=3 color=Red><center>Accès refusé</center></font>"
'- destruction du recordset
prod.close
set prod=nothing
'- Fermeture de la connexion
conn.close
set conn=nothing
'- Arrêt de l'exécution
response.End
end if
'- test si le produit n'est pas déjà dans le caddie
'---------------------------------------------------
i=0
trouve=false
do while i<session("item") and trouve=false
if temp(0,i)=request("num") then
' Le produit est déjà dans le caddie on augmente sa quantité
'---------------------------------------------------
temp(2,i)=temp(2,i)+1
trouve=true
end if
i=i+1
loop
'Le produit n'est pas dans la caddie alors on l'ajoute au caddie
'---------------------------------------------------
response.write(ubound(temp,2) & ":" & session("item"))
if ubound(temp,2)>=session("item") then
if trouve=false then
Temp(0,Session("Item"))=request("num") 'Numéro du produit
Temp(1,Session("Item"))=prod.Fields("Titre_prod").value 'Titre du produit
Temp(2,Session("Item"))=1 'Quantité du produit
if prod.fields("prom_prod")=False then
Temp(3,Session("Item"))=prod.fields("prixht_prod").value
else
Temp(3,Session("Item"))=prod.fields("prixhtprom_prod").value
end if
Temp(4,Session("Item"))=prod.fields("ref_Prod").value
Session("Item")=Session("Item")+1
end if
direc="caddie.asp"
else
direc="caddie.asp?msgspe=1"
end if
Session("Caddy")=Temp
'- Destruction du recordset
'---------------------------------------------------
prod.close
set prod=nothing
'- Fermeture de la connexion
'---------------------------------------------------
conn.close
set conn=nothing
'- Redirection vers la page caddie.asp
'---------------------------------------------------
response.redirect direc
%>
Mon fichier global.asa est à la racine de mon site avec la page index
Contenu du global.asa
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Application_OnStart
END SUB
</SCRIPT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Application_OnEnd
END SUB
</SCRIPT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Session_OnStart
Redim Cad (6,10)
Session("Caddy")=Cad
Session("Item")=0
END SUB
</SCRIPT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Session_OnEnd
END SUB
</SCRIPT>
Quand je clic sur mon lien dans la page de détail , j’arrive sur une page d’erreur qui dit :
Type d'erreur :
Erreur d'exécution Microsoft VBScript (0x800A000D)
Type incompatible: 'ubound'
/excalibur/WebSite/Boutique/addcaddie.asp, line 87
D’après ce que j’ai pu lire sur le sujet il semblerait que ce soit une erreur du fichier global.asa mais j’arrive pas à trouver
Merci pour le coup de main, pour moi c’est vraiment la grosse prise de tête.
