SERVEUR HTTP EVOLUTIF PHP,MYSQL,PERL....

Messages postés
368
Date d'inscription
mercredi 14 novembre 2001
Statut
Membre
Dernière intervention
1 septembre 2008
- - Dernière réponse : zeboss31
Messages postés
14
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
1 février 2010
- 14 oct. 2012 à 11:06
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23928-serveur-http-evolutif-php-mysql-perl

Afficher la suite 
cs_Xs
Messages postés
368
Date d'inscription
mercredi 14 novembre 2001
Statut
Membre
Dernière intervention
1 septembre 2008
-
Ah j'aimerai bien que ton logiciel soit utilisé : comme ca je pourrai m'entrainer au BO :D

Il est plus qu'indispensable que tu corriges les problemes de taille fixe, etc...

mais sinon c'est une bonne source : 8/10
cs_Belt
Messages postés
47
Date d'inscription
jeudi 13 juin 2002
Statut
Membre
Dernière intervention
3 juillet 2006
-
Ouais c'est clair que dans ma prochaine version je règlerais ce "problème" mais bon pour une utilisation "normale" ça suffit, il devrait pas y avoir de buffer overflow. Merci pour ta note !
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
raah, j'ai Erreur au démarrage, zuut, j'ai trop envie de le tester ton serveur! j'adorerais pvr écrire mes modules en PHP :) ce serait trop bon et d'après ton fichier Notice.txt, c'est vrmnt easy game! hmm, t'as pas une idée du pq j'ai une erreur?

dans serveur.ini j'ai: RACINE=C:(pas le droit d'aller jusque programe files à cause de l'espace)

j'ai pas touché à config.ini.

Est-ce que ça peut être à cause de Apache qui est lancé en même temps?
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
ouéééééééééé ça marche :-D j'ai juste dû couper Apache, c'est tout.
Hmmm, je pense que je vais m'amuser avec ton serveur, cette idée de module perso en C++ me réjouit ^^ tu mettras les màj ici n'est-ce pas? ah, puis arrange-toi pr que ton serveur devienne pas trop populaire, parce que ça m'énerverait que des hackers s'intéressent aux failles de sécurité ;-)
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
bon, ben ça fait 2h que je chipote dans le code et... j'ai des problèmes.

Moi je voudrais pouvoir accéder à des répertoires avec un espace dans le nom, et donc j'ai écrit un bout de code pour remplacer les %20 par des espaces (je devrais en fait remplacer les %yz par des 0xyz mais soit), de tte façon, même si la modification est bien fait (j'ai vérifié ds la console), ça marche pas. et puis en fait, j'ai l'impression que c'est l'accès à un autre répertoire qui bloque :(

ah puis j'ai aussi écrit un module vite fait:

#include
using namespace std;

int main(int argc, char *argv[])
{
cout << "<html>\n<head>\n<title>KiruaScript HTTP Server Module</title>\n</head>\n\nks script working!\n\n</html>" << endl;
return 0;
}


j'ai compilé ça dans ks.exe, et j'ai mis ça dans config.ini:

[MODULES]
ks=C:\HTTPTest\ks.exe
[FINMODULES]
[MySql]
[FINMySql]

et ça dans serveur.ini:

RACINE=C:/HTTPTest

et quand j'appelle un fichier vide (0 octet) nommé index.ks comme ceci:

http://127.0.0.1/index.ks, je reçois une page vide :( (enfin, juste un caractère, mais pas affichable, dans le bloc note, c'est un espace).

pourtant ça marchait impec avec des pages htm/html classiques ou même des fichiers images / flash etc, j'ai testé avec un site flash justement, et il n'y a pas de problème, donc c'est pas une question de caractère qui passe mal dans le contenu à renvoyer :(

viens de tester avec "blabla" dans mon fichier index.ks, et ça renvoie "blabla ". argmf :(

je fais qq ch de travers? et tous les résultats de test là, c'est en ayant enlevé le bout de code-bidouille que j'avais écrit donc, ça vient pas de là.
cs_Belt
Messages postés
47
Date d'inscription
jeudi 13 juin 2002
Statut
Membre
Dernière intervention
3 juillet 2006
-
Faut regarder exemple_config.ini !!
---> Pour ton problème c'est parce que il manque le ";" à la fin du chemin il faut écrire :
[MODULES]
ks=C:\HTTPTest\ks.exe;
[FINMODULES]
[MySql]
[FINMySql]

et là ca marchera !!

Je suis en train de travailler dessus alors hésite pas à me donner des idées, mais bon d'abord je m'occupe de la commande POST et de sécurisé
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
gosh, me sens bête ^^ désolé pour ça.
du reste, y a qd même un problème assez sérieux au niveau de la gestion des requêtes avec des caractères spéciaux (%yz). ça doit pas être bien compliqué à coder, mais la gestion des chaînes de caractères c'est tjs :(.

à ce propos, tu as oublié un free() après ton malloc() dans la fonction executer_requete, vers le début du code tu alloues de la mémoire pour l'fichier_url si j'ai bonne mémoire, et puis j'ai pas vu le free (mais peut-être suis-je à nouveau bête ^^ j'ai plus le code devant moi)
cs_yAAm
Messages postés
45
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
22 février 2006
-
0040233E cmp byte ptr [eax],2Eh
00402341 jne 00402345
Tel est la ligne (3E) qui sur laquelle le programme a planté invalid handle value . .. apres une connexion en telnet sur 127.0.0.1 .
theXman
Messages postés
37
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
11 mars 2006
-
ca fait plaisir de voir des bonnes sources OPEN pour win.
pas le temps de regarder pour l'instant, mais BON COURAGE

++
simtiers
Messages postés
207
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2006
-
Salut !

Moi aussi, j'essaie de faire mon petit serveur HTTP.

Pour l'instant, il gère les méthodes GET, HEAD et POST.
J'utilise PHP.exe pour lire mes pages PHP, mais j'ai un pb: dès que j'ouvre une page PHP utilisant les sessions, PHP.exe crée une session mais en ouvre une autre (vide )lors de l'avancée du client dans le site.

Du peux m'expliquer pourquoi ?
minet03
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
-
Shellut
Moi j'essay de faire mon propre serveur http, et j'ai jeter un oeil sur celui-ci, déjà il me met une belle erreur au démarrage, et ensuite je trouve la source très mal commenter. C'est dommage. 5/10
rosemarie302
Messages postés
3
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
15 novembre 2004
-
slt ta source et pas mal du tout!
moi je vien de la programmation php et la j'essay de me mettre au c++ avec dev-cpp5 enfin 4.5.5.9 un truc dans le genre, mais impossible de trouver comment recuperer une page html sur un serveur pour la traiter ensuite.
et comme je voi que tu est a l'ecoute du monde s'aurais tu me dire comment on recupere une page html pour traiter son contenue?? parce que j'ai beau cherhcer impossible de trouver une source claire et surtout qui compile.

et pourrai ton envisager de jumeller c++ et php pour la programmation avec un module php, parce que la gestion des chaine de carractere est bien plus simple en php, c++ c'est vraiment basic de se coter la!

du genre le programme ce lance, et execute un script en php (page php) et recupaire les donner a la fin...

merci davance pour ton aide

menfin deja si tu peut me dire comment recuperer une page html et dl un image sa serai super. merci
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
"la gestion des chaine de carractere est bien plus simple en php, c++ c'est vraiment basic de se coter la!"

le C++ a hérité des chaînes du C. PHP est codé en C. PHP n'a donc fait qu'implémenter des fonctions faciles qui traitent les chaînes C classiques. Ce qui veut dire (en substance ^^) qu'il t'appartient quand tu programmes en C++ de coder toi-même tes classes de gestion de chaînes de caractères. Ceci dit, tu es déjà TRÈS bien aidé par la classe standard string (en-tête <string>, à ne pas confondre avec <cstring>, qui est en fait l'ancien <string.h> du C).


pour récupérer un document web (entendons: via le protocol HTTP), tu dois utiliser des "sockets". càd que tu vas utiliser soit une librairie de sockets portable, soi directement winsocks sous windows par exemple, ou équivalent pr un autre OS, et utiliser les méthodes de cette librairie pour
1/ te connecter au serveur web via l'IP et le port (l'IP peut aussi être un nom de domaine: hostname en fait)
2/ envoyer une requête "HTTP-compliant", càd qui respecte les normes définies par la dernière RFC HTTP. tu pourras trouver de la doc là dessus assez aisément, ne fut-ce que dans les exemples de sockets PHP, en général ils utilisent HTTP 1.0 et c'est assez simple.
3/ récupérer la réponse du serveur, toujours via ta librairie de sockets, et traiter cette réponse comme bon te semble.


L'avantage, c'est que le protocol HTTP est très simple. Cela vient en partie du fait que c'est un protocol qui n'utilise pas de connexions persistantes: tu veux une page: tu te connectes, tu demandes, tu reçois, point. T'en veux une autre? tu te reconnectes etc... Ça veut dire que tu n'as absolument pas besoin de garder des traces des précédentes communications etc: c'est plus facile.

Tu auras probablement juste un souci (le même que moi): la réponse du serveur contient des en-têtes HTTP suivis du contenu effectif, et je n'ai jamais trouvé de référence qui me disait comment séparer ces deux parties (faut dire que je suis vrmnt un boulet quoi :p ça doit être bête comme chou mais j'ai aps été fichu de trouver, ni de chercher correctement)
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
vala, une tout petite recherche et c'était réglé:

ftp://ftp.isi.edu/in-notes/rfc2616.txt

le point 6 de cette RFC décrit très précisément le standard des réponses, et donc la façon dont en-tête et contenu sont séparés.
minet03
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
-
j'ai appris récemment comment faire un serveur http et on m'a redirigé vers http://www.salemioche.com/. Voilà, pour commencer je pense que ce serai déjà pas mal (moi même je vais essayé de m'en servir)
parker_
Messages postés
2
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
13 décembre 2004
-
Y aurait pas un meilleur moyen que de faire une boucle infinie et un sleep dans le accept
minet03
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
-
je ne me rappelle plus du code, cela dit, autre qu'une boucle infinit serai chose impossible voir très casse tête. Le sleep doit être pour soulager le proc ?!
cs_Belt
Messages postés
47
Date d'inscription
jeudi 13 juin 2002
Statut
Membre
Dernière intervention
3 juillet 2006
-
bah non puisqu'il faux sans cesse attendre pour de nouveaux clients !! et le Sleep est OBLIGATOIRE sinon ton processeur sera utilisé à 100% et donc au bout de quelques connexion en // bah ton serveur il crève
minet03
Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
-
j'avais donc raison, mais à quoi pense ces jeune programmeur ? sans doute a la même chose que nous quand on étai jeune :-)
parker_
Messages postés
2
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
13 décembre 2004
-
Ca serait qd meme mieux de mettre un select .
C est quand meme plus propre que de mettre un sleep..
cs_Belt
Messages postés
47
Date d'inscription
jeudi 13 juin 2002
Statut
Membre
Dernière intervention
3 juillet 2006
-
bof... c'est sur que si tu ve être très précis et attendre genre 0.9s alors d'accord mais sinon ca sert qu'a ralonger le code !
adnane60
Messages postés
1
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
26 février 2005
-
est ce que vous pouvez me bien données une explication sur le serveurapche
VPNVB
Messages postés
58
Date d'inscription
dimanche 7 août 2005
Statut
Membre
Dernière intervention
20 août 2008
-
Salut

Merci pour se Serveur Web
il est tré simplifier et Tré Functionaile
je veux te contacter en Persone
ou je peux trouver ton Email SVP ?
zeboss31
Messages postés
14
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
1 février 2010
-
Bonjour, à quoi sert le fichier "enteteHTTP.dll" ?