1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
| #include <stdlib.h>
#include "CGI.h"
#include "Structure.h"
#include "tProtocole.h"
#define IP "127.0.0.1"
#define PORT 5000
#define TAILLE_MAX 256
//fonction d'affichage des erreurs
void Erreur(char *msg)
{
perror(msg);
printf("Erreur :%s", msg);
exit(0);
}
int main(int argc, char* argv[])
{
CCGI cgi;
CCGIItem item;
tProtocole protocole;
char buffer[TAILLE_MAX];
char * Login ;
char * Pass;
int nLongeur;
int pLongeur;
char TrameAEnvoyer[50];
///////////////////////////////////////////////////////
////////// entête de la page HTML générée//////////////
///////////////////////////////////////////////////////
cout << "Content-type: text/html" << endl <<endl
<< "<html>" << endl
<< "<body>" << endl;
cgi.Load(); //chargement du CGI
///////////////////////////////////////////////////////
///////////////////Connection//////////////////////////
///////////////////////////////////////////////////////
int n,Res ;
WSADATA WSAData ;
WSAStartup (MAKEWORD(2,0), &WSAData);
SOCKET MaSocket ;
MaSocket= socket(AF_INET, SOCK_STREAM, 0 ) ;
if (MaSocket < 0)
Erreur("Erreur de creation de socket");
struct hostent* serveur ;
serveur = gethostbyname (IP) ;
if (serveur == NULL)
{
printf("connexion avec le serveur impossible<BR>");
closesocket (MaSocket);
}
struct sockaddr_in StructureAdresseServeur ;
StructureAdresseServeur.sin_family = AF_INET ;
StructureAdresseServeur.sin_port = htons(PORT) ;
StructureAdresseServeur.sin_addr=*(struct in_addr*)serveur->h_addr ;
//Connection au serveur
Res=connect(MaSocket,(struct sockaddr*)&StructureAdresseServeur, sizeof(StructureAdresseServeur)) ;
if (Res<0)
Erreur("Erreur de Connection");
n = recv(MaSocket,buffer,strlen(buffer),0);
if(n< 0)
Erreur("Erreur de réception des données");
///////////////////////////////////////////////////////
////////////Réception de la réponse du serveur/////////
///////////////////////////////////////////////////////
printf("//////////////////////////////AFFICHAGE TEST/////////////////////<br/>");
if(buffer[0]=='C') //le serveur envoi 'C'
printf("<a href='Index_2.html' target='_blank'>Menu Principale</a><br/>");
else
printf("AUCUNE REPONSE !<BR>");
///////////////////////////////////////////////////////
//////////////////////////////////////////////////////////
//////////////////Authentification////////////////////////
//////////////////////////////////////////////////////////
//permet de récupérer le Login rentré dans le formulaire//
//////////////////////////////////////////////////////////
cgi.GetItem(0,&item);
nLongeur = item.GetLength();
Login = (char*) malloc(nLongeur);
item.GetValue(Login,nLongeur);
cout << Login <<"<BR/>"<< endl;
/////////////////////////////////////////////////////////
//permet de récupérer le Pass rentré dans le formulaire//
/////////////////////////////////////////////////////////
cgi.GetItem(1,&item);
pLongeur = item.GetLength();
Pass = (char*) malloc(pLongeur);
item.GetValue(Pass,pLongeur);
cout << Pass <<"<BR/>"<< endl;
/////////////////////////////////////////////////////////
/////////////////// Affichage de test////////////////////
printf("//////////////////////////////DONNEES CGI//////////////////////////<br/>");
protocole.Authentifier(Login,Pass,TrameAEnvoyer);
printf("TRAME :%s <br />",TrameAEnvoyer);
send(MaSocket,TrameAEnvoyer,strlen(TrameAEnvoyer),0); //envoyer le login et le passe au serveur
recv(MaSocket,buffer,strlen(buffer),0); //réception de la réponse du serveur
if(buffer[0]=='1') //test la réponse du serveur
printf("Réception du message provenant du serveur : %s<br/>",buffer) ;
else
printf("Mot de passe incorrect ! <br /><a href='../index.html' >Retour</a>>>Redirection dans 5 secondes !<meta http-equiv='refresh' content='5;url=../index.html'><br/>");
printf("///////////////////////////FIN AFFICHAGE TEST/////////////////////<br/>");
///////////////////////////////////////////////////////
////////////Fin de la page HTML générée////////////////
///////////////////////////////////////////////////////
cout << "</ul>" << endl
<< "</body>" << endl
<< "</html>" << endl;
///////////////////////////////////////////////////////
//////////////////////DECONNECTION/////////////////////
///////////////////////////////////////////////////////
//closesocket(MaSocket) ;
//WSACleanup () ;
} |
Partager