Visualizzazione risultati 1 fino 10 di 10

Discussione: Problemi con virgolette

  1. #1
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito Problemi con virgolette

    Ciao

    Da un modulo ricevo del testo (messaggio)che può avere anche delle virgolette..senza riportare tutto il codice:


    Codice PHP:

    ........

    case
    'anteprima':
    anteprima($_REQUEST['messaggio'],$_REQUEST['button'],$_REQUEST['color']);

    .......
    function
    anteprima($messaggio,$button,$color){

    .....
    echo
    "
    <td><b>Hai scritto:
    </b>&nbsp;</td><td><font color=\"
    $colore\" face='$carattere' size=\"5\">$messaggio</font></td>";

    ........

    }
    OK fin qui tutto a posto;
    se il testo inserito nella variabile messaggio ha le virgolette
    le vedo regolarmente stampando con echo ad esempio
    Ciccio "beicapelli" Rossi

    Il problema viene dopo quando invio la stessa variabile $messaggio ad un'altra funzione per la conferma e il caricamento del testo nel db:


    Codice PHP:
    .......
    <
    input type="hidden\" name=\"messaggio\" value=\"$messaggio\">

    .......

    case 'conferma':
    conferma(
    $_REQUEST['messaggio'],$_REQUEST['carattere'],$_REQUEST['colore'] );


    ........

    function conferma(
    $messaggio,$car,$col){
    echo
    $messaggio;

    .....
    qui ho messo un echo perchè mi ero accorto che nel db veniva caricato solo
    Ciccio al posto di
    Ciccio "beicapelli" Rossi
    e ho verificato che il problema è proprio in questo punto; alla funzione conferma non arrivano le virgolette e nemmeno il testo completo!

    Come mai?

    Grazie anticipatamente

  2. #2
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Non ho bene capito bene quali sia il problema e guardando gli esempi del codice ho fatto ancora più confusione, però se hai problemi con delle stringhe con le virgolette potresti risolvere con la funzione addslashes.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  3. #3
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito

    Citazione Originalmente inviato da funcool Visualizza messaggio
    Non ho bene capito bene quali sia il problema e guardando gli esempi del codice ho fatto ancora più confusione, però se hai problemi con delle stringhe con le virgolette potresti risolvere con la funzione addslashes.
    Scusami ho mancato un pezzo di codice.
    Ricapitolando. Da un modulo ricevo del testo, che può avere anche le virgolette, che visualizzo nella funzione anteprima in cui uso stripslashes()
    altrimenti vedo questi \\

    Codice PHP:
    function anteprima($messaggio,$button){
    $messaggio=stripslashes($messaggio);

    echo
    "<table border=\"0\">
    <tr>
    <td><font color=\"#FF0000\"><b>Hai scritto:
    </b></font>&nbsp;</td><td><font face='
    $carattere' size=\"5\">$messaggio</font></td>
    </tr>

    .....

    Fin qui tutto bene.

    Quando rinvio il testo ad un'altra funzione il testo viene "tagliato"
    come spiegato sopra.

    Grazie

  4. #4
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Potresti scrivere il codice completo?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  5. #5
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito

    Citazione Originalmente inviato da funcool Visualizza messaggio
    Potresti scrivere il codice completo?
    va bene:

    Codice PHP:
    session_start();
    function
    rindirizzo($url, $seconds = FALSE){
    if (!
    headers_sent() && $seconds == FALSE){
    header("Refresh: ".$seconds.";URL=" . $url);
    }
    else{
    if (
    $seconds == FALSE){
    $seconds = "0";
    }
    echo
    "<meta http-equiv=\"refresh\" content=\"$seconds;url=$url\">";
    }
    }

    function
    dbconnect() {
    mysql_connect("localhost", "root", "");
    @
    mysql_select_db("gd") or die ("Unable to select database");
    }
    dbconnect();
    $query=mysql_query("SELECT * FROM firme WHERE id_utente='".$_SESSION['verified_user']."'");

    if (
    $_SESSION['verified_user'] == '') header("Location: login.php");
    if (
    mysql_num_rows($query) > 0) {
    echo
    "<b>Ciao ". $_SESSION['nome'].". Mi dispiace, ma non puoi inserire un altro messaggio!</b>";}
    else {
    $result=mysql_query("SELECT * FROM utentidb WHERE id_user='".$_SESSION['verified_user']."'");
    if (!
    $result) echo "Errore nella query.";
    else {


    function
    firma(){
    echo
    "<center><b>Benvenuto ". $_SESSION['nome']."</b><br>
    Utilizza il modulo sotto per lasciare un messaggio (max 30 caratteri) che
    sara' stampato sull'immagine. Grazie.</center><p>"
    ;

    echo
    "<table border=\"0\" width=\"385\" height=\"126\">
    <FORM action=\"testo.php\" method=post>
    <TR>
    <TD align=\"left\" valign=\"top\">
    <input type=\"hidden\" name=\"task\" value=\"anteprima\">
    <INPUT TYPE=\"TEXT\" maxlength=30 size=40 name=\"messaggio\" >
    </TD>
    <td>&nbsp;</td><td>&nbsp;</td>
    </TR>
    <TR><td><font color=\"#FF0000\"><b>Scegli il tipo di carattere e il colore del testo:</b></font></td>
    <td width=\"45\">&nbsp;</td><td>&nbsp;</td>
    </TR>
    <TR><td><img border=\"0\" src=\"time.gif\"> <input type=\"radio\" name=\"button\" value=\"time\" checked/></td>
    <td bgcolor=\"#000000\">&nbsp;</td><td><input type=\"radio\" name=\"color\" value=\"nero\" checked></td>
    </TR>
    <TR><td><img border=\"0\" src=\"comic.gif\"> <input type=\"radio\" name=\"button\" value=\"comic\"></td>
    <td bgcolor=\"#FF0000\">&nbsp;</td><td><input type=\"radio\" name=\"color\" value=\"rosso\"></td>
    </TR>
    <TR><td><img border=\"0\" src=\"mono.gif\"> <input type=\"radio\" name=\"button\" value=\"mono\"></td>
    <td bgcolor=\"#FFFF00\">&nbsp;</td><td><input type=\"radio\" name=\"color\" value=\"blu\"></td>
    </TR>
    <TR><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>
    </TR>
    <TR>
    <TD align=\"center\">
    <INPUT TYPE=\"SUBMIT\" value=\"Anteprima\">
    </TD><td>&nbsp;</td><td>&nbsp;</td>
    </TR>
    </FORM>
    </table>"
    ;
    }



    function
    anteprima($messaggio,$button){
    firma();
    $messaggio=stripslashes($messaggio);

    if (
    $messaggio == ""){
    echo
    "<p>";
    echo
    "<font color=\"#FF0000\"><b>Non hai inserito il testo!</b></font>";
    }

    else {
    echo
    "<p>";
    if (
    $button == "time"){$carattere = "Times New Roman";}
    elseif (
    $button == "comic"){$carattere = "Comic Sans MS";}
    elseif (
    $button == "mono"){$carattere = "Monotype Corsiva";}

    echo
    "<table border=\"0\">
    <tr>
    <td><font color=\"#FF0000\"><b>Hai scritto:
    </b></font>&nbsp;</td><td><font face='
    $carattere' size=\"5\">$messaggio</font></td>
    </tr>
    <tr>
    <form action=\"testo.php\" method=\"\post\">
    <input type=\"hidden\" name=\"task\" value=\"conferma\">
    <input type=\"hidden\" name=\"messaggio\" value=\"
    $messaggio\">
    <input type=\"hidden\" name=\"carattere\" value=\"
    $carattere\">
    <td align=\"center\"><INPUT TYPE=\"SUBMIT\" value=\"Conferma\"></td>
    </form>
    <form action=\"testo.php\" method=\"\post\">
    <input type=\"hidden\" name=\"task\" value=\"firma\">
    <td align=\"center\"><input type=\"submit\" value=\"Cancella\"</td>
    </form>
    </tr>
    </table>"
    ;
    }
    }

    function
    conferma($messaggio,$car){
    echo
    $messaggio;
    $query=mysql_query("SELECT * FROM firme WHERE id_utente='".$_SESSION['verified_user']."'");
    if (
    mysql_num_rows($query) > 0) {
    echo
    "Non puoi inserire un altro messaggio!";}
    else {
    $id_utente=$_SESSION['verified_user'];
    $upload = mysql_query("INSERT INTO firme (id_utente, scritta, type, giorno)
    VALUES ('
    $id_utente','$messaggio','$car', NOW());")or die ("Errore! Dati non caricati");
    echo
    "Conferma riuscita! Attendere prego...";
    rindirizzo("stampa.php",0);
    }
    }




    switch(
    $_REQUEST['task']) {
    case
    'anteprima':
    anteprima($_REQUEST['messaggio'],$_REQUEST['button']);
    break;
    case
    'conferma':
    conferma($_REQUEST['messaggio'],$_REQUEST['carattere']);
    break;
    default:
    firma();
    }

    }
    }

  6. #6
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Prova a tirare fuori le funzioni dai vari if.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  7. #7
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito

    Citazione Originalmente inviato da funcool Visualizza messaggio
    Prova a tirare fuori le funzioni dai vari if.

    e che significa?

    Grazie.

  8. #8
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Per esempio questo pezzo di codice:
    Codice PHP:
    if (!$result) echo "Errore nella query.";
    else {


    function
    firma(){
    Dovrebbe essere:
    Codice PHP:
    if (!$result) echo "Errore nella query.";
    else {
    /** Tutto quello che c'è nell'else **/
    }

    function
    firma(){
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  9. #9
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito

    Citazione Originalmente inviato da funcool Visualizza messaggio
    Per esempio questo pezzo di codice:
    Codice PHP:
    if (!$result) echo "Errore nella query.";
    else {


    function
    firma(){
    Dovrebbe essere:
    Codice PHP:
    if (!$result) echo "Errore nella query.";
    else {
    /** Tutto quello che c'è nell'else **/
    }

    function
    firma(){
    io provo, però non ho capito l'attinenza con il mio problema.

    Comunque grazie e ciao

  10. #10
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Il modo con cui scrivi il codice non è corretto, quindi è molto probabile che ti restituisca errori.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

Regole di scrittura

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