Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: echo .. anomala

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085

    echo .. anomala

    Ciao,
    secondo voi, come mai se io mando a schermo la 'echo' di una variabile sql (che contiene l'errore), la visualizzazione è corretta (un'unica riga senza interruzioni), mentre se l'echo la utilizzo per scrivere uno script della pagina HTML, mi viena scritta nel seguente modo (andando a capo e interrompendo degli spazi)
    il problema è che scritto in questo modo, lo script non funziona

    Echo della variabile per scrivere lo script:
    Codice PHP:
    echo "x='" $err       "'    \n"   
    Risultato nella pagina html:
    codice:
    x='Errore durante la select anagrafe: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near "AND b.id_ana = a.id_ana )
                                ORDER BY a.nominativo, a.c" at line 5 - 1064'

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    che ci sia eventualmente qualche modo per trattare la variabile per eliminare queste anomalie ?

  3. #3
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    echo "x='" . $err . "' \\"."n" ;


    EDIT: lo metto senza PHP se no non si legge bene

    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    non so quale fosse la tua intenzione .. ma la cosa non funziona

  5. #5
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Originariamente inviato da JANUS70
    non so quale fosse la tua intenzione .. ma la cosa non funziona
    l'intenzione è quella di non far interpretare al php il "\n" come un 'vai a capo' in modo che nel codice javascript venga scritto correttamente, e la cosa dovrebbe funzionare benessimo, infatti se scrivi

    <?
    $alert= "Ciao \n Ciao Ciao" ;
    $alert2="Ciao\\"."n Ciao Ciao";
    ?>
    <script>
    alert('<?Php echo $alert ?>');
    alert('<?Php echo $alert2 ?>');
    </script>

    quello che ottieni come output è questo:

    <script>
    alert('Ciao
    Ciao Ciao');
    alert('Ciao\nCiao Ciao');
    </script>

    ovvero il primo allert genera un errore di sintassi js, mentre il secondo no perchè php non "legge" il "\n" ma si limita a scriverlo. se non ti funziona posta il codice perchè probabilmente c'è qualche altro errore
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    forse non è chiaro che il carattere '\n' che si vede alla fine della 'echo' è solo per andare a capo nello scrivere la pagina html, ma non ha niente a che vedere con il contenuto del campo $err (contenuto che rappresenta il vero problema)

    Codice PHP:
    echo "x='" $err       "'    \n"   
    il problema è che quando il contenuto del campo ($err) viene scritto sulla pagina html, viene scritto andando a capo e lasciando spazi ..
    sembra quindi che sia dentroal contenuto del campo ad esserci caratteri strani
    il bello è che se il campo in questione, invece di usarlo per scrivere lo script, lo stampo a video (con una echo), appare corretto (senza andare a capo e senza spazzi in mezzo alla stringa)

    ecco come mi scrive lo script(la parte di script incriminata ovviamente):
    codice:
    x='Errore durante la select anagrafe: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near "AND b.id_ana = a.id_ana )
                                ORDER BY a.nominativo, a.c" at line 5 - 1064'

  7. #7
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    $err come la valorizzi? dovrebbe essere il risultato di mysql_error, giusto? se è così prova a fare una cosa del genere:

    Codice PHP:
    $err "Errore durante la select anagrafe: ".str_replace(chr(13),' ',str_replace(chr(10),' ',mysql_error())); 
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    la variabile viene valorizzata nel seguente modo (rispetto alla tua c'è un "mysql_errno" in più):

    Codice PHP:
    if (!mysql_query($query$db))                                                                      
       {                                                                                                
        
    $esito 'KO' ;                                                                                 
        
    $err "Acquisizione dati coperture 1 KO: " .    mysql_error() . " - " mysql_errno();            
         ....                                                                                                    
         .... 
    .. anche se guardando il caso 'anomalo', il problema stà nella prima variabile.
    adesso devo risimulare il caso .. che come sempre succede non riesco più a fare
    in realtà, non sempre l'esito di una query in errore mi dava il problema su indicato

    per curiosità .. cosa faresti con quei "str_replace" ?

    Grazie

  9. #9
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    probabilmente perchè non sempre l'output di mysql_error() è messo su due righe;

    con str_replace sostituisco nella stringa tutti i caratteri 'return' con un semplice spazio, dato che non sei tu a generare la stringa ma mysql_error l'unica soluzione che hai è 'ripulirla' prima di usarla
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  10. #10
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    adesso che ci penso è probabile che il caso si verifichi quando la query va a capo perchè mysql_error ne riporta il pezzo vicino all'errore e la riporta così come è.
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

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.