Appunti di PHP
Home

Appunti di PHP

Da quando il mio sito ospitato su un server dove possibile utilizzare sia php che una connessione ad un db mysql, ho cercato di capire come ci si connette ad un database tramite php e di conseguenza traslare tutte le mie conoscenze in ambiente Microsoft con asp e sql server.
Visto che tendo a dimenticare tutto mi appunto tutto quello che mano a mano imparo.
  • Inclusione di un file
  • Connessione a MySQL e ODBC
  • Creazione e gestione di un cursore (recordset)
  • Salvare i dati relativi alle visite sul sito
  • Inclusione di un file

    Mi stato molto utile includere un file on ogni pagina php del sito per inserire il codice del contatore. Potrebbe essere molto utile allo stesso modo inserire una intestazione, un menu o la sezione finale.
    Il codice per creare un aporzioni di pagina a partire da un file
    	<?php require("contatore.php"); ?>		
    		

    Connessione ad un database

    Dato cha a casa ho Windows e non Linux metto a confronto i due metodi per collegarsi ad un database sia tramite ODBC che direttamente a mysql.

    Connessione a MySQL
    	//supponiamo di avere un database (miodatabase) sulla macchina locale (localhost) 
    	//a cui accediamo tramite login (mialogin) e password (miapassword)
    	//il codice per farci restituire una connessione valida da utilizzare 
    	$conn = mysql_connect("localhost", "mialogin", "miapassword");
    	mysql_select_db("miodatabase", $conn);
    	
    		
    Connessione via ODBC
    	//per ODBC, supponiamo di aver creato una fonte dati miodsn che punta direttamente al nostro database
    	//al quale accediamo con mialogin e miapassword 
    	$conn = odbc_connect("dsn=miodsn;uid=mialogin;pwd=miapassword", "", "");		
    		

    Creazione e gestione di un cursore (o recordSet)

    Una volta creata la connessione al database questo il codice che sfuttiamo per creare un cursore e ciclarlo
    con MySQL
    	$rs = mysql_query($sql, $conn);
    	while ($row = mysql_fetch_array($rs)) {
    		...
    		utilizzo $row['miocampo'] ...
    		...
    	}
    			
    		
    		
    con ODBC
    	$rs = odbc_exec($conn,$sql);	
    	while ($row = odbc_fetch_array($rs)) {
    		...
    		utilizzo $row['miocampo'] ...
    		...
    	}
    		

    Creazione di un log http

    Per registrare ogni accesso al sito bisogna inserire in ogni pagina da monitorare il codice che inserisce nel database i dati relativi alla visita.
    Come prima cosa bisogna creare una tabella che ospita i dati (supponiamo di scrivere tutto in un database MySQL), il codice per la creazione di questa tabella questo:
    	CREATE TABLE httplog (
    
    	log_id int(10) unsigned NOT NULL auto_increment,
    
    	log_ip varchar(15) NOT NULL default '',
    
    	log_ref varchar(255) NOT NULL default '',
    
    	log_url varchar(255) NOT NULL default '',
    
    	log_date datetime NOT NULL default '0000-00-00 00:00:00',
    
    	log_agent varchar(255) NOT NULL default ''
    
    
    	PRIMARY KEY (log_id)
    
    	) TYPE=MyISAM ;
    	
    		
    Quindi in ogni pagina inserire il seguente codice
    	mysql_connect("miohost", "mialogin", "miapassword") or die (mysql_error());
    	mysql_select_db("miodatabase") or die ("Impossibile selezionare il database.");
    	mysql_query("INSERT INTO logs(log_ip, log_ref, log_url, log_date, log_agent) VALUES(\"".$HTTP_SERVER_VARS['REMOTE_ADDR']."\", \"".$HTTP_SERVER_VARS['HTTP_REFERER']."\", \"".$HTTP_SERVER_VARS['REQUEST_URI']."\", NOW(), \"".$HTTP_SERVER_VARS['HTTP_USER_AGENT']."\")");
    		
    successivamente ho inserito anche un flag (log_bot) che mi indica se se la visita arriva da un utente normale o da uno spider. Questo per facilitare le query e non appesantire il DBMS server.

    Home
    Torna alla home page