Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    15

    visualizzazione diversa su secondo hosting

    salve a tutti,
    forse qualcuno mi può aiutare a non perdere troppo tempo in un problema che mi capita per la prima volta, anche se non sono proprio esperto di php (conosco molto meglio asp e vbscript)
    sto facendo un piccolo sito in php che, in locale mi funziona perfettamente in tutti i sensi, ma sul server (che è linux, mentre sul mio pc c'è windows xp pro) succede questa cosa che non riesco in questo momento a spiegare: visualizzazione anomala (testi sovrapposti, immagini fuori posto) come se il css in parte non funzionasse, e poi non mi da alcuni print di variabili nel senso che non le legge come se non ci fossero o come se il timeout della session fosse impostato a 0; un gran casino che invece, su server diverso (aruba:windows) le stesse identiche pagine non mi procurano alcun problema: visualizzazione perfetta e tutto il resto che funziona perfettamente.
    Ho pensato che si tratti di qualche impostazione nel php sul server, ho fatto il phpinfo() su ambedue, e ho visto che ci sono delle differenze, però prima di arrovellarmi il cervello per individuare il problema e capire come risolverlo, volevo provare a chiedere, poiché magari qualcuno più esperto di me conosce o capisce subito dovè il nodo da sciogliere. Grazie per chi mi vorrà dare un consiglio e/o anche una indicazione.

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Senza vedere il code o sito è difficile dire qualcosa, ma per esempio una differenza sarebbe il slash/backslash. Se usi dei percorsi che contengono dei \ funzionerà senza problemi su Windows ma mai su Unix.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    15
    posto il codice del file funzioni.php
    ----------------------------------------
    <?php
    function usaCarrello()
    {
    $carrello = $_SESSION['carrello'];
    if (!$carrello)
    {
    return 'Il tuo carrello è vuoto.
    ';
    }else{
    $carrello = @explode(',',$carrello);
    return 'Ci sono <a href="carrello/carrello.php">'.
    @count($carrello). ' articoli nel carrello.</a>
    ';
    }
    }


    function mostraCarrello()
    {
    global $db;
    $carrello = $_SESSION['carrello'];
    $somma = 0;
    if ($carrello)
    {
    $carrello = @explode(',',$carrello);
    $acquisti = array();
    foreach ($carrello as $prodotto)
    {
    $acquisti[$prodotto] = (@isset($acquisti[$prodotto])) ? $acquisti[$prodotto] + 1 : 1;
    }
    $result[] = '<form action="carrello.php?action=aggiorna" method="post" id="cart">';
    $result[] = '<table>';
    foreach ($acquisti as $id=>$quantita)
    {
    $sql = 'SELECT * FROM fotogallery WHERE id = '.$id;
    $res = $db->query($sql);
    $f = $res->fetch();
    @extract($f);
    $result[] = '<tr>';
    $result[] = '<td>Cancella</td>';
    $result[] = '<td>'.'cod.:'.$codice.'&nbsp desc: '.''.$descrizione.''.' tipologia: '.$tipologia.'</td>';
    $result[] = '<td>&euro;'.$prezzo.'</td>';
    $result[] = '<td><input type="text" name="quantita'.$id.'" value="'.$quantita.'" size="3"></td>';
    $result[] = '<td>&euro;'.($prezzo * $quantita).'</td>';
    $somma += $prezzo * $quantita;
    $result[] = '</tr>';
    }
    $result[] = '</table>
    ';
    $result[] = 'Totale: &euro;'.$somma.'</br>
    ';
    $result[] = '<button type="submit">Aggiorna il carrello</button>';
    $result[] = '</form>';
    }else{
    $result[] = 'Il carrello è vuoto.
    ';
    }
    return @join('',$result);
    }
    ?>

    in un file "carrello.php" includo questo file (e anche altri) per utilizzare la funzione "mostracarrello", la quale però non mi mostra un bel niente degli elementi che invece, in locale (S.O. windows) e su altro server (sempre S.O.window) funziona regolarmente.
    questo il codice del file carrello.php:

    <?php
    @require('mysql.php');
    @require('config.php');
    @require('funzioni.php');
    $carrello = $_SESSION['carrello'];
    if(@isset($_GET['action']))
    {
    $action = $_GET['action'];
    switch ($action)
    {
    case 'aggiungi':
    if ($carrello)
    {
    $carrello .= ','.$_GET['id'];
    }else{
    $carrello = $_GET['id'];
    }
    break;
    case 'cancella':
    if ($carrello)
    {
    $carrello = @explode(',',$carrello);
    $acquisto = '';
    foreach ($carrello as $prodotto)
    {
    if ($_GET['id'] != $prodotto)
    {
    if ($acquisto != '')
    {
    $acquisto .= ','.$prodotto;
    }else{
    $acquisto = $prodotto;
    }
    }
    }
    $carrello = $acquisto;
    }
    break;
    case 'aggiorna':
    if ($carrello)
    {
    $acquisto = '';
    foreach ($_POST as $key=>$value)
    {
    if (@stristr($key,'quantita'))
    {
    $id = @str_replace('quantita','',$key);
    $carrello = ($acquisto != '') ?
    @explode(',',$acquisto) : @explode(',',$carrello);
    $acquisto = '';
    foreach ($carrello as $prodotto)
    {
    if ($id != $prodotto)
    {
    if ($acquisto != '')
    {
    $acquisto .= ','.$prodotto;
    }else{
    $acquisto = $prodotto;
    }
    }
    }
    for ($i=1;$i<=$value;$i++)
    {
    if ($acquisto != '')
    {
    $acquisto .= ','.$id;
    }else{
    $acquisto = $id;
    }
    }
    }
    }
    }
    $carrello = $acquisto;
    break;
    }
    }
    $_SESSION['carrello'] = $carrello;
    ?>
    <html>
    <head>
    </head>
    <body>
    <p class="testoblup">Il tuo Carrello della spesa

    <?php
    //echo usaCarrello();
    ?>

    <?php
    echo mostraCarrello();
    ?>

    </p>




    <input type="button" value="chiudi carrello" name="B1" onclick="window.close()" style="color: #FB0429;">

    </body>
    </html>

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    15

    cosa può essere?

    non ho ancora risolto il problema ma penso di aver individuato dov'è che lo script va "out".:
    in pratica sul server in hosting, che ribadisco trattasi di un sistema LAMP, la variabile "$f" risulta proprio vuota, mentre sul mio pc (windows con apache e php solita versione) tutto regolare. posto il codice interessato nel caso qualcuno possa perlomeno intuire cosa è che provoca questa anomalia, perché proprio non ci levo le gambe.

    <?php

    function usaCarrello()
    {
    $carrello = $_SESSION['carrello'];
    if (!$carrello)
    {
    return 'Il tuo carrello è vuoto.
    ';
    }else{
    $carrello = @explode(',',$carrello);
    return 'Ci sono <a href="carrello/carrello.php">'.
    @count($carrello). ' articoli nel carrello.</a>
    '."--".$carrello;

    }
    }

    function mostraCarrello()
    {
    global $db;
    $carrello = $_SESSION['carrello'];
    $somma = 0;
    if ($carrello)
    {
    $carrello = @explode(',',$carrello);
    $acquisti = array();
    foreach ($carrello as $prodotto)
    {
    $acquisti[$prodotto] = (@isset($acquisti[$prodotto])) ? $acquisti[$prodotto] + 1 : 1;
    }
    $result[] = '<form action="carrello.php?action=aggiorna" method="post" id="cart">';
    $result[] = '<table>';
    foreach ($acquisti as $id=>$quantita)
    {
    $sql = 'SELECT * FROM fotogallery where id = '.$id;
    $res = $db->query($sql);

    global $f;

    $f = $res->fetch();

    if (empty ($f)){
    echo 'la variabile è vuota';
    }else{
    echo 'variabile piena';
    }


    ----------------------------------------------------------------------------
    da questo controllo sul server risulta vuota; al contrario sul mio pc tutto regolare
    l'altra variabile interessata invece ($res) invece risulta regolarmente piena.
    ----------------------------------------------------------------------------

    @extract($f);
    $result[] = '<tr>';
    $result[] = '<td>Cancella</td>';
    $result[] = '<td>'.'cod.:'.$codice.'&nbsp desc: '.''.$descrizione.''.' tipologia: '.$tipologia.'</td>';
    $result[] = '<td>&euro;'.$prezzo.'</td>';
    $result[] = '<td><input type="text" name="quantita'.$id.'" value="'.$quantita.'" size="3"></td>';
    $result[] = '<td>&euro;'.($prezzo * $quantita).'</td>';
    $somma += $prezzo * $quantita;
    $result[] = '</tr>';
    }
    $result[] = '</table>
    ';
    $result[] = 'Totale: &euro;'.$somma.'</br>
    ';
    //$result[] = '<button type="submit">Aggiorna il carrello</button>';
    $result[] = '</form>';
    }else{
    $result[] = 'Il carrello è vuoto.
    ';
    }


    return join($result);
    }
    ?>

    ------------------------
    --------------------------
    sembra quindi che non svolga la funzione "fetch" che si trova nel file incluso (mysql) del quale posto il codice pure:

    file mysql.php:
    <?php
    class MySQL
    {
    var $host;
    var $user;
    var $password;
    var $database;
    var $connessione;
    var $errore;
    function MySQL ($host,$user,$password,$database)
    {
    $this->host=$host;
    $this->user=$user;
    $this->password=$password;
    $this->errore=$database;
    $this->connessione();
    }
    function connessione()
    {
    if (!$this->connessione = @mysql_connect($this->host, $this->user, $this->password))
    {
    trigger_error('Impossibile connettersi a MySQL.');
    $this->errore=true;
    }
    elseif (!@mysql_select_db($this->errore,$this->connessione))
    {
    trigger_error('Impossibile connettersi al database.');
    $this->errore=true;
    }
    }
    function notifica_errore()
    {
    if ($this->errore) return true;
    $notifica=mysql_error($this->connessione);
    if (empty($notifica)) return false;
    else return true;
    }
    function query($sql)
    {
    if (!$qRes=mysql_query($sql,$this->connessione))
    trigger_error (
    'Query fallita: '.mysql_error($this->connessione).
    ' SQL: '.$sql);
    return new MySQLResult($this,$qRes);
    }
    }
    class MySQLResult
    {
    var $mysql;
    function MySQLResult(& $mysql,$query)
    {
    $this->mysql=& $mysql;
    $this->query=$query;
    }

    function fetch()
    {
    if ($f=mysql_fetch_array($this->query,MYSQL_ASSOC))
    {
    return $f;
    }
    else if ($this->size() > 0)
    {
    mysql_data_seek($this->query,0);
    return false;
    }else{
    return false;
    }
    }
    function size()
    {
    return mysql_num_rows($this->query);
    }
    function insertID()
    {
    return mysql_insert_id($this->mysql->connessione);
    }
    function notifica_errore()
    {
    return $this->mysql->notifica_errore();
    }
    }
    ?>

    ho controllato e fatto alcune modifiche sul php-phpcore sul server, sembrerebbe tutto regolare, ho confrontato anche con il php sul mio pc ma... niente

    spero qualcuno mi possa dare un suggerimento. Grazie.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.