Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Problema di codifica? (utf8, ISO ...)

    Salve,
    dopo che il mio provider ha upgradato mysql dalla 4.0 alla 5.0, alcune parti del codice in php del sito di ecommerce hanno cominciato a dare (anzi a NON dare) i numeri.
    Mi spiego meglio: questo è ad esempio il record di uno dei prodotti in vendita



    Quando il prodotto viene caricato ex-novo, tutto il sito funziona perfettamente (come quando c'era il mysql 4.0). Non appena il prodotto viene modificato/aggiornato, il campo CATEGORY, in questo caso "41 347" genera msg di errore se viene ad esempio ricercato da un cliente per acquistarlo. Da notare che il record del prodotto, controllato mediante phpmyadmin, resta tale e quale (almeno apparentemente) sia prima che dopo l'aggiornamento (vedi immagine sopra).
    Questa è la parte di codice che dovrebbe visualizzare Categoria, Produttore, Prodotto
    Codice PHP:
      case "{$config['maindir']}product.php":
            if (!isset(
    $_GET['p'])) $_GET['p'] = 0;
            
    $product mysql_query("select * from {$config['prefix']}Products where id='{$_GET['p']}' limit 1");
            if (
    $product)
              
    $productinfo mysql_fetch_array($product);
            
    $categoryid split(" ",$productinfo['category']);
            
    $categoryid $categoryid[sizeof($categoryid)-1];
            
    $category mysql_query("select * from {$config['prefix']}Categories where id='{$categoryid}' limit 1");
            if (
    $category)
              
    $categoryinfo mysql_fetch_array($category);
            
    $manufacturer mysql_query("select * from {$config['prefix']}Manufacturers where id='{$productinfo['manufacturer']}' limit 1");
            if (
    $manufacturer)
              
    $manufacturerinfo mysql_fetch_array($manufacturer);
            
            
    callModule("{$output['245']}","product_category.html","maindisplay/");
            
    callModule("{$output['253']}","product_manufacturer.html","maindisplay/");
            
    callModule("{$output['255']}","product_display.html","maindisplay/");
          break; 
    Questa è la parte di codice che modifica il prodotto:

    Codice PHP:
     if (trim($_POST['name']) != "" && trim($_POST['description']) != "" && trim($_POST['category']) != "" && 
          
    trim($_POST['manufacturer']) != "" && trim($_POST['stock']) != "" && is_numeric($_POST['stock']) && 
          
    trim($_POST['ean']) != "" && trim($_POST['iva']) != "" && is_numeric($_POST['price']) && trim($_POST['shipping']) != "" && 
          
    is_numeric($_POST['shipping']) && trim($_POST['shipping2']) != "" && is_numeric($_POST['shipping2']) && 
          
    trim($_POST['handling']) != "" && is_numeric($_POST['handling'])) {
        
    mysql_query("update {$config['prefix']}Products set category='{$_POST['category']}'," .
                    
    "manufacturer='{$_POST['manufacturer']}',name='{$_POST['name']}',description='{$_POST['description']}'," .
                    
    "numdownloads='{$_POST['numdownloads']}',price='{$_POST['price']}',shipping='{$_POST['shipping']}'," .
                    
    "shipping2='{$_POST['shipping2']}',handling='{$_POST['handling']}',stock='{$_POST['stock']}'," .
                    
    "addbr='{$_POST['addbr']}',ean='{$_POST['ean']}',iva='{$_POST['iva']}',modified=NOW() where id={$_POST['id']}"); 
    Con il prodotto creato ex-novo funziona perfettamente, non appena il prodotto viene modificato non visualizza più la categoria (che invece continua ad essere presente sul DATABASE...)

    :master:

  2. #2
    Nessuna idea?

  3. #3
    Ho provato a fare una cosa così

    Codice PHP:
    <?php
      
    echo "<tr><td class=\"xsmall\">{$productinfo['category']}</td></tr>\n";
    ?>
    e la pagina mi ritorna 41 347, quindi il valore corretto... qlc ci capisce qualcosa??

  4. #4
    Ho provato anche a salvare CATEGORY con utf8_encode e a leggerla con utf8_decode ma non cambia nulla.
    Il database è in utf8, le pagine del sito sono in iso-8859-1...

    HELP ME!!

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    che tipo di campo è il campo category nel db?
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6
    Originariamente inviato da dottwatson
    che tipo di campo è il campo category nel db?

  7. #7
    Come non detto.

    "Approfitto" del disastro e porto il tutto in utf8.

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.