Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Warning: Unexpected character in input: ''' (ASCII=39) state=1

    Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /mio/file.php on line 14

    la linea 14 è molto semplice e normale, function funzione($var1,$var2,$var3='valore') {

    Mi da il warning quando passo stripslashes($_POST['campo']) , e che in "campo" c'è un apostrofo. Poi però fa tutto normale. :master: Perché rompe? Come posso "silenziarlo" ?

  2. #2
    probabile che sia un problema di apici e di carattere di escape.

    non dici se e' una stringa js oppure php. Prova ad usare i doppi apici.

    $var1,$var2,$var3="valore")

    capisci che 'Sant\'Angelo' passato a stripslashes diventa: 'Sant'Angelo'

    Potrebbe anche essere un errore di lettura della cache, ripulisci. Prova entrambe le ipotesi.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Il problema non è con quello che sarebbe $var3, ma colla prima.

    Nell'esempio di funzione($var1,$var2,$var3='valore') , l'uso sarebbe tipo funzione(stripslashes($_POST['campo']),1,2);

    :master:

  4. #4
    Originariamente inviato da dvds
    Il problema non è con quello che sarebbe $var3, ma colla prima.

    Nell'esempio di funzione($var1,$var2,$var3='valore') , l'uso sarebbe tipo funzione(stripslashes($_POST['campo']),1,2);

    :master:
    Beh! prima non hai precisato quanto detto ora.
    Non e' significativa la posizione del campo nella funzione, ma il suo contenuto.

    prova a verificare prima il contenuto di $_POST['campo'] come si dovrebbe sempre fare con i contenuti provenienti dall'esterno ed applica lo stripslashes fuori dalla funzione.

    Meglio ancora sarebbe settare le magic_quotes_gpc in off. Puoi sempre provare a farlo. Insomma se il problema sei certo provenga da uno stripslashes agisci su questa funzione, verifica anche se per caso stai usando magic_quotes_sysbase in ON

    Potresti anche fare una funzione che ripulisca get, post e cookie quando verifichi che le magic quotes gpc siano in ON. Trovi anche esempi gia' sviluppati in post precedenti.

    questo per esempio.... anche se il php 5.3 non vuole i parametri passati per riferimento. Ma tanto per dare un'idea

    http://forum.html.it/forum/showthrea...66#post6311366

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Eh ma il fatto è proprio che non voglio passare \' al posto di un apostrofo alla funzione, voglio passare tutto quello che l'utente ha mandato, così come l'ha scritto!

    E ancora faccio fatica a capire perché è un problema avere il simbolo ' in mezzo alla string, e perché funzioni comunque tutto normale, perché non è che me la taglia lì o che si blocchi o non so ché... :master:

  6. #6
    Per essere più precisi, il codice è così:
    Codice PHP:
    $_POST['testo'] = stripslashes($_POST['testo']);
    if(
    MIO::funzione($altro,$_POST['testo'],($_SESSION['controllo'] == 'giusto' 'valore' 'altrovalore')) == 1) {
    // continua ...

    class MIO {
     function 
    funzione($var1,$var2,$var3='valore') {
    // con i vari return 
    get_magic_quotes_gpc è già 1

  7. #7
    Non puoi passare una stringa del genere senza ricevere un errore:

    'la nave getta l'ancora'

    perche' la stringa inizia e finisce con:

    'la nave getta l'

    quindi se vuoi la frase completa hai due possibilita':

    'la nave getta l\\'ancora'

    oppure con le quote doppie che contengono la quota singola

    "la nave getta l'ancora"

    Gia' segnalato nella prima risposta.

    Nel caso dovessi includere la stringa nel db allora devi rimuovere l'escape con stripslashes e passare la stringa a mysql_real_escape_string()

    http://forum.html.it/forum/showthrea...ostid=10166292

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Originariamente inviato da piero.mac
    Non puoi passare una stringa del genere senza ricevere un errore:

    'la nave getta l'ancora'

    perche' la stringa inizia e finisce con:

    'la nave getta l'
    Sì ma no... ho voluto fare un esempio per farti vedere come viene l'errore, ma ora sono ancora più confuso di prima. :master: :master:

    -> esempio

    Non taglia la stringa come dovrebbe fare secondo quello che dici tu, e non genera l'errore come dovrebbe fare secondo l'errore che ho visto io.... :master: :master: :master: :master:

  9. #9
    Originariamente inviato da dvds
    Sì ma no... ho voluto fare un esempio per farti vedere come viene l'errore, ma ora sono ancora più confuso di prima. :master: :master:

    -> esempio

    Non taglia la stringa come dovrebbe fare secondo quello che dici tu, e non genera l'errore come dovrebbe fare secondo l'errore che ho visto io.... :master: :master: :master: :master:
    certo che no perche' e' all'interno di una textarea.

    Tu non ricevi l'errore nella textarea ma nell'uso di una variabile stringa chiamata da una funzione. Quello che arriva al browser (client) e' gestito diversamente da quello che fa lo script su un server.

    Le stringhe sono racchiuse da apici o doppi apici che ne segnalano l'inizio ed il termine. Questo per la gestione del parser. Il client riceve "SOLO" codice html e se trova degli escape li rimuove. Ma non in una textarea gia' di per se valutata come una stringa senza caratteri di controllo

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Ma nel tuo esempio leggiQualcosa() non utilizza un valore default. L'ho provato col codice seguente e non mi dava mai questo messaggio. Su http://bytes.com/topic/php/answers/4...cted-character alcuni presumono che succeda quando esegui il file mentre viene ancora caricato sul server oppure che ci siano degli apici non-chiusi prima

    Codice PHP:
    <?php

        
    function funzione($var1$var2$var3='valore')
        {
            
    var_dump($var3);
        }

        
    error_reporting(E_ALL);
        
    funzione('''''what\'ever'); // qua il parser del forum toglie il \ prima di 'ever
        
    funzione(''''"what'ever");
    ?>

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

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 © 2026 vBulletin Solutions, Inc. All rights reserved.