+ Rispondi alla Discussione
Risultati da 1 a 3 di 3

Problema con le lettere accentate in un modulo per i commenti

Ultimo Messaggio di flaviors200 il:
  1. #1
    User L'avatar di Cosina
    Data Registrazione
    Dec 2016
    Località
    Lugano
    Messaggi
    13

    Problema con le lettere accentate in un modulo per i commenti

    Buongiorno a tutti. Sono giorni e giorni che cerco di risolvere un problema e non riesco. Premetto che non sono esperta di php e lo uso solo per i moduli di contatto all'interno di siti web scritti interamente in html5. Il problema e` questo: sono riuscita a creare un semplicissimo modulo per i commenti senza database. I commenti vengono archiviati nel file comments.html. Per far apparire l'anteprima dei commenti nella pagina comments-form.html dove si trova anche il modulo di invio, uso un include jquery. Tutto funziona egregiamente, salvo che per il problema delle lettere accentate. Quando il testo del commento arriva nel file html le lettere accentate vengono riportate con questo simbolo di errore è. Su consiglio di alcuni, ho provato ad aggiungere questa stringa: $content = utf8_decode($_POST['message']); e ho ottenuto che le lettere accentate arrivassero in modo corretto nel file comments.html, ma dando ancora errore nell'anteprima inclusa nel file comments-form.html, dove appaiono cosi`: �. Io credo che, per risolvere il problema, dovrei riuscire a far arrivare le lettere accentate come entity (es: &egrave ) nel file comments.html, ma malgrado che abbia tanto cercato e letto e chiesto, finora nessuno ha saputo aiutarmi concretamente. Spero che voi riusciate a darmi la soluzione giusta. Di seguito il codice php che sto utilizzando. Grazie mille in anticipo, attendo speranzosa.


    Codice PHP:
    <?php
    session_start
    ();
    if (
    $_POST['captcha'] != $_SESSION['captcha']) {
        
    header("Location: ./error");
        die();
    }

    //filtro anti-spam invisibile
    else if($_POST['fred'] != "") {
        echo(
    '<p style="color: #8B2323; font-size: 16px; font-weight: bold;">Invio fallito! Forse stai usando un browser testuale, oppure sei uno spambot.<br>Sending failed! You may be using a text-only browser, or you are a spambot.</p>');    
    }

    //blocca url in textarea
    else if(preg_match("/\b(?:(?:https?|ftp|http):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$_POST['message'])){
    header("Location: ./no-url");
        die();
    }

    //impostazioni email
    else {
        if(isset(
    $_POST['name'])) {

            
    $name $_POST['name'];
            
    $email = ($_POST['email']);
            
    $message = ($_POST['message']);
            
    $emailmessage "Un utente ha pubblicato un commento.

    Name: 
    $name
    Email: 
    $email
    Message: 
    $message
            "
    ;    

                    
    //Defining mail settings

            
    $to "mail@mail.com";
            
    $subject "Nuovo commento";


            if(isset(
    $name)) {
                    
    mail($to,$subject,$emailmessage);

                }

    }

    }

    if (
    $_POST){

    $name $_POST['name'];
    $date = new DateTime();
    $date $date->format("d.m.y - h:i:s");
    $content $_POST['message'];
    $handle fopen("comments.html","a");
    fwrite ($handle
    ,"<p><span style='color:red; background-color:transparent; font-weight:bold; font-size:12pt;'>" $name "</span><br>"
    $date "<br><em>"
    $content "</em></p><hr>\r\n");
    fclose ($handle);
    header("location: ./comments-form.html");
    }
    ?>

  2. #2
    User
    Data Registrazione
    Oct 2006
    Messaggi
    100
    Ciao hai provato a cambiare la codifica nel file html?
    Codice:
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

  3. #3
    User
    Data Registrazione
    Nov 2018
    Località
    Ragusa
    Messaggi
    69
    Aggiungi flaviors200 su Google+ Aggiungi flaviors200 su Facebook Aggiungi flaviors200 su Linkedin
    Ciao Cosina,

    a parte il fatto che non capisco l'utilità di jQuery nel mostrare i commenti (li potresti mostrare direttamente con PHP), ho provato a riprodurre la situazione che hai descritto e non ho riscontrato errori.

    Non ti occorre utf8_encode(), piuttosto devi utilizzare sempre la stessa codifica tra un file e l'altro. Le lettere accentate nel file dei commenti dovranno essere del tipo è (questa è una à)

    File comments-form.html

    pastebin.com/ZTFjpJXa

    File comments.php

    pastebin.com/MJbZ5qK2

    Ora che ti ho postato la soluzione però fatti un grandissimo favore, studiati la risorsa che ti avevo linkato su html.it, se hai messo online questo tuo codice non ci vuole molto ad iniettare codice malevolo, quantomeno sanitizza l'input utente
    Sviluppo siti web per aziende e professionisti

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.