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

    Doppi apici in campo stringa!

    Ho il seguente codice:

    <SCRIPT LANGUAGE="php">
    $prova = "Testo di \" prova";

    $val = "
    <FORM>
    <INPUT TYPE=\"text\" NAME=\"prova\" VALUE=\"" . $prova . "\">
    </FORM>
    ";

    echo $val;
    </SCRIPT>

    nell'esecuzione mi dà a video la casella di testo con all'interno la sola scritta:

    Testo di

    mentre ovviamente vorrei uscisse la scritta

    Testo di "prova

    Ovviamente il problema è che nell'inserire la scritta: Testo di " prova all'interno di val, quando arriva a value si ha:

    VALUE="Testo di " prova

    quindi il doppio apice viene visto come chiusura del campo VALUE (almeno penso sia così).

    Non posso utilizzare ' al posto del doppio apice all'interno di VALUE, ossia:

    $value="........ <INPUT TYPE='text' ..........

    anche perché mi darebbe lo stesso errore se nella stringa ci fosse
    $prova="Testo di ' prova"

    QUALCHE CONSIGLIO?

  2. #2
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Non sara' il massimo ma al volo mi viene in mente questo:
    Codice PHP:
    $p '"prova"'
    $prova "Testo di ".$p

  3. #3
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Prova ad applicare htmlspecialchars alla variabile $prova.

  4. #4
    Grazie, ma la variabile $prova, in realtà è una variabile di sessione che mi viene così com'è quindi non posso cambiarla.
    Per semplicità nell'esporre il mio problema ho usato $prova=..........

    Per dirla proprio tutta ho la seguente situazione.

    Parto da una pagina inserisci.php, nella quale c'è il form nella stessa modalità con cui ho esposto. Nel submit del form rimando ad una pagina verifica.php che anzitutto memorizza la variabile nella sessione:
    $_SESSION['prova'] = stripslashes($_POST['prova']);

    vede se la variabile che mando attraversto il form ($_SESSION['prova']) contiene dei caratteri non validi (tra questi c'è il doppio apice). Se trova tali caratteri faccio un redirect ad inserisci.php dove nel campo text vorrei che uscisse il valore $_SESSION e nella pagina un opportuno messagio di errore, quindi il codice sarebbe (sembra in maniera succinta):

    <SCRIPT LANGUAGE="php">
    session_start();

    //Se si è verificato un errore faccio echo $_SESSION['messaggio'];

    $val = "
    <FORM NAME=\"form_prova\" METHOD=\"post\" ACTION=\"verifica.php\">
    <INPUT TYPE=\"text\" NAME=\"prova\" VALUE=\"" . $_SESSION['prova'] . "\">
    </FORM>
    ";

    echo $val;
    </SCRIPT>

  5. #5
    Originariamente inviato da neida
    Prova ad applicare htmlspecialchars alla variabile $prova.

    Grazie mille, così funziona!

  6. #6
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Quindi, sempre che abbia inteso il senso della cosa, potresti utilizzare htmlspecialchars() solo quando stampi il messaggio d'errore. Viceversa non sarà per niente necessario. Del resto, questa funzione, risulta comoda proprio in casi simili...


    EDIT: infatti..

  7. #7
    Si, hai inteso molto bene. Grazie per il consiglio.

    Volevo chiedere una cortesia IMMENSA. Tempo fa ho aperto la seguente discussione
    http://forum.html.it/forum/showthrea...readid=1105735

    Mi ha risposto Luca200, ma penso di avere ancora molti dubbi. La questione è legata a sessioni e sicurezza. Lo so che la discussione è un pò lunga, ma se potresti dare un'occhiata ve ne sarei molto grato, altrimenti grazie lo stesso per l'aiuto che mi avete già dato.

    Ciao.

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.