Modi uguali risultati differenti

minatore

Utente Attivo
25 Set 2007
410
0
0

Ciao a tutti
ciò che sto per dirvi potrebbe e non potrebbe essere un problema.
Ho delle righe di codice in html contaninate dal php, ed ho delle righe di codice totalmente in php e da entrambe estraggo una parola dal db scritta cosi "carm'ne"
questo codice è misto e va benissimo
PHP:
<input type="text" name="v_anno"
			style="font-family: Verdana, Palatino Linotype, Arial, Century Gothic, Helvetica;
			font-size: 8 pt; width:105px;"
			value="<?=stripslashes($risultato['ragione_sociale']);?>" />
Il risultato a video è carm'ne

questo codice in php non da un buon risultato
PHP:
print"<input type='text' name='rg'
			style='font-family: Verdana, Palatino Linotype, Arial, Century Gothic, Helvetica;
			font-size: 8pt; width:240px; height:15px;'
			value='" . stripslashes($risultato['ragione_sociale']) . "'>";
Il risultato a video è carm
grazie a tutti
 
Ultima modifica:
credo che il problema, se così vogliamo chiamarlo, stia nel fatto che nel secondo codice usi gli apici singoli per delimitare i valori, in pratica abbiamo una stringa che restituisce in output:
PHP:
value='cam'e'
cosa che non è possibile, mentre è possibile
PHP:
value="cam'e"
come nel primo codice.
 
Ciao Eliox forse non ci crederai ma sto da oggi a capire sta cosa e non ancora ci sono arrivato, vorrei saper scrivere questa cosa anche solo in php, ma al massimo sono riuscito ad avere solo questo risultato non buono.
Come bisognerebbe essere trattata questa stringa
Grazie
 
bisogna lavorare un pò sugli escape:
PHP:
print"<input type=\"text\" name=\"rg\" 
            style=\"font-family: Verdana, Palatino Linotype, Arial, Century Gothic, Helvetica; 
            font-size: 8pt; width:240px; height:15px;\"
            value=\"" . stripslashes($risultato['ragione_sociale']) . "\">";
in pratica, quando i doppi apici NON servono a delimitare codice PHP ci metti una \ davanti.
 
Ultima modifica:
bisogna lavorare un pò sugli escape:
PHP:
print"<input type=\"text\" name=\"rg\" 
            style=\"font-family: Verdana, Palatino Linotype, Arial, Century Gothic, Helvetica; 
            font-size: 8pt; width:240px; height:15px;\"
            value=\"" . stripslashes($risultato['ragione_sociale']) . "\">";
in pratica, quando i doppi apici NON servono a delimitare codice PHP chi metti una \ davanti.

Grazie per l'aiuto,
ma non sono riuscito ad afferrare la soluzione
Codice:
\""
che cosa fa
Codice:
"\"
e questo?
e gli apici singoli che si usano tanto in php dove sono finiti

Grazie in anticipo per la spiegazione
Ciao:hammer:
 
Ci sono i doppi apici che puoi usare per delimitare il codice php e quelli che utilizzi in HTML, guarda questa stringa:

PHP:
<input type="submit" value="Invia">

se la dovessimo stampare con una echo dovremo delimitarla come stringa tra apici:

PHP:
echo "<input type="submit" value="Invia">";

così però l'engine PHP non distingue tra apici PHP e apici HTML, quindi davanti a quelli HTML metteremo una \

PHP:
echo "<input type=\"submit\" value=\"Invia\">";

mettiamo ora che ci sia una variabile:

PHP:
echo "<input type=\"submit\" value=\".$invia.\">";

così non va bene perché la variabile concatenata non è delimitata da apici, quelli preceduti dalla \ sono infatti codice html, quindi dovremo fare così:

PHP:
echo "<input type=\"submit\" value=\"".$invia."\">";

in questo modo, il motore di PHP, vedendo questa porzione di listato:

PHP:
echo "<.. value=\"".$invia."\">";

saprà che il primo e il quarto doppio apice sono HTML, il secondo e il terzo sono delimiatatori PHP.
 
Ultima modifica:
Mamma mia, c'è tutta una storia dietro questi apici doppi e singoli, io non ne facevo proprio uso dei doppi e nemmeno del backslash(\)
devo armarmi di pazienza e cercare di capire ciò che hai scritto

Grazie per la lezione
 
Sembra complesso e ti confesso che anch'io all'inizio mi confondevo, ma se ci pensi bene il concetto è semplice: metti \ prima dei doppi apici HTML, non metterli se " " delimitano codice PHP.
 

Discussioni simili