Newsgroup: it.comp.www.php
Titolo: Problemi di apostrofi e \

Allora, adesso ho un altro piccolo grosso problema, ho un form iniziale in 
cui inserisco dei dati e una volta inviato questo form va in un altra pagina 
che in pratica è la stessa con i campi già compilati (è una sorta di pagina 
di conferma), in quest'ultima pagina se clicco su conferma inserisco tutti 
quei dati nel database.
Il problema è che passando dalla prima pagina di inserimento alla seconda di 
conferma tutte le parole che hanno un apostrofo mi vengono automaticamente 
troncate con un \
Come mai?
Ad esempio se scrivo Valle d'Aosta  nella seconda pagina mi ritrovo Valle d\
Ovviamente se correggo l'errore nel database mi si inserisce correttamente 
(apostrofi e spazi compresi), il problema si limita al passaggio dalla primo 
form al secondo.
Mi dite dov'è il problema?
Esempio dei due form:
accesso.html:
<form method="post" action="pagina.php" name='prova' >
    Username<br>
    <input type="text" name='regione' ><br>
    Password<br>
    <input type="password" name='paese' ><br><br>
    <input type='submit' value='INVIA'>
        <input type='reset'>
</form>
pagina.php
<?
$regione = $_POST [ "regione" ];
$paese = $_POST [ "paese" ];
echo "<form method='post' action='database.php' name='prova'  >
    Username<br>
    <input type='text' name='regione'  value='$regione'><br>
    Password<br>
    <input type='password' name='paese'  value='$paese'><br><br>
    <input type='submit' value='INVIA'>
        </form>"
?>

 automaticamente troncate con un \
Leggiti:
http://www.php.net/manual/en/language.variables.external.php
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

 
http://www.php.net/manual/en/language.variables.external.php
Quindi, correggimi se mi sbaglio, basta settare nel php.ini  magic.quotes 
gpc su on ? 

johnnystanchino wrote:

Leggilo meglio.
-- 
I am what I am, I do what I can


> Leggilo meglio.
Scommetto che era esattamente il contrario giusto? Va settato su off, o 
sbaglio?
Perchč se č cosě allora non mi spiego come mai me lo fa proprio pur essendo 
settato su off!!
E come se non bastasse non č che se scrivo valle d'aosta mi scrive valle 
d\'aosta bensě mi tronca direttamente in valle d\
Boh!!! 


wrote:

Prova a vedere il sorgente html della pagina generata:
<input type='text' name='regione' value='Valle d\'aosta'>
č giusto che stampi Valle d\
ti do un aiutino... stripslashes()
"ah ma poi mi stampa Valle d"
altro aiutino.... htmlentities()
E poi... che senso ha far inserire dati in un form, farli passare ad
un altro form con gli stessi valori inseriti?
In pagina.php fai vedere i dati ben formattati e visibili in modo da
poter notare meglio gli errori. Se poi van bene si clicca su Ok e li
passi a database.php, e se non van bene... dai ora tocca a te ;-)
Ciao
-- 
Per rispondermi togli il cappello

 Ciao
provato sia stripslashes che htmlentities... niente da fare.
questo č la pagina.php in cui c'č il form che richiama i dati dal form 
precedente
<?
$nome = $_POST [ "nome" ];
echo "<form method='post' action='uno.php'>";
echo "<input type='text' name='nome' value='";
echo stripslashes($nome);
echo "'><input type='submit' value='invia'>";
echo "</form>";
?>
Se richiamo il $nome fuori dal form me lo visualizza in modo corretto mentre 
all'interno
dell'input me lo tronca, e il bello č che ho dato un'occhiata al codice 
prodotto dalla pagina
ed č assolutamente corretto(eccolo):
<form method='post' action='due.php'><input type='text' name='nome' 
value='valle d'aosta'><input type='submit' value='invia'></form>
Sempre piů boh!!!

 echo stripslashes($nome);
echo htmentities (stripslashes ($nome));
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E


> echo htmentities (stripslashes ($nome));
Provato:
ecco il risultato
 Fatal error: Call to undefined function: htmentities() in 
c:\programmi\easyphp1-8\www\uno.php on line 6
Ma c'č da definire una funzione? ^_^
Sempre piů nei dubbi, comunque piů sotto ho aperto un post diverso in cui 
sto pensando di fare un cambio di caratteri ossia cambiare gli apostrofi 
normali in quelli rovesci(non saprei come altro definirli) in quel modo 
dovrebbe risolversi almeno credo 

 Ma c'h da definire una funzione? 
No, solo da leggere il manuale 
http://www.php.net/htmlentities


> No, solo da leggere il manuale 
http://www.php.net/htmlentities
Già guardato... non aggiunge niente di nuovo e soprattutto
niente che risolva il problema di cui sto parlando, valle d\ rimane tale e 
quale!! 

 tale e quale!! 
Ma ci fai o ci sei?
echo htmlentities (stripslashes ($nome));
-- 
I am what I am, I do what I can


 echo htmlentities (stripslashes ($nome));
Perchè dici cos'?
Ma l'hai provato almeno quel codice che dici?
Non funziona.
Quello corretto è questo:
echo htmlentities($str, ENT_QUOTES);
Per cortesia se volete aiutare con gentilezza
è ben accetto non c'è bisogno di scrivere
quelle cose grazie 

 quelle cose 
Se vuoi la pappa pronta, lascia perdere, evita non postare e cambia
hobby.


 hobby.
Vabbhč... ciao bello... 

Come la mettiamo adesso?
Sicuro che funziona? se $str="Valle d\'aosta"?
...comunque il meccanismo è:
ti arriva $_POST['str'] che, se ha gli apici, ha in aggiunta \ prima
degli 'apici.
Quindi devi togliere \ con $str=stripslashes($_POST['str']);
A questo punto $str contiene una stringa con apici e senza \
Per inserire correttamente la stringa nel codice html usi echo
htmlentities($str); che ti converte gli apici nelle rispettive entità
html.
Ok?


 Come la mettiamo adesso?
<form method="post">
<input  type="text" name="str" value="Valle d'Aosta" />
<input type="submit" />
</form>
<?php 
if (isset ($_POST['str'])) {
	$value = htmlentities (stripslashes ($_POST['str']));
	print ('<input  type="text" name="str" value="' . $value .'" />");
}
?>



:Provate a guardare gli ingredienti del famoso Labello che si usa per
:le labbra screpolate: Butirrospermum Parkii (sperma di maiale).