Archivi categoria: Web Editing

PHP: gestione delle date

Qui di seguito riporto uno stralcio di codice PHP che permette di verificare la validità della data e dell’ora inserita in un apposito campo di input testuale. Per la precisione tale codice può essere utilizzato nell’ambito dell’invio posticipato degli SMS. Se la data è futura o uguale a quella odierna e l’ora è strettamente maggiore di quella attuale, l’SMS può essere salvato nel database in attesa dell’invio programmato.

if(isset($_POST['data']) && $_POST['data'] != '' && $_POST['data'] != 'Data')
{
$data = $_POST['data'];
if(preg_match('/^[0-9]{2}-{1}[0-9]{2}-{1}[0-9]{4}$/', $data) && strlen($data) <= 10) //il backslash (da inserire prima dei "-") è il carattere di escape da usare poichè il "-" ha un significato anche nell'ambito dell'espressione regolare. Controllo inoltre (lato server) che la data inserita non sia costituita da più di 10 caratteri
{
$data1=explode("-",$data); //ricavo il giorno, il mese e l'anno usando il "-" come separatore

$giorno = $data1[0];
$mese = $data1[1];
$anno = $data1[2];
if (@checkdate($mese, $giorno, $anno) == TRUE) //nel caso in cui non è vera la condizione, devo silenziare l'errore restituito da checkdate (misura necessaria per contrastare eventuali attacchi basati sul blind SQL Injection
{ //se la data è corretta controllo l'ora
if(isset($_POST['ora']) && $_POST['ora'] != '' && $_POST['ora'] != 'Ora')
{
$ora = $_POST['ora'];
if(preg_match('/^[0-9]{2}:{1}[0-9]{2}:{1}[0-9]{2}/', $ora) && strlen($ora) <= 8)
{
$ora1=explode(":",$ora);
//con il casting converto la stringa in intero
$ore = (int) $ora1[0];
$minuti = (int) $ora1[1];
$secondi = (int) $ora1[2];
if ($ore <= 24 && $ore >= 00 && $minuti <= 59 && $minuti >= 00 && $secondi <= 59 && $secondi >= 00) //nel caso in cui non è vera la condizione, devo silenziare l'errore restituito da checkdate
{
$time = mktime($ore,$minuti,$secondi,$mese,$giorno,$anno);
if($time > time()) //se la data è futura
{
$datatotale = $anno . "-" . $mese . "-" . $giorno . " " . $ore . ":" . $minuti . ":" . $secondi;
}
}
else
{
$errore = 'Ora non valida';
}
}
else
{
$errore = 'Formato ora non valido';
}
}
else
{
$errore = "Devi scegliere l'ora in cui inviare il messaggio";
}
}
else
{
$errore = 'Data non valida';
}
}
else
{
$errore = 'Formato data non valido';
}
}
else
{   
$timestamp = time(); //se non è stata settata alcuna data utilizzo il timestamp attuale
$datatotale = date("Y-m-d H:i:s", $timestamp);
}

Il codice è ampiamente commentato. Per ulteriori chiarimenti non esitate a contattarmi. A presto.

PHP e Javascript: somma automatica su campi generati dinamicamente

Recentemente mi è capitato di dover calcolare automaticamente la somma dei valori contenuti all’interno di campi di input generati dinamicamente. Per fare ciò mi sono servito di un pò di codice Javascrip intervallato a codice PHP. Eccone uno stralcio:

<?php if(isset($count))
{
?>
function startCalc(){
interval = setInterval("calc()",1);
}
function calc(){
var array = new Array(<?php echo $count ?>);
var sum = 0;
<?php
for($i=1; $i<=$count; $i++)
{
?>
var valore<?php echo $i ?> = document.tariffe.subtotaletariffa<?php echo $i ?>.value;
<?php
}
for($i=1; $i<=$count; $i++)
{
?>
array[<?php echo $i ?>] = (valore<?php echo $i ?> * 1);
sum += array[<?php echo $i ?>];
<?php
}
?>
document.tariffe.totale.value = Math.round(sum*100)/100; <!--arrotondo alla seconda cifra decimale -->
}
function stopCalc(){
clearInterval(interval);
}

Per prima cosa memorizzo all’interno della variabile $count il numero di campi di input da stampare a video. Successivamente dichiaro un array dimensionato proprio in base a $count. Non mi resta quindi che calcolare la somma dei valori contenuti nei vari campi di input e successivamente reindirizzarli all’interno del campo “totale”. Il codice HTML (intervallato ad altro codice PHP) è il seguente:

<?php
if(isset($_POST['continua']));
{
$i = 1;
$j = 1;
while(@$riga = $risultato_tariffe->fetch_assoc())
{
?>
<label for="tariffa<?php echo $i?>">
<select name="tariffa<?php echo $i?>" tabindex="<?php echo $j?>" id="tariffa"> Tariffa: (*)    
<option><?php echo $riga['Nome']?></option>
</select>
</label>
<label for="numpastariffa<?php echo $i?>">
<input type="text" name="numpastariffa<?php echo $i?>" tabindex="<?php echo $j+1?>" id="numpastariffa<?php echo $i?>" onFocus="startCalc2();" onBlur="stopCalc2();" />numero passeggeri per tariffa: (*)
</label>
<label for="importo<?php echo $i?>">
<input type="text" name="importo<?php echo $i?>" tabindex="<?php echo $j+2?>" id="importo<?php echo $i?>" onFocus="startCalc3();" onBlur="stopCalc3();" />importo: (*)
</label>
<label for="subtotaletariffa<?php echo $i?>">
<input type="text" name="subtotaletariffa<?php echo $i?>" tabindex="<?php $j=$j+3; echo $j?>" id="subtotaletariffa<?php echo $i?>" onFocus="startCalc();" onBlur="stopCalc();" />subtotale tariffa: (*)
</label>
<?php
$i++;
$j++;
}
$risultato_tariffe->);
}
?>

dove la variabile $i viene utilizzata per assegnare il nome ai vari campi, mentre $j è una semplice variabile di appoggio utilizzata nell’ambito dei tabindex. Per uteriori chiarimenti contattatemi. A presto.

PHP: script che converte i numeri decimali in binari

Come da titolo, ecco un piccolo scrip in php che converte i numeri decimali in binari:

<?php
$stringa=$_POST['stringa'];
if(!isset($stringa))
{
    echo"Devi inserire il numero da convertire<br>";
    echo"<A href="javascrip:history.back()">Torna indietro</A><br>";
    die();
}
if(!ereg("^[0-9]*$", $stringa))
{
    echo"Hai inserito caratteri non validi (solo valori numerici positivi)<br>";
    echo"<A href="javascrip:history.back()">Torna indietro</A><br>";
    die();
}
if($stringa>255)
{
    echo"Devi inserire un valore valido (max 255)<br>";
    echo"<A href="javascrip:history.back()">Torna indietro</A><br>";
    die();
}
$risultato=decbin($stringa);
echo"Il valore corrispondente è $risultato<br>";
?>

Il codice HTML è il seguente:

<html>
 <head>
 <title>Converter</title>
 </head>
 <body>
 <form action="Converter.php" method="POST">
 <fieldset>
     <legend> Inserisci il valore decimale da convertire in binario (max 256) </legend>
     <input type="text" name="stringa" id="stringa" />
     <input type="submit" name="submit" value="invia" />
 </fieldset>
 </form>
 </body>
 </html>

A presto. 

 

PHP: check per il codice fiscale (versione ottimizzata)

Ecco la versione ottimizzata dello scrip per il check del codice fiscale:

<?php
if(!isset($_POST['cf']))
{
    echo"Devi inserire il codice fiscale <br>";
    echo"<A href=\"javascript:history.back()\">Torna indietro</A><br>";
    die();
}
if(strlen($_POST['cf'])!=16)
{
    echo"Codice fiscale non valido <br>";
    echo"<A href=\"javascript:history.back()\">Torna indietro</A><br>";
    die();
}
if(!eregi("^[A-Z0-9]+$", $_POST['cf']))
{
    echo"Hai inserito caratteri non validi per il codice fiscale<br>";
    echo"<A href=\"javascript:history.back()\">Torna indietro</A><br>";
    die();
}
$stringa=strtoupper($_POST['cf']);
echo"$stringa<br>";
for($i=0; $i<15; $i++)
{    
    if (($i+1)%2 == 0)
    {    
            switch($stringa[$i])
            {
            case '0': $valore[$i]='0'; break;
            case '1': $valore[$i]='1'; break;
            case '2': $valore[$i]='2'; break;
            case '3': $valore[$i]='3'; break;
            case '4': $valore[$i]='4'; break;
            case '5': $valore[$i]='5'; break;
            case '6': $valore[$i]='6'; break;
            case '7': $valore[$i]='7'; break;
            case '8': $valore[$i]='8'; break;
            case '9': $valore[$i]='9'; break;
            case 'A': $valore[$i]='0'; break;
            case 'B': $valore[$i]='1'; break;
            case 'C': $valore[$i]='2'; break;
            case 'D': $valore[$i]='3'; break;
            case 'E': $valore[$i]='4'; break;
            case 'F': $valore[$i]='5'; break;
            case 'G': $valore[$i]='6'; break;
            case 'H': $valore[$i]='7'; break;
            case 'I': $valore[$i]='8'; break;
            case 'J': $valore[$i]='9'; break;
            case 'K': $valore[$i]='10'; break;
            case 'L': $valore[$i]='11'; break;
            case 'M': $valore[$i]='12'; break;
            case 'N': $valore[$i]='13'; break;
            case 'O': $valore[$i]='14'; break;
            case 'P': $valore[$i]='15'; break;
            case 'Q': $valore[$i]='16'; break;
            case 'R': $valore[$i]='17'; break;
            case 'S': $valore[$i]='18'; break;
            case 'T': $valore[$i]='19'; break;
            case 'U': $valore[$i]='20'; break;
            case 'V': $valore[$i]='21'; break;
            case 'W': $valore[$i]='22'; break;
            case 'X': $valore[$i]='23'; break;
            case 'Y': $valore[$i]='24'; break;
            case 'Z': $valore[$i]='25'; break;
            }
    
    }    

    else
    {
        switch($stringa[$i])
        {
            case '0': $valore[$i]='1'; break;
            case '1': $valore[$i]='0'; break;
            case '2': $valore[$i]='5'; break;
            case '3': $valore[$i]='7'; break;
            case '4': $valore[$i]='9'; break;
            case '5': $valore[$i]='13'; break;
            case '6': $valore[$i]='15'; break;
            case '7': $valore[$i]='17'; break;
            case '8': $valore[$i]='19'; break;
            case '9': $valore[$i]='21'; break;
            case 'A': $valore[$i]='1'; break;
            case 'B': $valore[$i]='0'; break;
            case 'C': $valore[$i]='5'; break;
            case 'D': $valore[$i]='7'; break;
            case 'E': $valore[$i]='9'; break;
            case 'F': $valore[$i]='13'; break;
            case 'G': $valore[$i]='15'; break;
            case 'H': $valore[$i]='17'; break;
            case 'I': $valore[$i]='19'; break;
            case 'J': $valore[$i]='21'; break;
            case 'K': $valore[$i]='2'; break;
            case 'L': $valore[$i]='4'; break;
            case 'M': $valore[$i]='18'; break;
            case 'N': $valore[$i]='20'; break;
            case 'O': $valore[$i]='11'; break;
            case 'P': $valore[$i]='3'; break;
            case 'Q': $valore[$i]='6'; break;
            case 'R': $valore[$i]='8'; break;
            case 'S': $valore[$i]='12'; break;
            case 'T': $valore[$i]='14'; break;
            case 'U': $valore[$i]='16'; break;
            case 'V': $valore[$i]='10'; break;
            case 'W': $valore[$i]='22'; break;
            case 'X': $valore[$i]='25'; break;
            case 'Y': $valore[$i]='24'; break;
            case 'Z': $valore[$i]='23'; break;
        }
    }
}

for($i=0; $i<15; $i++)
    $somma+=$valore[$i];

$controllo=$somma%26;


switch($controllo)
{
    case '0': $letteracontrollo='A'; break;
    case '1': $letteracontrollo='B'; break;
    case '2': $letteracontrollo='C'; break;
    case '3': $letteracontrollo='D'; break;
    case '4': $letteracontrollo='E'; break;
    case '5': $letteracontrollo='F'; break;
    case '6': $letteracontrollo='G'; break;
    case '7': $letteracontrollo='H'; break;
    case '8': $letteracontrollo='I'; break;
    case '9': $letteracontrollo='J'; break;
    case '10': $letteracontrollo='K'; break;
    case '11': $letteracontrollo='L'; break;
    case '12': $letteracontrollo='M'; break;
    case '13': $letteracontrollo='N'; break;
    case '14': $letteracontrollo='O'; break;
    case '15': $letteracontrollo='P'; break;
    case '16': $letteracontrollo='Q'; break;
    case '17': $letteracontrollo='R'; break;
    case '18': $letteracontrollo='S'; break;
    case '19': $letteracontrollo='T'; break;
    case '20': $letteracontrollo='U'; break;
    case '21': $letteracontrollo='V'; break;
    case '22': $letteracontrollo='W'; break;
    case '23': $letteracontrollo='X'; break;
    case '24': $letteracontrollo='Y'; break;
    case '25': $letteracontrollo='Z'; break;
}
if($stringa[15]!=$letteracontrollo)
    echo"Il codice fiscale inserito non è valido";
?>

A presto.

PHP: check per il codice fiscale

Ecco uno scrip che effettua il check del codice fiscale (calcola cioè la lettera di controllo e verifica se quella inserita dall’utente corrisponde con essa). 

<?php
if(!isset($_POST['cf']))
{
    echo"Devi inserire il codice fiscale <br>";
    echo"<A href=\"javascript:history.back()\">Torna indietro</A><br>";
    die();
}
if(strlen($_POST['cf'])!=16)
{
    echo"Codice fiscale non valido <br>";
    echo"<A href=\"javascript:history.back()\">Torna indietro</A><br>";
    die();
}
if(!eregi("^[A-Z0-9]+$", $_POST['cf']))
{
    echo"Hai inserito caratteri non validi per il codice fiscale<br>";
    echo"<A href=\"javascript:history.back()\">Torna indietro</A><br>";
    die();
}
$stringa=strtoupper($_POST['cf']);
echo"$stringa<br>";
$stringamodificata="0$stringa"; //0 carattere fittizio di inizio stringa
for($i=0; $i<17; $i++)
    $carattere[$i]=substr($stringamodificata, $i, 1);
for($i=1; $i<16; $i++)
{    
    if ($i%2 == 0)
    {    
            switch($carattere[$i])
            {
            case '0': $valore[$i]='0'; break;
            case '1': $valore[$i]='1'; break;
            case '2': $valore[$i]='2'; break;
            case '3': $valore[$i]='3'; break;
            case '4': $valore[$i]='4'; break;
            case '5': $valore[$i]='5'; break;
            case '6': $valore[$i]='6'; break;
            case '7': $valore[$i]='7'; break;
            case '8': $valore[$i]='8'; break;
            case '9': $valore[$i]='9'; break;
            case 'A': $valore[$i]='0'; break;
            case 'B': $valore[$i]='1'; break;
            case 'C': $valore[$i]='2'; break;
            case 'D': $valore[$i]='3'; break;
            case 'E': $valore[$i]='4'; break;
            case 'F': $valore[$i]='5'; break;
            case 'G': $valore[$i]='6'; break;
            case 'H': $valore[$i]='7'; break;
            case 'I': $valore[$i]='8'; break;
            case 'J': $valore[$i]='9'; break;
            case 'K': $valore[$i]='10'; break;
            case 'L': $valore[$i]='11'; break;
            case 'M': $valore[$i]='12'; break;
            case 'N': $valore[$i]='13'; break;
            case 'O': $valore[$i]='14'; break;
            case 'P': $valore[$i]='15'; break;
            case 'Q': $valore[$i]='16'; break;
            case 'R': $valore[$i]='17'; break;
            case 'S': $valore[$i]='18'; break;
            case 'T': $valore[$i]='19'; break;
            case 'U': $valore[$i]='20'; break;
            case 'V': $valore[$i]='21'; break;
            case 'W': $valore[$i]='22'; break;
            case 'X': $valore[$i]='23'; break;
            case 'Y': $valore[$i]='24'; break;
            case 'Z': $valore[$i]='25'; break;
            }
    
    }    

    else
    {
        switch($carattere[$i])
        {
            case '0': $valore[$i]='1'; break;
            case '1': $valore[$i]='0'; break;
            case '2': $valore[$i]='5'; break;
            case '3': $valore[$i]='7'; break;
            case '4': $valore[$i]='9'; break;
            case '5': $valore[$i]='13'; break;
            case '6': $valore[$i]='15'; break;
            case '7': $valore[$i]='17'; break;
            case '8': $valore[$i]='19'; break;
            case '9': $valore[$i]='21'; break;
            case 'A': $valore[$i]='1'; break;
            case 'B': $valore[$i]='0'; break;
            case 'C': $valore[$i]='5'; break;
            case 'D': $valore[$i]='7'; break;
            case 'E': $valore[$i]='9'; break;
            case 'F': $valore[$i]='13'; break;
            case 'G': $valore[$i]='15'; break;
            case 'H': $valore[$i]='17'; break;
            case 'I': $valore[$i]='19'; break;
            case 'J': $valore[$i]='21'; break;
            case 'K': $valore[$i]='2'; break;
            case 'L': $valore[$i]='4'; break;
            case 'M': $valore[$i]='18'; break;
            case 'N': $valore[$i]='20'; break;
            case 'O': $valore[$i]='11'; break;
            case 'P': $valore[$i]='3'; break;
            case 'Q': $valore[$i]='6'; break;
            case 'R': $valore[$i]='8'; break;
            case 'S': $valore[$i]='12'; break;
            case 'T': $valore[$i]='14'; break;
            case 'U': $valore[$i]='16'; break;
            case 'V': $valore[$i]='10'; break;
            case 'W': $valore[$i]='22'; break;
            case 'X': $valore[$i]='25'; break;
            case 'Y': $valore[$i]='24'; break;
            case 'Z': $valore[$i]='23'; break;
        }
    }
}

for($i=1; $i<16; $i++)
    $somma+=$valore[$i];
$controllo=$somma%26;

switch($controllo)
{
    case '0': $letteracontrollo='A'; break;
    case '1': $letteracontrollo='B'; break;
    case '2': $letteracontrollo='C'; break;
    case '3': $letteracontrollo='D'; break;
    case '4': $letteracontrollo='E'; break;
    case '5': $letteracontrollo='F'; break;
    case '6': $letteracontrollo='G'; break;
    case '7': $letteracontrollo='H'; break;
    case '8': $letteracontrollo='I'; break;
    case '9': $letteracontrollo='J'; break;
    case '10': $letteracontrollo='K'; break;
    case '11': $letteracontrollo='L'; break;
    case '12': $letteracontrollo='M'; break;
    case '13': $letteracontrollo='N'; break;
    case '14': $letteracontrollo='O'; break;
    case '15': $letteracontrollo='P'; break;
    case '16': $letteracontrollo='Q'; break;
    case '17': $letteracontrollo='R'; break;
    case '18': $letteracontrollo='S'; break;
    case '19': $letteracontrollo='T'; break;
    case '20': $letteracontrollo='U'; break;
    case '21': $letteracontrollo='V'; break;
    case '22': $letteracontrollo='W'; break;
    case '23': $letteracontrollo='X'; break;
    case '24': $letteracontrollo='Y'; break;
    case '25': $letteracontrollo='Z'; break;
}
if($carattere[16]!=$letteracontrollo)
    echo"Il codice fiscale inserito non è valido"; 
?>

A presto.

PHP: Piccolo script per l’interrogazione di un DB e la visualizzazione dei risultati

Ecco a voi un semplice scrip che si connette al server MySQL, specifica il DB e successivamente effettua una query su quest’ultimo. I risultati dell’interrogazione vengono infine stampati a video.

<?php
$server='localhost:3306';
$nome_utente='root';
$db='test';

echo"Connessione al server...<br>";
sleep(10);
if(mysql_connect($server, $nome_utente)==FALSE)
    echo"Impossibile connettersi al DBMS";
else
    echo"Connessione avvenuta con successo<br>";
if (mysql_select_db($db)==FALSE)
    echo"Impossibile accedere al DB";
else
{
$query="SELECT * FROM professionista WHERE Tipologia="Avvocato"";
echo"Eseguo la query<br>";
$risultato=mysql_query($query);

if($risultato==FALSE)
    echo"Query non valida: mysql_error()<br>";

else

while($riga=mysql_fetch_array($risultato))

    echo"$riga[ID] $riga[Tipologia] $riga[Nome] $riga[Cognome] <br> ";

mysql_free_result($risultato);//libera la memoria utilizzata per $risultato

}
?>

A presto! 

PS: l’editor del post non mi permette di inserire il carattere di escape (backslash) prima delle due virgolette che racchiudono ‘Avvocato’ all’interno della query. Aggiungetelo se intendete adoperare questo script.

PHP: Piccolo script per il salvataggio di password su file testuale

Ecco un piccolo scrip che permette di eseguire il salvataggio di password su file testuale. Le password, ovviamente, non verranno memorizzate in chiaro, ma solo dopo aver effettuato l’hashing (SHA-2, nella fattispecie SHA-512).

<?php
$filename='password.txt';
if (!isset($_POST['nomeutente']))
{
    echo"Inserisci il nome utente <br>";
    echo"<A href="javascript:history.back()">Torna indietro</A><br>";
    die();
}
if (!isset($_POST['pass']))
{
    echo"Inserisci la password <br>";
    echo"<A href="javascript:history.back()">Torna indietro</A><br>";
    die();
}

$password=hash('sha512',$_POST['pass']);

if (is_writable($filename)) //il file esiste ed è riscrivibile
{
    $puntatore=f$filename, 'a'); //append mode, apre il file in scrittura e punta alla fine dello stesso
    if(!isset($puntatore))
        die("Impossibile aprire il file in scrittura <br>");
    $scrittura=fwrite($puntatore, $password);
    if($scrittura==FALSE)
        die("Impossibile scrivere sul file <br>");
    f$puntatore);
    echo"Scrittura eseguita con successo<br>";
}
else
    die("Il file non è accessibile <br>");
?>

Il codice HTML è il seguente: 

<html>
<head>
<title> Prova inserimento password </title>
</head>
<body>
    <form method="POST" action="sha.php">
    <fieldset>
        <legend> Inserisci nome utente e password </legend>
            <input type="text" name="nomeutente" id="nomeutente" maxlength="20" /> Nome utente </br>
            <input type="password" name="pass" id="pass" />    Password </br>
            <input type="submit" name="invia" id="invia" value="Invia" />
    </fieldset>
    </form>
</body>
</html>

Per ulteriori informazioni relative alle funzioni f), fwrite() ed f) andate qui. A presto. 

Piccola espressione regolare per il controllo del Codice Fiscale

Qui di seguito riporto una breve espressione regolare per la verifica del C.F. inserito dall’utente mediante apposito form:

^[a-zA-Z]{6}[0-9]{2}[abcdehlmprstABCDEHLMPRST]{1}[0-9]{2}([a-zA-Z]{1}

[0-9]{3})[a-zA-Z]{1}$

/*tra le tonde vi è l'identificativo del comune (codice catastale). Le lettere elencate (abcd ecc.) indicano il mese di nascita mentre l'ultima lettera è quella di controllo.*/

A presto. 

PHP: Piccolo form per l’invio di email tramite web

Ecco un piccolo form (con annesso codice PHP) per inviare email mediante pagina Web:

<?php

/* php mail sender - edited by nightfly */
//controllo che la stringa rispetti il formato classico di una mail  

if(!preg_match( '/^[w.-]+@w+[w.-]*?.w{1,4}$/', $_POST['mittente']))
    die("Indirizzo email non valido");   

else
{
 if(empty($_POST['messaggio']))
    {
    echo"Inserisci il messaggio da inoltrare allo staff di Uniappunti.it<br>";
    echo"<A href="javascript:history.back()">Torna indietro</A><br>";
        }
 else
    {
    mail("indirizzodestinatario@provider.it", $_POST['oggetto'], $_POST['messaggio'], "From: ".$_POST['mittente']);
    echo"Messaggio inviato con successo<br>";
    echo"<A href="javascript:history.back()">Torna indietro</A><br>";
    print($_POST['messaggio']);
        }
}
?>

Il codice HTML è il seguente: 

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form method="post" action="mail.php">
    <fieldset>
        <legend>Usa il modulo sottostante per inviare un messaggio allo staff di Uniappunti.it</legend>
            <input type="text" name="mittente" id="mittente" /> Indirizzo di posta elettronica <br /> <br />
            <input type="text" name="oggetto" id="oggetto" /> Oggetto del messaggio <br /> <br />
            <textarea name="messaggio" id="messaggio" cols="50" rows="10"> </textarea> <br /> <br />
            <input type="submit" name="invia" id="invia" value="Invia il messaggio" /> <br /> <br />
     </fieldset>
</form>       
        
</body>
</html>

Ovviamente, potete personalizzare lo script secondo le vostre esigenze. A presto.

NB: Per far funzionare il tutto dovete impostare correttamente il server SMTP nella sezione [mail] del file php.ini. 

PHP: semplice form per l’upload

Ecco un semplice form per l’upload di file basato esclusivamente sull’array superglobale $_FILES.

 <?php
/*php file uploader - edited by Nazareno Latella*/

define("UPLOAD_DIR", "./uploadtest/");

if(isset($_POST['action']) and $_POST['action'] == 'upload')
{   
    if((isset($_FILES['user_file'])) && (is_uploaded_file($_FILES['user_file']['tmp_name'])))
    {    
    if($_FILES['user_file']['size'] > 50000000)
    {
        echo"File di dimensioni eccessive (max 50 MB). Aborting...<br>";
        echo"<A href="javascrip:history.back()">Torna indietro</A><br>";
    }
    else
        echo"Checking size... <b>OK</b> <br>";    
        if(($_FILES['user_file']['type'] != "application/pdf") && ($_FILES['user_file']['type'] != "application/zip") && ($_FILES['user_file']['type'] != "application/x-rar-compressed"))
    {    
        echo"Tipo di file non autorizzato (solo *.rar *.zip *.pdf). Aborting...<br>";
                echo"<A href="javascrip:history.back()">Torna indietro</A><br>";
    }
    else
    {
        echo"Checking type... <b>OK</b> <br>";
        move_uploaded_file($_FILES['user_file']['tmp_name'], UPLOAD_DIR.$_FILES['user_file']['name']);
        echo "Il file da te caricato è: <br>";
        print ("Nome: ".$_FILES["user_file"]["name"]);
        print "<br>";
        print ("Tipo: ".$_FILES['user_file']['type']);
        print "<br>";
        print ("Dimensione: ".$_FILES['user_file']['size']);
        echo"<A href="javascrip:history.back()">Torna indietro</A><br>";
    }
    }
}
else
    {
    echo"non è stata definita alcuna operazione di upload<br>";
    echo"<A href="javascrip:history.back()">Torna indietro</A><br>";
    }    
?>

Il codice della pagina *.html da cui selezionare ed inviare il file è:

<html>
    <head>
        <title>File upload</title>
    </head>
    <body>
        <form method="post" action="uploader.php" enctype="multipart/form-data">
            <input type="hidden" name="action" value="upload" />
            <label>Carica il tuo file:</label>
            <input type="file" name="user_file" />
            <br />
            <input type="submit" value="Carica online" />
        </form>
    </body>
</html>

Ovviamente, essendo una semplice pagina html, potete personalizzare il codice secondo le vostre esigenze, mantenendo però invariato l’attributo “name” dei tag <input>.

A presto.