Documente Academic
Documente Profesional
Documente Cultură
CGI in C++
CGI in C++
FORMULAREA TEMEI
Deoarece problemǎ este una nu foarte simpla, dacǎ este abordata in intreaga ei
complexitate, vom merge pe o varianata mult simplificata, astfel:
Observatie
Tinand seama de specificul admiterii in USV/FIESC, din acest an, aceste liste pot
evolua zilnic, functie de inmatricularile si retragerile curente.
Observatie
STRUCTURAREA/ORGANIZAREA DATELOR
1
ARACIS - http://www.aracis.ro/
Se va defini la nivel logic datele cu care se intra in Admitere. Aceste date vor fi
furnizate atat de candidat ( date personale, studii ) cat si de procesul de Admitere (
rezultate examene/teste ).
Aici vom defini, din punct de vedere logic, datele personale, impreuna cu tipul si
dimensiunea lor, a candidatului ce se prezinta la Admitere. Tabelele ce vor fi
descries mai jos pot fi implementate, simplu, utilizand fisiere sau putem realiza o
conexiune la MySQL si astfel avem o solutie ce va conduce catre o abordare
profesionala.
tbl_date_pers_candidat
Aici vom defini, din punct de vedere logic, studiile anterioare urmate sau absolvite
de candidat, impreuna cu tipul si dimensiunea lor, a candidatului ce se prezinta la
Admitere.
tbl_studii_ant_candidat
Denumire camp Tip Dimensiune Descriere
Id_studii_ant Intreg 1 Identificator
unic
Id_candidat Intreg 1 Foreign key
Tip_studii Caracter 15
Denumire_unitate Caracter 30
Data_absolvire Caracter 12 - ‘yyyy-mm-
dd’
Titlu_obtinut Caracter 30
Serie_act_studiu Caracter 15
Comentarii Caracter 50 Diverse notatii
Observatie
Observatie
Observatie
Constructia unei pagini web consta in editarea unui document folosind TAG-uri
HTML2, TAG-uri ce ne permit formatarii informatiei ce urmeaza a aparea pe pagina
respectiva, astfel:
Evident, a fost setat cel putin dreptul de “read”, pentru “others”, pe fisierul
first.html.
2
http://www.w3schools.com/html/default.asp
3.2 PRIMA PAGINA WEB. DREPTURI SI PUBLICARE
Dupa crearea unei pagini html, similar paginii anterioare, va trebui sa realizam
urmatoarele operatii:
Observatie
Dupa salvarea documentului, copierea si setarea drepturilor s-a realizat prin
intermediul scriptului “copie.sh”, descris mai jos in cadrul materialului.
4 TEHNOLOGIA CGI
4.1 INTRODUCERE
C G I - C O M M O N G AT E WAY I N T E R FAC E
Este metoda prin care un server web poate sa prezinte informatia vizitatorilor
prin intermediul unui browser web, in functie de cererile acestora, interactiv,
accesand baze de date sau documente, si extragand informatia ceruta. Scripturile
CGI sunt executate în timp real, astfel încât poate afisa informatii dinamice.
De exemplu, cu ajutorul unui aplicatii CGI browserul web poate afisa în format
HTML continutul unei baze de date UNIX aflata pe server. În principiu trebuie creat
un program care sa extraga informatia din baza de date, sa le prelucreze si sa
returneze browserului web informatia dorita în format HTML, pentru vizualizare.
De exemplu, daca vreţi să faceţi un program care afişează "Hello world!" veţi
utiliza funcţiile de tiparire din limbajul preferat şi formatul definit pentru programele
CGI pentru a afişa mesajul potrivit.
Un limbaj compilat cum ar fi C sau C++ tinde să fie mai mic şi mai rapid, pe
când limbajele interpretate cum ar fi perl sau python trebuie să încarce un
interpretor, care poate fi destul de mare, la început. Un alt avantal al limbajelor
compilate este ca in cazul acestora se pot distribui executabile fără codul sursă.
4.4 FORMULARE
$ vi copie.sh
#!/bin/sh
## $1 = tipul fisierului ( "cgi" / "html" )
## $2 = fisierul care se copie
_CGI=~/public_html/cgi-bin
_HTML=~/public_html/cgi
if [ $1 = cgi ]; then
echo "[ `whoami` ] - copie (./$2) in $_CGI/$2"
chmod 751 ./$2
rm $_CGI/$2
cp ./$2 $_CGI/$2
ls -al $_CGI/$2
elif [ $1 = html ]; then
echo "[ `whoami` ] - copie (./$2) in $_HTML/$2"
chmod 754 $2
rm $_HTML/$2
cp ./$2 $_HTML/$2
ls -al $_HTML/$2
else
echo "[ `whoami` ] - eroare parametru ($1) !"
fi
7.3 SOLUTIE
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <stdexcept>
#include "mysql_connection.h"
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>
try {
return EXIT_FAILURE;
}
http://dev.mysql.com/doc/refman/5.1/en/connector-cpp-installation-source-
unix.html
http://dev.mysql.com/doc/refman/5.1/en/connector-cpp.html
http://forge.mysql.com/wiki/Connector_C%2B%2B
9 BIBLIOGRAFIE
ADMITERE
USV: http://www.admitere.usv.ro/
http://www.usv.ro/fisiere_utilizator/REGULAMENT_Admitere_2012-2013.pdf
FIESC: http://eed.usv.ro/html/admitere.html
http://eed.usv.ro/eed_files/admitere/2012/Metodologie_admitere_2012_revizui
t_10aprilie2012_licenta.pdf
CGI - HTML
1. http://www.gnu.org/software/cgicc/doc/index.html
2. http://www.achacha.org/freeCGI/
3. http://library.thinkquest.org/16728/content/cgi/cplusplus.html
4. http://www.yolinux.com/TUTORIALS/LinuxTutorialC++CGI.html
5. http://forge.mysql.com/wiki/Connector_C%2B%2B
6. yum install mysql-connector-c++
7. http://www.w3schools.com/html/html_forms.asp
8. http://www.roadiro.ro/site/navigate/divprog/cgigen.html
9. http://www.itim-cj.ro/~jalobean/Cursuri/Linux-ro/cgi.pdf
10.http://www.c-cultural.ro/biblioteca%20virtuala/informatica/formulare.pdf
11.http://dev.mysql.com/doc/refman/5.1/en/connector-cpp-tutorials.html
12.http://softexpert.wordpress.com/2007/10/18/how-to-connect-to-a-mysql-db-
using-c-linux/