Home PHP
PHP
Resizing di immagini in PHP con Wideimage
Programmazione & Co.
Sabato 11 Febbraio 2012 12:22

Ho già parlato più volte di come effettuare il resizing di una immagine in PHP durante l'upload.

Però mi è stata suggerita quest'ottima libreria per manipolare e salvare immagini: Wideimage.

Con questa libreria è posibile fare anche il resizing, il cropping e il merging in maniera semplice.

Qui vederemo come fare l'upload e il resizing.

Com'è possibile vedere dalla documentazione è possibile passare alla funzione resize() anche solo l'altezza o la larghezza; in questi casi l'altro lato verrà ridimensionato in automatico mantenendo le proporzioni.

E questa è una cosa molto comoda.

Qui potete la doc abbastanza completa.

Nell'esempio useremo subito l'upload multiplo con il controllo sulla larghezza in modo tale che se è più larga di 500px venga ridimensionata.

Quindi partendo da questo form:

<form action="" method="post" name="news" enctype="multipart/form-data">
<input type="file" name="file[]" /><br/>
<input type="file" name="file[]" /><br/>
<input type="file" name="file[]" /><br/>
<input type="submit" value="Submit" name="btn_news" />
</form>

Che ha tre input file e quindi permette da 1 a 3 file contemporaneamente.

Ultimo aggiornamento Sabato 11 Febbraio 2012 12:49
 
Prepared Statement con MySQLi
Programmazione & Co.
Venerdì 13 Gennaio 2012 15:45

Anche se in genere uso PDO per connettermi a MySQL con PHP, per piccoli script può non valerne la pena.

Ma al posto di usare le classiche funzionu mysql_ ho iniziato a usare il mysqli, che ad oggi è strettamente consigliato.

Vediamo qui come eseguire istruzioni preparate (Pepared Statement) per inserire da in un db MySQL attraverso l'estensione MySQLi.

Vi posto il form:

<form action="" method="post">
 <label>Nome / Name:</label>
 <input type="text" value="" name="nome" />
 <label>Cognome / Surname:</label>
 <input type="text" value="" name="cognome" />
 <fieldset>
 <legend>Sex:</legend>
 <input type="radio" name="sex" value="m" />
 <label>M</label>
 <input type="radio" name="sex" value="f" checked="checked"  />
 <label>F</label>
 </fieldset>
 <label>E-mail:</label>
 <input type="text" value="" name="email" />
 <label>Nazione / Country:</label>
 <select name="nazione">
 <option>Italy</option>
 <option>UK</option>
 </select>
 <label>Lingua / Language:</label>
 <select name="lingua">
 <option>*</option>
 <option>Italiano</option>
 <option>English</option>
 </select>
 <fieldset>
 <legend>Privacy:</legend>
 <input type="checkbox" name="privacy" />
 <label>Agree</label>
 </fieldset>
 <fieldset>
 <button type="submit" name="btn_send">Submit</button>
 </fieldset>
 </form>

Un normale form.

Ultimo aggiornamento Sabato 14 Gennaio 2012 17:15
 
Redirect alla pagina pecedente in PHP
Programmazione & Co.
Giovedì 12 Gennaio 2012 13:55

La mia necessità era questa.

A una pagina, dove ho un form, posso arrivarci da varie altre pagine.

Una fatto il submit del form devo tornare alla pagina precedente.

Ovviamente il cassico header(url...) non basta.

Grazie ai consigli del forum.html.it siamo riuscit nell'intento in un'altra maniera.

Prima di tutto dentro al form mettete una cosa del genere:

echo '<input type="hidden" value="' . $_SERVER['HTTP_REFERER'] . '" name="redirect" />';

Un campo hidden valorizzato con una direttiva $_SERVER.

Ultimo aggiornamento Giovedì 12 Gennaio 2012 14:06
 
Leggere file di testo in PHP
Programmazione & Co.
Mercoledì 30 Novembre 2011 10:03

A volte capita di dover estrapolare informazioni da semplici file di testo invece che da database o file XML.

Oggi vi porto un esempio concreto.

Ho un'animazione Flash che usa un file XML per popolare l'animazione.

Gestire il contenuto di questo file XML però non è proprio una divertimento.

L'idea che mi è venuta è questa: creare un file PHP che ha come output un struttura XML e che prende il contenuto dal file di testo.

Così mi basta mettere/rimuovere solo poco contenuto dal file TXT.

Vediamo come si fa.

Prima di tutto il file TXT in questione è una cosa del genere:

Abbigliamento
Concorsi
Cucinare a bordo
Manutenzione Barca a Motore
Manutenzione Barca a Vela
News Saloni
Normative
Novità dai Cantieri
Regate
Directory Società
Itinerari
Manuali di bordo
Arcipelago Campano
Arcipelago Pontino

Dobbiamo quindi creare un file PHP che apre questo file, legge il contenuto e lo aggiunge a tag XML.

Ultimo aggiornamento Mercoledì 30 Novembre 2011 10:17
 
Identificare l'url corrente in PHP
Programmazione & Co.
Lunedì 14 Novembre 2011 15:40

L'array superglobale $_SERVER contiene parecchie informazioni interessanti.

Per vedere tutte le info che raccoglie potete andare a questo link ufficiale, oppure scrivere in una pagina PHP:

var_dump($_SERVER);

In verità ne abbiamo già parlato qua, ma solo per identificare l'indirizzo IP dell'utente che visita la pagina.

Ultimo aggiornamento Lunedì 14 Novembre 2011 15:49
 
Creare grafici in PHP con PHPGraphLib
Programmazione & Co.
Mercoledì 02 Novembre 2011 10:28

Per creare grafici in PHP ci sono diverse librerie da poter usare.

Io per ora mi sono trovatp abbastanza bene con PHPGraphLib.

Vediamo come usare questa libreria.

Prima di tutto scaricatela da qua.

La struttura da dare in pasto al grafico è un array di questo tipo:

$data=array("Jan"=>1324, "Feb"=>1200, "Mar"=>100, "Apr"=>1925, "May"=>1444, "Jun"=>-10, "Jul"=>364, "Aug"=>221, "Sep"=>-30, "Oct"=>848, "Nov"=>719, "Dec"=>114);

Ovviamente vi farò un esempio estrapolando i dati da MySQL che è di sicuro quello che volete.

Create una pagina per rappresentare i dati; la mia è grafici.html:

<!DOCTYPE html>
<html>
 <head>
 <title></title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 </head>
 <body>
 <img src="/site/graph.php" />
 </body>
</html>

PHPGraphLib crea una immagine e quindi possiamo impostare come source il php dove metteremo tutto il codice.

Ultimo aggiornamento Mercoledì 02 Novembre 2011 11:42
 
Upload di immagini con resizing in PHP
Programmazione & Co.
Venerdì 28 Ottobre 2011 09:59

Ho già parlato a più riprese di come effettuare l'upload di immagini, ma non avevo mai considerato il resizing.

Quindi vi posto qua uno script che va a integrare quelli precedenti.

In pratica una volta fatto il submit del form vengono effettuate queste operazioni:

  • controllo della dimensione in KB
  • controllo dell'estensione
  • controllo sulle misure della foto

Passati questi controlli la foto viene uplodata e ridimensionata.

Ultimo aggiornamento Venerdì 28 Ottobre 2011 11:16
 
Eliminare le immagini con PHP e MySQL - parte 3
Programmazione & Co.
Lunedì 12 Settembre 2011 09:28

Ultima parte della serie.

L'articolo predente lo trovate qua.

Eravamo rimasti a come ordinare le foto della galleria.

Adesso vediamo come eliminarle.

Prima di tutto creiamo la funzione per l'eliminazione (usando PDO):

function delImg($nome) {
 global $config;
 try {
 $prepare = $config->getPdo()->prepare("DELETE FROM gallery WHERE nome=?");
 $prepare->execute(array(
 $nome
 ));
 } catch (Exception $e) {
 die($e->getMessage());
 }
}

La funzione è molto semplice e prevede una classica istruzione di DELETE.

Ultimo aggiornamento Domenica 23 Ottobre 2011 10:36
 
Ordinare foto con PHP, MySQL e jQuery - Parte 2
Programmazione & Co.
Mercoledì 03 Agosto 2011 08:50

Questo articolo è la continuzaione "naturale" di quest'altro.

In quell'articolo avevao messo su il db, fatto l'upload delle immagini e le abbiamo visualizzate.

Qui useremo jQuery, jQuery UI e AJAX per cambiare l'ordine delle immagini semplicemente trascinandole.

Cominciamo proprio dalla visualizzazione:

<form action="" method="post" enctype="multipart/form-data" name="modulo">
 <ul id="gallery">
 <?php
 $dirname = "../gallery/";
 foreach (showImg() as $file) {
 echo '<li id="foto_' . $file['id'] . '"><img src="' . $dirname . $file['nome'] . '" width="100"  heigth="100" alt="" /></li>';
 }
 ?>
 </ul>
</form>

showImg() è la funzione che esegue la query.

Come vedete le foto le vediamo in una lista (<li>).

Come id gli impostiamo un suffisso (foto) più l'id dell'immagine preso dal campo del db.

Come vedremo tra poco questo è fondamentale.

A questo punto scaricate jQuery e jQuery UI e includete tutto nella pagina:

<link rel="stylesheet" href="/site/jquery-ui-1.8.14.custom.css" type="text/css" />
<script type="text/javascript" src="/site/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="/site/jquery-ui-1.8.14.custom.min.js"></script>

Sempre nell'head della pagina mettiamo anche questo:

<script type="text/javascript">
 $(function() {
 $("#gallery").sortable({ // id di <ul>
 placeholder: 'ui-state-highlight',
 update: function(e, ui) {
 var order = $('#gallery').sortable('serialize'); // serializiamo i vari <li>
 $.post('', order); // chiamata AJAX post
 }
 });
 });
 </script>

Sulla galleria attiviamo sortable per fare in modo che le varie voci della lista siano trascinabili col mouse.

Inoltre la serializiamo.

Dopo di che facciamo una chiamata AJAX post passando la galleria serializzata.

Ultimo aggiornamento Domenica 20 Novembre 2011 16:28
 
Galleria di immagini in PHP e MySQL - Parte 1
Programmazione & Co.
Giovedì 28 Luglio 2011 09:46

In altri articoli ho già parlato di come fare l'upload di file, di come cancellarli, e di come visualizzarli.

Non ho mai tenuto in considerazione però la possibilità di affiancarci un db per l'ordinamento, eventuali didascalie, ecc.

Vediamo quindi come creare una galleria di immagini che ci permetterà di salvare il nome dei files e l'ordinamento su un db MySQL.

In questa prima parte vedremo la creazione del db e l'upload.

Prima di tutto dobbiamo creare un db e una tabella; la tabella che ci serve l'ho chiamata gallery e ha questa struttura:

  • id int auto increment primary key
  • nome varchar(100)
  • ordine int

Tutti sono not null.

Cominciamo con la parte PHP; considerate che io uso PDO sul quale potete vedere questi articoli:

Comunque potete usare anche le classiche funzioni mysql/mysqli.

Vi posto la mia classe per la connessione, così vi fate un'idea:

<?php

//config.php

class Config {

 private $pdo;
 private static $instance;

 private function __construct() {
 try {
 $this->pdo = new PDO('mysql:host=host;dbname=db', "user", "pass", array(
 PDO::ATTR_PERSISTENT => TRUE
 ));
 } catch (PDOException $e) {
 print "Error!: " . $e->getMessage() . "<br/>";
 die();
 }
 }

 public static function getInstance() {
 if (!isset(self::$instance)) {
 $c = __CLASS__;
 self::$instance = new $c;
 }
 return self::$instance;
 }

 public function __clone() {
 trigger_error('Clone is not allowed.', E_USER_ERROR);
 }

 public function getPdo() {
 return $this->pdo;
 }

 ...............

}

Non ve la sto a spiegare; comunque è una classe Singleton che dovete istanziare in questa maniera:

include_once 'config.php';
$config = Config::getInstance();

La funzione di inserimento è questa qua:

function insertImg($nome, $ordine) {
 global $config;
 try {
 $prepare = $config->getPdo()->prepare("INSERT gallery (nome, ordine) VALUES (?,?)");
 $prepare->execute(array(
 $nome,
 $ordine
 ));
 } catch (Exception $e) {
 die($e->getMessage());
 }
}

Ultimo aggiornamento Domenica 23 Ottobre 2011 10:38
 
Upload file in PHP
Programmazione & Co.
Lunedì 18 Luglio 2011 09:30

L'upload dei files è una cosa che prima o poi tutti i programmatori si trovano ad affronare.

Oggi vi posto e vi spiego come uplodare più immagini contemporaneamente in PHP.

Prima di tutto la parte HMTL; un form con 5 upload:

<form action="" method="post" enctype="multipart/form-data" name="form_upload">
 <table>
 <tr>
 <td>
 <input type="file" name="file[]" /> <br />
 <input type="file" name="file[]" /> <br />
 <input type="file" name="file[]" /> <br />
 <input type="file" name="file[]" /> <br />
 <input type="file" name="file[]" /> <br />
 </td>
 </tr>
 <tr>
 <td>
 <input type="submit" value="Upload" name="upload_img" />
 </td>
 </tr>
 </table>
</form>
 

E' un semplice form.

Come vedete il nome dei file è file[] con le parentesi quadre; questo è per fare in modo che PHP li tratti come array di dati.

Ultimo aggiornamento Domenica 23 Ottobre 2011 10:39
 
<< Inizio < Prec. 1 2 3 Succ. > Fine >>

Pagina 1 di 3