Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it L'avatar di Milver
    Registrato dal
    Dec 2006
    Messaggi
    179

    str_replace non funziona

    Salve ragazzi ho letto la guida pratica per far interagire PHP e MYSQL insieme però non mi funziona la funzione str_replace. Guardate come l'ho scritta (questo è una parte di codice non è la pagina intera), pensavo funzionasse ma invece quando alla fine faccio INVIA e lo script salva nel database i dati non vengono sostituiti i caratteri ad esempio "à" con il codice corrispondente, viene salvato direttamente à. Questo è un problema poichè su Internet Explorer non mi visualizza queste lettere dato che non le riconosce, fa i quadratini.

    Codice PHP:
    $titolo $_POST['titolo'];
    $immagine $_POST['immagine'];
    $testo $_POST['testo'];
    $data $_POST['data'];
    $titolo str_replace("&""&"$titolo);
      
    $titolo str_replace("à""á"$titolo);   
      
    $titolo str_replace("è""è"$titolo);
      
    $titolo str_replace("ì""ì"$titolo);
      
    $titolo str_replace("ò""ó"$titolo);
      
    $titolo str_replace("ù""Ā"$titolo);
      
    $titolo str_replace("€""€"$titolo);
      
    $testo str_replace("&""&"$testo);
      
    $testo str_replace("à""á"$testo);   
      
    $testo str_replace("è""è"$testo);
      
    $testo str_replace("ì""ì"$testo);
      
    $testo str_replace("ò""ó"$testo);
      
    $testo str_replace("ù""Ā"$testo);
      
    $testo str_replace("€""€"$testo);
      
    $testo nl2br($testo); 
    Mi sapete aiutare?
    Mimmo

  2. #2
    perchè non usi htmlentities(), anzichè fare tutti questi str_replace?
    comunque posso solo ipotizzare che lo str_replace non funzioni perchè non trova quei caratteri nella stringa, forse perchè quei caratteri speciali vengono interpretati in modo diverso...

  3. #3
    Così com'è questo pezzo di codice non presenta errori...

    Prova a postare il resto della pagina...


  4. #4
    Utente di HTML.it L'avatar di Milver
    Registrato dal
    Dec 2006
    Messaggi
    179
    Il codice intero è il seguente, nonvi sono <html>, è solo php.
    Codice PHP:
    <?
    include("../config.php");
    $db mysql_connect($db_host$db_user$db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.php");
    mysql_select_db($db_name$db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.php");
    $titolo $_POST['titolo'];
    $immagine $_POST['immagine'];
    $testo $_POST['testo'];
    $data $_POST['data'];
    $titolo str_replace("&""&"$titolo);
      
    $titolo str_replace("à""á"$titolo);   
      
    $titolo str_replace("è""è"$titolo);
      
    $titolo str_replace("ì""ì"$titolo);
      
    $titolo str_replace("ò""ó"$titolo);
      
    $titolo str_replace("ù""Ā"$titolo);
      
    $titolo str_replace("€""€"$titolo);
      
    $testo str_replace("&""&"$testo);
      
    $testo str_replace("à""á"$testo);   
      
    $testo str_replace("è""è"$testo);
      
    $testo str_replace("ì""ì"$testo);
      
    $testo str_replace("ò""ó"$testo);
      
    $testo str_replace("ù""Ā"$testo);
      
    $testo str_replace("€""€"$testo);
      
    $testo nl2br($testo);
    $query1 "INSERT INTO articoli (titolo, immagine, testo, data) VALUES ('$titolo', '$immagine', '$testo', '$data');";
    if (
    mysql_query($query1$db))
    echo 
    "Inserimento avvenuto correttamente";
    else
    echo 
    "Inserimento non avvenuto correttamente:
    mysql_error();
    mysql_close($db);
    ?>
    Mimmo

  5. #5
    Mmm, il codice è giusto e non c'è nulla di strano...

    Ma tu dici che non và perchè lo vedi su IE o hai effettivamente controllato i campi nel DB?

  6. #6
    Utente di HTML.it L'avatar di Milver
    Registrato dal
    Dec 2006
    Messaggi
    179
    Nel database me lo salva proprio come à e non come &#225;
    Su Internet Explorer vedo un quadratino al posto della lettera dato che non la legge, mentre su Firefox che è diverso me la legge la lettera con l'accento....
    Secondo me posso anche togliere questo codice, però dovrei settare la codifica UTF o simili. Qual'è il codice? oppure come posso risolvere questa situazione?
    Mimmo

  7. #7
    Quindi significa che non esegue proprio gli str_replace...

    Volendo ci sono le equivalenti funzioni per il linguaggio del MySQL ma un codice lungo e scomodo.

    Non saprei che dirti mi dispiace...

    Per quanto riguarda la codifica dei caratteri il tag è il seguente per quella Unicode:

    codice:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    che va messo nell'<head> della pagina.

    Comunque non sono espertissimo su questo ma in questo caso penso vada messo il codice della codifica occidentale, cioè iso-8859-1.

    Prova vedi se così con IE va...


  8. #8
    Utente di HTML.it L'avatar di Milver
    Registrato dal
    Dec 2006
    Messaggi
    179
    Incredibile, la & me la converte ma le parole accentate à è i ò ecc. non le converte VVoVe:
    Mimmo

  9. #9
    A questo punto se la e commerciale la sostituisce significa che molto probabilmente nel testo nel quale andrebbero convertite non ci sono le lettere accentate...

    Oppure vengono inserite quelle con l'accento acuto mentre nelle funzioni str_replace tu cerchi quelle con l'accento grave...


  10. #10
    Utente di HTML.it L'avatar di Milver
    Registrato dal
    Dec 2006
    Messaggi
    179
    No questo non l'ho capito scusa..il codice è questo
    Codice PHP:
    $titolo str_replace("à""á"$titolo); 
    E io scrivo questa à, sono identiche.
    Mimmo

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.