volgur
Messages postés32Date d'inscriptionvendredi 11 avril 2008StatutMembreDernière intervention21 avril 2008
-
18 avril 2008 à 10:35
volgur
Messages postés32Date d'inscriptionvendredi 11 avril 2008StatutMembreDernière intervention21 avril 2008
-
21 avril 2008 à 10:13
Bonjour tout le monde,
Voila j'ai un soucis assez simple : dans un script que j'ai réalisé en ASP, j'ai soucis concernant la lecture d'un fichier texte (et même p'tete lors de la définition du chemin :s)
Mon fichier texte se compose ainsi
login1 passw1
login2 passw2
.... vous avez compris chaque est composée de 6 caractères, un espace, 6 caractères et un retour charriot.
Le soucis c'est que j'utilise inF.Read, mais je suis pas du tout sûr que ça fonctionne comme je le pense. Pour preuve, j'ai réalisé le même script en C (langage que je connais/maîtrise beaucoup mieux), et celui-ci fonctionne.
Si quelqu'un pouvait donc m'aider, voici mon script ASP:
<%
'Vérification des logs dans un fichier !
'On commence par récupérer ce qui a été tapé !
login_user=Request.Form("login")
passwd_user=Request.Form("passwd")
'Et ceux qui vont accueillir les log du fichier
dim taille : taille=6
dim login : redim login(taille)
dim passwd : redim passwd(taille)
dim poubelle : redim poubelle(taille)
login=""
passwd=""
'Petite variable qui permet de sortir de la boucle quand authentifié
dim a : a=0
'On récupère le chemin absolu du fichier dans l'arborescence du serveur
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
mon_fich="\log.txt"
repertoire="/admin/"
chemin_fichier=Server.MapPath(repertoire & nom_fich) 'le chemin du fichier depuis la racine
'On teste si le fichier existe ou non
if FSO.FileExists(chemin_fichier) then
'On commence le traitement
'En ouvrant le fichier
set inF=FSO.OpenTextFile(chemin_fichier, 1, false)
'On lit toutes les lignes tant qu'on a pas tout lu, ou tant que a est différent de 1
While not inF.atEndOfStream or a<>1
login=inF.Read(6) 'Les logins présent dans le fichier
poubelle=inF.Read(1) 'L'espace
passwd=inF.Read(6) 'Les password présents dans le fichier
poubelle=inF.Read(1) 'Le retour chariot
'Et on teste si c'est correct ou pas
if login_user=login and passwd_user=passwd then
rep="OK"
a=1
else 'Ca correspond pas, on met la variable rep à ERREUR, au cas où c'est le dernier tour de boucle
rep="ERREUR"
end if 'On remonte dans la boucle, et on lit la ligne suivante voir si ce coup-ci c'est bon
Wend 'On a lu tout le fichier
'On renvoi donc la variable pour le suite du traitement
Response.Write("rep="&rep)
inF.close
else 'Le fichier n'existe pas
Response.Write("Authentification impossible, veuillez contacter votre Administrateur pour plus d'informations")
end if
%>
volgur
Messages postés32Date d'inscriptionvendredi 11 avril 2008StatutMembreDernière intervention21 avril 2008 18 avril 2008 à 13:46
Bah l'admin de la boîte m'a dit que le serveur tournait sous ASP, point barre. ASP.net ya de grosses différences ?
Sinon oui je me doutais un peu que j'allais devoir changer cela, mais comment on parcourt un fichier xml ? Et puis déjà comment on créer un fichier xml ? j'ai beau être en train de lire http://xml.developpez.com/cours/ ça à l'air d'être le gros bazard :( c'est même flou en fait
volgur
Messages postés32Date d'inscriptionvendredi 11 avril 2008StatutMembreDernière intervention21 avril 2008 18 avril 2008 à 14:38
:o J'viens de lire le tuto du site du zéro http://www.siteduzero.com/tuto-3-2882-1-le-point-sur-xml.html à propos de xml, bon c'est un peu plus clair désormais. Néanmoins j'ai pas du tout saisie comment utiliser ce genre de fichier. Pour que mon script ASP (ou ASP.net alors, j'en sais rien -_-) récupère des infos de mon fichier xml, comment je dois procéder ? Dans le totoriel il parle de DOM pour gérer les données, mais si j'ai bien compris c'est pour gérer un fichier xml depuis un fichier xml, donc pas bon...
volgur
Messages postés32Date d'inscriptionvendredi 11 avril 2008StatutMembreDernière intervention21 avril 2008 18 avril 2008 à 15:04
Ok merci pour le liens, après une tite lecture j'ai donc créé un document pour récupérer les données xml qui m'intéressent, mais c'est là le soucis, comment faire pour les récupérées et les traitées ??
Faudrait faire un truc du genre
Dim mydoc
Set mydoc=Server.CreateObject("Microsoft.XMLDOM")
for cpt=0 to nb_lignes or a<>1 avec nb_lignes nombre de ligne du type
if login_user=mydoc.name and passwd_user=mydoc.password then
rep="OK"
a=1
else
rep="ERREUR"
end if
next
Response.Write("rep="&rep)
A la base tu l'as compris le for permet de faire défiler les différentes lignes, mais là je vois pas comment le faire. D'autant que mydoc.login est surrement faux :s
Si tu pouvais m'éclairer, merci d'avance