Salut Ar-S.
L'autre post que tu ne retrouves plus est peut-être
celui-ci.
Je t"envoi directement sur mon post, où tu trouveras les sources à télécharger pour envoyer un message en devant te loguer auparavant et aller ensuite sur l'interface pour poster.
Cela fonctionne à merveille.
Et voici la solution finale, que je n'aime pas trop parce qu'il y a un petit lag d'une bonne seconde pour extirper le PHPSESSID.
Le post où je t'ai envoyé, on devait mettre le PHPSESSID manuellement (d'ailleurs je vais aller mettre aussi la solution là-bas).
Code : Tout sélectionner
XIncludeFile "__Lib_Post.pb"
InitNetwork()
Global cookieValeur$
Procedure SeLogguer()
Protected test.HTTP_Query, string.s, readed.i, conn.i, time.i, position.i, string2$
OpenConsole()
HTTP_createQuery(@test, #HTTP_METHOD_POST, "/post/admin.php", "toto.fr")
HTTP_addQueryHeader(@test, "User-Agent", "Mozilla/5.0")
HTTP_addPostData(@test, "pass", "toto") ; On se loggue avec le mdp
conn = HTTP_sendQuery(@test)
string.s = Space(2048)
time = ElapsedMilliseconds()
Repeat
If NetworkClientEvent(conn) = #PB_NetworkEvent_Data
readed = ReceiveNetworkData(conn, @string, 2048)
Print(Left(string, readed))
Debug Left(string, readed)
string2$ + Left(string, readed)
;Debug string2$
time = ElapsedMilliseconds()
EndIf
Delay(100)
Until ElapsedMilliseconds() - time >= 3000
; On recherche PHPSESSID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx pour passer ça à la procedure "EcrireEnAdmin()"
position = FindString(string2$, "PHPSESSID=", 1)
Debug "Position : "+ Str(position)
cookieValeur$ = Mid(string2$, position, 10 + 32) ; 10 = "PHPSESSID=" et il y a toujours 32 caractères alpha/numérique dans 1 session
Debug cookieValeur$
Input()
EndProcedure
Procedure EcrireEnAdmin()
Protected test.HTTP_Query, string.s, readed.i, conn.i, time.i
OpenConsole()
HTTP_createQuery(@test, #HTTP_METHOD_POST, "/post/ecrire_admin.php", "toto.fr")
HTTP_addQueryHeader(@test, "User-Agent", "Mozilla/5.0")
;HTTP_addQueryHeader(@test, "Cookie", "PHPSESSID=a75b36c04a67a17bcc4cd6a706f94add")
HTTP_addQueryHeader(@test, "Cookie", cookieValeur$)
HTTP_addPostData(@test, "poster", "oui")
HTTP_addPostData(@test, "message", "Un_message_de_France_c_est_super en Admin")
conn = HTTP_sendQuery(@test)
string.s = Space(2048)
time = ElapsedMilliseconds()
Repeat
If NetworkClientEvent(conn) = #PB_NetworkEvent_Data
readed = ReceiveNetworkData(conn, @string, 2048)
Print(Left(string, readed))
time = ElapsedMilliseconds()
EndIf
Delay(100)
Until ElapsedMilliseconds() - time >= 3000
Input()
EndProcedure
SeLogguer()
EcrireEnAdmin()
[EDIT]Par exemple pour te loguer sur ton forum, le code devrait être celui-ci.
Si tu le teste tu verras que le PHPSESSID est bien récupéré.
Code : Tout sélectionner
Procedure SeLogguer()
Protected test.HTTP_Query, string.s, readed.i, conn.i, time.i, position.i, string2$
OpenConsole()
HTTP_createQuery(@test, #HTTP_METHOD_POST, "/forums/index.php?action=login2", "www.newbiecontest.org")
HTTP_addQueryHeader(@test, "User-Agent", "Mozilla/5.0")
HTTP_addPostData(@test, "user", "xxxx") ; Ton user
HTTP_addPostData(@test, "passwrd", "xxxx") ; Ton Mdp
; Et eventuellement si c'est obligatoire
HTTP_addPostData(@test, "cookielength", "31536") ;
HTTP_addPostData(@test, "cookieneverexp", "on") ;
conn = HTTP_sendQuery(@test)
etc...
Et à partir de là, dans "EcrireEnAdmin()", il te suffirait de mettre le lien vers la page pour poster un message.
Mais ne vas pas écrire un bot qui va te permettre de mettre 100 messages par jour vers tes sites pornos préférés et en profiter pour faire de la pub pour tes sites perso, sinon je te balance à MicroSoft et on me donnera de l'argent pour ça
Et j'allais oublier c'est lepiaf31 et Thyphoon qui ont écrit l'air de rien cette petite lib.
Et quand je pense que tu as posté le 1er, un commentaire, honte sur toi d'avoir perdu le fil de ce post.
Sur ce forum il y a un truc pas mal, c'est le lien en haut de page "Panneau de l’utilisateur" qui te permet de mettre des sujets en favoris et de savoir où tu as posté.
Ça permet de retrouver certains sujets de conversation.
Bye.