Problema escape characters php html

tommy_2222
Avendo un'istruzione del genere in html:

  • '>


  • Ho un problema, ovvero il pc si confonde con il primo carattere apostrofo ' (quello vicino a href) e quelli di 'user', dandomi quindi un errore sintattico. Come posso scrivere questo statement in modo che faccia la stessa cosa, ma senza errori?
    Grazie in anticipo

    Risposte
    onlyReferee
    Ciao tommy_2222 :!:
    Puoi provare così:
    <li><a href="members.php?view=<?php echo\"row['user']?>\'><?php echo row['user']" ?></a></li>
    

    Poiché la stringa "principale" è l'url contenuto in href tutti gli apici doppi al suo interno vanno inseriti mediante le sequenze di escape.
    In teoria gli apici singoli non dovrebbero darti problemi. In caso contrario prova a mettere anche questi come escape.
    <li><a href="members.php?view=<?php echo\"row[\'user\']?>\\'><?php echo row[\'user\']" ?></a></li>
    

    Spero di esserti stato d'aiuto, fammi sapere.

    tommy_2222
    Sinceramente non mi funziona come mi consigli e non capisco perché
    per esempio come potrei fare a trasformare questa in modo tale che il computer non si confonda?

    $row['auth']

    probid
    Il problema non è proprio quello che indichi, anche perché il PHP essendo lato server è valutato e produce output prima e indipendentemente dall'HTML.

    Piuttosto, non puoi usare in quel modo gli apici per riferirti agli indici degli array associativi; o togli le virgolette dall'echo, che sono in questo caso inutili, lasciando:
    <? echo $row['user'] ?>

    oppure le puoi mantenere inserendo la variabile tra parentesi graffe:
    <? echo "{$row['user']}" ?>

    Un'altra soluzione sarebbe poi quella di togliere gli apici mantenendo le virgolette:
    <? echo "$row[user]" ?>

    ma tieni conto che in questo caso avresti comunque un warning.

    Per l'estensione di casi simili a stringhe particolarmente lunghe ed elaborate, potrebbe essere utile anche la notazione Heredoc.

    Ciao!

    tommy_2222
    ok grazie, in effetti così funziona

    tommy_2222
    ok grazie, in effetti così funziona

    Rispondi
    Per rispondere a questa discussione devi prima effettuare il login.