Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 14-10-07, 15:04   #1 (permalink)
Esperta
 
L'avatar di pikadilly
 
Data di registrazione: Dec 2006
Ubicazione: Old City
Messaggi: 6,290
Invia un messaggio tramite ICQ a pikadilly
Accenti strani ricevuti da modulo php

In questi giorni queste lettere mi perseguitano: è. Prima mi hanno torturato con un sito fatto con joomla e ora si presentano nelle mail inviate dai moduli dei siti a cui ho applicato questo script per l'invio delle mail da moduli web (senza utilizzo di database):

Codice:
<?php
if ((trim($_POST['object']) != "") && (trim($_POST['body']) != "")) {
$to = "nome@nome.it";
$subject = $_POST['object'];
$body = $_POST['body'];
$headers = "From: " . $_POST['mail'] . "\n";
mail($to,$object,$body,$headers);
 echo"La mail è stata inviata correttamente.";
}
else {
echo "Errore, devi compilare il modulo per inviare una mail";
}
?>
E' di sicuro un problema di codifica della pagina che processa il modulo che è questa:
Quote:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Come potrebbe risolversi una cosa simile per rendere le mail più leggibili?


Ultima modifica di pikadilly : 14-10-07 15:06.
pikadilly non in linea   Rispondi citando
Vecchio 14-10-07, 18:59   #2 (permalink)
Esperta
 
L'avatar di pikadilly
 
Data di registrazione: Dec 2006
Ubicazione: Old City
Messaggi: 6,290
Invia un messaggio tramite ICQ a pikadilly
Ok, risolto. Nella pagina della form dovevo mettere questo meta-tag
Quote:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
e non quello che c'era prima...
Ovviamente ho dovuto convertire le lettere accentate da "&egrave" a lettere accentate normalmente. L'unica pecca che rimane è l'apostrofo, all'arrivo della mail è così:
"l\'hai visto?" (esempio)
C'è una stanghetta di mezzo che non riesco a togliere...chissà...
Ok, è domenica, ho dormito poco e ho dimenticato un pò di nozioni...capita
pikadilly non in linea   Rispondi citando
Vecchio 15-10-07, 18:57   #3 (permalink)
User
 
L'avatar di Adriano_Bari
 
Data di registrazione: Aug 2007
Messaggi: 213
dove ti esce il \ nell'oggetto?
Adriano_Bari non in linea   Rispondi citando
Vecchio 15-10-07, 19:09   #4 (permalink)
User
 
L'avatar di Adriano_Bari
 
Data di registrazione: Aug 2007
Messaggi: 213
potresti provare così

$subject = $_POST['object'];
echo utf8_encode($subject);
Adriano_Bari non in linea   Rispondi citando
Vecchio 15-10-07, 19:31   #5 (permalink)
Esperta
 
L'avatar di pikadilly
 
Data di registrazione: Dec 2006
Ubicazione: Old City
Messaggi: 6,290
Invia un messaggio tramite ICQ a pikadilly
Ciao Adraino_Bari e grazie per le tue risposte...esce nel corpo del messaggio....
pikadilly non in linea   Rispondi citando
Vecchio 15-10-07, 19:34   #6 (permalink)
User
 
L'avatar di Adriano_Bari
 
Data di registrazione: Aug 2007
Messaggi: 213
allora prova con
$body = $_POST['body'];
echo utf8_encode($body);
Adriano_Bari non in linea   Rispondi citando
Vecchio 15-10-07, 19:35   #7 (permalink)
User
 
L'avatar di Adriano_Bari
 
Data di registrazione: Aug 2007
Messaggi: 213
a meno che il problema è nel form che crea la variabile body
Adriano_Bari non in linea   Rispondi citando
Vecchio 15-10-07, 20:00   #8 (permalink)
Esperta
 
L'avatar di pikadilly
 
Data di registrazione: Dec 2006
Ubicazione: Old City
Messaggi: 6,290
Invia un messaggio tramite ICQ a pikadilly
Ok, adesso ci provo e ti dico
pikadilly non in linea   Rispondi citando
Vecchio 15-10-07, 20:07   #9 (permalink)
Esperta
 
L'avatar di pikadilly
 
Data di registrazione: Dec 2006
Ubicazione: Old City
Messaggi: 6,290
Invia un messaggio tramite ICQ a pikadilly
No nulla, scrivendo
Quote:
echo utf8_encode($body);
dopo
Quote:
$body = $_POST['body'];
il contenuto nel testo della form mi va nella pagina di conferma invio, ovvero quella che processa il tutto...
Il problema delle lettere accentate l'ho risolto cambiando la codifica dei caratteri, adesso è rimasta solo l'apostrofazione che mi risulta
Quote:
l'\esempio
pikadilly non in linea   Rispondi citando
Vecchio 15-10-07, 20:13   #10 (permalink)
User
 
L'avatar di Adriano_Bari
 
Data di registrazione: Aug 2007
Messaggi: 213
io avevo un problema simile per quanto riguarda il return, ovvero il testo non andava mai a capo e rimaneva sequenziale, ho risolto il problema con questo codice
$body = stripslashes($_POST['body']);
$body = str_replace(chr(13),"<br />",$body);

in pratica sostituivo il carattere corrispondente con il codice html <br/>
il problema è che non so quale sia quello per l'apostrofo
Adriano_Bari non in linea   Rispondi citando
Vecchio 15-10-07, 20:15   #11 (permalink)
User
 
L'avatar di Adriano_Bari
 
Data di registrazione: Aug 2007
Messaggi: 213
forse devi fare così ma non ne sono certo
$body = stripslashes($_POST['body']);
$body = str_replace(chr(92),"&rsquo",$body);
Adriano_Bari non in linea   Rispondi citando
Vecchio 15-10-07, 20:19   #12 (permalink)
Esperta
 
L'avatar di pikadilly
 
Data di registrazione: Dec 2006
Ubicazione: Old City
Messaggi: 6,290
Invia un messaggio tramite ICQ a pikadilly
Adesso puoi esserne sicuro, funziona ...grazie. Sono sparite le stanghettine
Grazie mille, sei stato molto gentile, davvero, speriamo che io possa esserti d'aiuto in altri ambiti visto che in php ancora sono poco ferrata
pikadilly non in linea   Rispondi citando
Vecchio 15-10-07, 20:26   #13 (permalink)
User
 
L'avatar di Adriano_Bari
 
Data di registrazione: Aug 2007
Messaggi: 213
io ho incominciato solo da 3 mesetti il php
se non meno
Adriano_Bari non in linea   Rispondi citando
Vecchio 15-10-07, 20:31   #14 (permalink)
Esperta
 
L'avatar di pikadilly
 
Data di registrazione: Dec 2006
Ubicazione: Old City
Messaggi: 6,290
Invia un messaggio tramite ICQ a pikadilly
Mi dai speranza...
Un ulima cosina...se io volessi applicare questa cosa anche al titolo, come dovrei fare?
Così va bene?
Quote:
$subject = stripslashes($_POST['object']);
$subject = str_replace(chr(92),"&rsquo",$subject);
$body = stripslashes($_POST['body']);
$body = str_replace(chr(92),"&rsquo",$body);
Sto pretendendo troppo??
pikadilly non in linea   Rispondi citando
Vecchio 16-10-07, 00:06   #15 (permalink)
User
 
L'avatar di Adriano_Bari
 
Data di registrazione: Aug 2007
Messaggi: 213
scusa ma non ero più sul sito, comunque secondo me puoi usare lo stesso codice,
Adriano_Bari non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 12:56.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.