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