- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema con il carattere &
-
Problema con il carattere &
Salve a tutti, ho un problema con il carattere &, quando recupero un testo contenente questo carattere tramite $_POST mi viene restituito solo il testo fino al primo carattere & escluso. Ho provato la funzione htmlentities ma non va, qualcuno sa aiutarmi?
Grazie
Valentino
-
Ciao,
sicuro che sia su $_POST e non su $_GET? Perchè sul post mi sembra impossibile, mentre sull'altro è ovvio che crei problemi.
-
si, sono sicuro
-
Ma se fai un var_dump($_POST); direttamente, cosa mostra? Se già li è sbagliato, dovresti postare il form che utilizzi perchè il problema deve essere su quello.
-
Grazie per le risposte veloci Thedarkita.
Ho provato questo testo:
Come recuperare del testo contenete il carattere & tramite postmi ha restituito questo con var_dump
array(5) { ["url"]=> string(7) "Mio url" ["position"]=> string(0) "" ["text_paragrafo"]=> string(49) "Come recuperare del testo contenete il carattere "}
La variabile text_paragrafo contiene il testo che risulta tagliato in corrispondenza del carattere &.
Invio la variabile post Tramite javascript ad un file php che mi restituisce il risultato, potrebbe essere qui il problema?
-
Si il problema è sicuramente quello, è lato client al momento dell'invio.
-
Di seguito la funzione che viene eseguita con l'evento onclick e che a sua volta richiama InviaDati
function inviaPost(idTitolo,idText)
{
InviaDati("titolo="+idTitolo+"&text_paragrafo="+idText);
}
function InviaDati(data)
{
// istanziamo l'oggetto XMLHttpRequest
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
req.onreadystatechange = PocessaDati;
req.open('POST', urlDati, true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send(data);
}
// controlliamo la versione di ActiveX
else if (window.ActiveXObject)
{
req = new ActiveXObject('Microsoft.XMLHTTP')
if (req)
{
req.onreadystatechange = PocessaDati;
req.open('POST', urlDati, true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send(data);
}
}
}
function PocessaDati()
{
// monitoriamo lo stato dell'invio
if (req.readyState == 4)
{
// restituiamo lo stato della richiesta
if (req.status == 200)
{
eval(what);
}
else
{
alert('Problema nella gestione dei dati: ' + req.responseText);
}
}
}devo quindi sostituire i caratteri speciali lato client, ma non credo vada bene sostituire & con & Cosa mi suggerite?
-
Puoi sostituirlo in & lato client prima di inviarlo, e dopo lato server lo ripristini al valore & visto che sai che effettui questa conversione.
Anche se utilizzando jquery eviteresti questo genere di problemi alla radice.
-
Se quando esegui InviaDati metti degli apici invece delle virgolette hai lo stesso comportamento?