Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di AvOJaromil
    Registrato dal
    Feb 2006
    residenza
    laddove si stagiona formaggio dentro a dei grossi buchi di tufo
    Messaggi
    549

    di ajax, encodeURIComponent, e php

    ho un problema che non riesco a capire.
    ho un applicazione che invia email tramite ajax-php; da un normale form html prelevo i dati tramite javascript, li codifico con la funzione encodeURIComponent e li inserisco nel corpo di una richiesta post creata con ajax.
    questo più o meno il codice:

    invia.htm

    Codice PHP:
    <form action="#">
    <
    input accesskey="B" name="_nome" tabindex="10" type="text" size="40" maxlength="40" title="AccessKey B, TabIndex 10 || Inserire il nome" />
    <
    textarea accesskey="Q" name="_testo" tabindex="15" rows="10" cols="60" title="AccessKey Q, TabIndex 15 || Inserire il testo dell'email"></textarea>
    ......
    </
    form
    invia.js

    Codice PHP:
    for (var i=0;i<datiEmail.length;i++)
    {
            var 
    dato=encodeURIComponent(datiEmail[i]);
            
    dato+="=";
            
    dato+=encodeURIComponent(datiEmail[i].value);
            
    body.push(dato);
            
    }
    return 
    body.join("&");
    .....
    var 
    xmlhttp=creaOggettoXMLHttp();
    xmlhttp.open("post","invia.php",true);
    xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlhttp.onreadystatechange=function()
    {
        if (
    xmlhttp.readyState==4)
        {
            if (
    xmlhttp.status==200)
            {
                
    alert(xmlhttp.responseText);
            }
            else
            {
                    
    alert("Errore durante l'invio del messaggio(" xmlhttp.statusText ")."
                             
            }
        }
    };
    xmlhttp.send(body); 
    invia.php

    Codice PHP:
    header("Content-Type: text/plain;");
    .....
    recupero i dati da $_POST[]
    .....
    mail("$destinatario","$oggetto","$messaggio","$headers");
    ...... 
    il problema:
    se nella textarea c'è un ritorno a capo la funzione mail() di php genera un errore. se invece nella textarea c'è di tutto tranne dei ritorno a capo, tutto funziona perfettamente.
    con un alert sulla variabile condificata tramite encodeURIComponent() il ritorno a capo lo codifica con "%0A".

    aiuto....
    "homer sei tonto come un mulo e due volte più brutto. se uno sconosciuto ti offre un passaggio tu devi accettarlo..."

    www.flickr.com/photos/asciella/
    www.lastfm.it/user/qvaioe/

  2. #2
    se nella textarea c'è un ritorno a capo la funzione mail() di php genera un errore.
    L'errore è lato server non lato chient... fai una ricerca sul forum di PHP

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.