Visualizzazione risultati 1 fino 6 di 6

Discussione: Passaggio a una versione superiore di PHP rispetto alla attuale 5.2.17

  1. #1
    Guest

    Predefinito Passaggio a una versione superiore di PHP rispetto alla attuale 5.2.17

    Ciao, a tutti.

    Vorrei sapere quando avverrà il passaggio ad una versione più nuova di PHP rispetto a quella presente ora su Altervista.
    Con <?php info() ?> vedo che per ora siete fermi alla "vecchiotta" PHP 5.2.17 mentre in locale con Xampp ad esempio io uso la PHP Version 5.4.7.
    Chiedo questo perché il supporto per la nuova ed utilissima API di PHP - PDO - potrebbe essere migliore con una versione più recente di PHP.

    Infatti non riuscivo a capire - studiando questa PDO - come mai in locale riuscivo a connettermi al mio db in questo modo (indicando anche il charset per visualizzare correttamente le vocali accentate tipiche dell'italiano) (p.s. i db li creo sempre con ad esempio già indicando la giusta codifica ovvero:

    CREATE DATABASE pinco_pallino character set utf8 collate utf8_general_ci; )

    Codice PHP:
    <?php

    include_once 'db_access.php';

    try
    {
    $pdo = new PDO("mysql:host=$host;dbname=$db_name;charset=utf8", $db_user, $db_psw);
    }
    catch (
    PDOException $e)
    {
    echo
    "Error!: " . $e->getMessage() . "<br />";
    die();
    }

    ?>
    Infatti il manuale PHP dice che solo dalla versione 5.3.6 in su viene supportato un codice come sopra, dove indico il charset in utf8.

    ecco il link:

    http://php.net/manual/en/mysqlinfo.concepts.charset.php

    ho provato anche come indicano qui:

    http://php.net/manual/en/ref.pdo-mysql.connection.php

    ma non funziona!!!!

    Per aggirare il problema un utente suggerisce, in questa ultima pagina che ho indicato, di fare come segue:

    Codice PHP:
    <?php
    include_once 'db_access.php';
    try
    {
    $pdo = new PDO("mysql:host=$host;dbname=$db_name;", $db_user, $db_psw);

    $pdo->exec("set names utf8");
    }
    catch (
    PDOException $e)
    {
    echo
    "Error!: " . $e->getMessage() . "<br />";
    die();
    }
    ?>
    Grazie a tutti e attendo news. Ciao e buone feste.

  2. #2
    Guest

    Predefinito

    Chiedo scusa.
    Anche se avevo cercato, non avevo trovato un post similare che invece era proprio qui sotto.

    Sono passato alla versione, entrando in Altersito => Impostazioni PHP, dalla default 5.2 alla 5.3.10 ma il problema sussiste.
    Infatti per uno script con charset indicato sopra il manuale richiede espressamente una versione dalla 5.3.6 e superiori.

    Va beh, ciao.
    Ultima modifica di neoutentilinux : 19-12-2012 alle ore 11.00.11

  3. #3
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    La versione 5.3.10 e' maggiore di 5.3.6
    Gianluca

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da Gianluca Visualizza messaggio
    La versione 5.3.10 e' maggiore di 5.3.6
    dovrebbe essere così, ma il codice che uso in locale e che ho indicato sopra NON VA ANCORA sul mio sito online. Se provo ad iscrivermi dal mio form con nomi come Pippò, Iguazzù, Canicattì ecc. vedo tutte le lettere distorte mentre in locale tutto è ok.
    Provato una decina di volte almeno.

    Forse ci vuole qualche ora prima che il passaggio dal vecchio PHP 5.2 al nuovo PHP 5.3.10 diventi effettivo?
    Che ne dici?
    Grazie e ciao.
    Ultima modifica di neoutentilinux : 19-12-2012 alle ore 13.09.26

  5. #5
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    neoutentilinux:

    il cambio di versione php è immediato, lo puoi comunque verificare per sicurezza chiamando phpinfo();

    Sopra hai menzionato:

    $pdo->exec("set names utf8");
    Ma non mi è chiaro se risolve o meno il problema.
    Gianluca

  6. #6
    Guest

    Predefinito

    Ciao,

    In effetti il cambiamento di versione è alla 5.3.10, come ho constatato con info(), ma come ti dicevo l'unico modo per risolvere il problema degli accenti con la nuova API - PDO - è appunto inserire quella istruzione che hai citato anche tu ovvero, ripeto racchiudere nel classico costrutto try/catch i dati per la connessione,e qui eseguire la query tramite il metodo exec() per settare nel modo corretto il charset ad utf8.
    Vorrei sapere se sono l'unico - usando il PDO chiaramente - ad avere questo problema su Altervista.
    Mi sembra strano.
    Comunque per ora, questo script funziona perfettamente e si visualizzano le vocali accentate in modo corretto su ogni tabella del db, con il PHP Version 5.3.10.


    Ripeto qui lo script - magari può essere utile anche ad altri.

    Codice PHP:
    <?php

    include_once 'db_access.php';

    try
    {
    $pdo = new PDO("mysql:host=$host;dbname=$db_name;", $db_user, $db_psw);

    $pdo->exec("set names utf8");
    }
    catch (
    PDOException $e)
    {
    echo
    "Error!: " . $e->getMessage() . "<br />";
    die();
    }
    ?>
    Vorrei sapere se altri utenti hanno il medesimo problema.
    Ciao.
    Ultima modifica di neoutentilinux : 19-12-2012 alle ore 21.53.30

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •