All Free <Script>

tips and tricks per webmaster

Come risolvere l’errore “call to undefined function mysql connect”

10 Marzo 2024        

Se ricevi questo errore vuol dire che hai eseguito l’aggiornamento da php5 a php7 e ora mysql_connect da errore questo vuol dire che stai utilizzando librerie deprecate.

Ora ti trovi di fronte al compito di aggiornare tutte le tue mysql_* funzioni con mysqli_* functions.

Per risolvere il problema abbiamo due possibilità:

  1. Modificare tutti gli script php che hanno le vecchie MySQL Function con le nuove funzioni (sto parlando di PDO e MySQLi).
  2. Con questo metodo è invece possibile bypassare il problema attraverso una semplice inclusione di uno script, una libreria che sovrascriva le vecchie funzioni MySQL

Lo script dovrà essere incluso nella prima riga di ogni pagina che richieda l’aggiornamento così:

include_once('mysql-fix.php');

Ottenere dati json da un database con php

12 Novembre 2019        

Vediamo come recuperare dati da un database mysql e convertirli nel formato json tramite il linguaggio php.

<?php
header("Content-Type: application/json; charset=iso-8859-1");
//Connessione al database 
$con = mysqli_connect("hostname", "username", "password", "database name");
// Effetto una query per recuperare tutti i dati dal database
$query = "SELECT * from tabella";
$result = mysqli_query($con, $query);
$arr = array();
if(mysqli_num_rows($result) != 0) {
	while($row = mysqli_fetch_assoc($result)) {
		$arr[] = $row;
	}
}
// Restituisce l'array json contenente i dati dal database
echo $json_info = json_encode($arr);
?>

Vediamo ora come recuperare i dati dal database di Microsoft Access con php

<?php
    header("Content-Type: application/json; charset=iso-8859-1");

    //percorso fisico per la connessione al database
    $db = "c:\inetpub\wwwroot\json_asp\mdb-database\database.mdb";
    $sc = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" . $db . ";";

    // Creo due oggetti COM contenenti gli oggetti Connection e Recordset
    $cn = new COM("ADODB.Connection");
    $rs = new COM("ADODB.Recordset");

    // Apro la Connection ed il Recordset
    $cn->Open($sc);
    $rs->Open("SELECT * FROM galleria", $cn);

    $outp = "[";
    while($rs->EOF == FALSE) {
    if ($outp != "[") {$outp .= ",";}
    $outp .= '{"Titolo":"'  . $rs["titolo"] . '",';
    $outp .= '"Immagine":"'. $rs["nome_file"]     . '"}';
    $rs->MoveNext();
    }
    $outp .="]";

    echo($outp);
?>

Nota bene: su Aruba con hosting windows la connessione al database access con php non è consentita per motivi di sicurezza.

Per verificare la correttezza di un file JSON è possibile utilizzare uno tanti tool online come JSONLint.

Upload multiplo di immagini con anteprima

18 Ottobre 2018        

Vediamo come realizzare un upload multiplo, in un unico file php ad esempio upload.php, con le anteprime delle immagini prima di essere caricate sul server. Di seguito lo script:

Codice html

<form name="uploadform" enctype="multipart/form-data" action="" method="post">
<input id="files" name="file[]" type="file" multiple="multiple" accept="image/*" />
<input type="submit" name="invio" value="Invia">
<div id="selectedFiles"></div>
</form>

Codice javascript per la visualizzazione delle anteprime delle immagini da inserire dopo la chiusura del tag </form>

<script type="text/javascript">
   var selDiv = "";	
             document.addEventListener("DOMContentLoaded", init, false);
                function init() {
                    document.querySelector('#files').addEventListener('change', handleFileSelect, false);
                    selDiv = document.querySelector("#selectedFiles");
                }
                function handleFileSelect(e) {
                    if(!e.target.files || !window.FileReader) return;
                    selDiv.innerHTML = "";
                    var files = e.target.files;
                    var filesArr = Array.prototype.slice.call(files);
                    filesArr.forEach(function(f) {
                        if(!f.type.match("image.*")) {
                            return;
                        }
                        var reader = new FileReader();
                        reader.onload = function (e) {
                            var html = "<img src=\"" + e.target.result + "\"><br>" + f.name + "<br>";
                            selDiv.innerHTML += html;				
                        }
                        reader.readAsDataURL(f); 
                    });
                }
</script>

Codice php per l’invio dei file da inserire prima dell’apertura del tag <form>

<?php
                $maxSize = 3000; //massima dimensione dei file in kilobyte
                $acceptType = array( //tipi di file accettati, in questo caso solo immagini
                     'png' => 'image/png',
                     'jpe' => 'image/jpeg',
                     'jpeg' => 'image/jpeg',
                     'jpg' => 'image/jpeg',
                     'gif' => 'image/gif',
                     'bmp' => 'image/bmp',
                     'ico' => 'image/vnd.microsoft.icon',
                );
            $cartella = "uploads/"; //cartella dove vengono caricati i file nel server
                for($i=0;$i<count ($_FILES['file']['name']);$i++)
                    echo "Risultato file ".($i+1).": ".multipleUpload($i, $cartella, $maxSize, $acceptType)."<br>";

               function multipleUpload($i, $cartella, $maxSize, $acceptType) {
                if(@$_FILES['file']['name'][$i] != "") {
                    $destinazione = $cartella.basename( $_FILES['file']['name'][$i]);
                    if($_FILES['file']['size'][$i] <= $maxSize*1024) {
                    if(in_array($_FILES['file']['type'][$i], $acceptType)) {
                        if(@move_uploaded_file($_FILES['file']['tmp_name'][$i], $destinazione))
                        return "File caricato con successo!";
                        else
                        return "Errore nell'upload del file";
                    }else
                        return "Tipo di file non accettato!";
                    }else
                    return "Dimensione del file troppo grande, massima dimensione accettata: ".$maxSize." kilobyte";
                }elseif(isset($_POST['invio']))
                    return "Nessun file inserito!";

                }
?>

Qui puoi trovare la demo senza la parte lato server php

Personalizzare un tema wordpress

3 Novembre 2015        

Vogliamo personalizzare un tema esistente ad esempio che si chiama miotema. Dentro la cartella themes creiamo una cartella e la chiamiamo miotema-child; a questo punto creiamo un file denominato style.css con questo codice:

/*
 Theme Name:   miotema Child Tema
 Theme URI:   http://www.sito.it
 Description:  robi Child Theme Personalizzato
 Author:       nome autore
 Author URI:   http://www.sito.it
 Template: miotema
 Version:      1.0
Tags: 3 colonne, clean, minimal
 Text Domain:  miotema-child
*/


/*qui inseriamo il codice css*/

Quello che non deve assolutamente mancare è la riga ‘Template: miotema’ che è il tema che andiamo a modificare. Ora possiamo richiamare il file css un un nuovo file denominato functions.php con questo codice:

<?php
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}
?>

Visualizzare i campi personalizzati in wordpress

1 Aprile 2015        

I campi personalizzati sono degli strumenti che WordPress mette a disposizione per aggiungere ulteriori informazioni alla pagina o al post. Per poterli visualizzare in una pagina php basta inserire il seguente codice di esempio:

<?php
 $campo1 = get_post_meta($post->ID, 'codice_prodotto', true);
 if($campo1): 
?>
 Codice: <?php echo $campo1;?>
 <?php endif; ?>

dove $campo1 rappresenta il il nome del campo personalizzato in questo caso ‘codice_prodotto’.