nik1992 Δημοσ. 19 Οκτωβρίου 2008 Δημοσ. 19 Οκτωβρίου 2008 να ρωτησω κατι, εχω φτιαξει μια φορμα επικοινωνιας αλλα οταν στελνει το email, τα ελληνικα φαινονται με ερωτηματικα... Τι φταιει? (η φορμα υπηρχε και στο παλιο site μου απλα τωρα εβγαλα το σχεδιαστικο κομματι, μενου footer εικονες κτλ, και την εκανα wrap στο joomla...) http://cn92.net/index.php?option=com_wrapper&view=wrapper&Itemid=5 ><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript"> <!-- function MM_validateForm() { //v4.0 if (document.getElementById){ var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments; for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]); if (val) { nm=val.name; if ((val=val.value)!="") { if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@'); if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n'; } else if (test!='R') { num = parseFloat(val); if (isNaN(val)) errors+='- '+nm+' must contain a number.\n'; if (test.indexOf('inRange') != -1) { p=test.indexOf(':'); min=test.substring(8,p); max=test.substring(p+1); if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n'; } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; } } if (errors) alert('The following error(s) occurred:\n'+errors); document.MM_returnValue = (errors == ''); } } //--> </script> </head> <body> <!-- Form --> <form action="sendmail.php" method="post"> <table align="center" style="font-size:12px; color:#FF6600; font-weight:bold;"> <tr><td>Όνομα / Name:</td><td><input name="name" type="text" id="name" size="25" maxlength="100" /></td></tr> <tr><td>E-mail:</td><td><input name="email" type="text" id="email" size="25" maxlength="100" /></td></tr> <tr><td>Τηλεφωνο / Telephone:</td><td><input name="telephone" type="text" id="telephone" size="25" maxlength="100" /></td></tr> <tr><td>Σημειώσεις / Notes:</td><td><textarea name="text" cols="25" rows="4">* Αν δεν σβήσετε το κείμενο αυτό ή αφήσετε κενό το πεδίο θα σας καλέσουμε.</textarea></td></tr> <tr><td><input name="submit" type="submit" onclick="MM_validateForm('name','','R','email','','RisEmail','telephone','','RisNum');return document.MM_returnValue" value="Αποστολή" /> <input type="reset" value="Διόρθωση" name="reset" /></td></tr> </table> </form> </body> </html> ><?php $to = "μαιλ"; $name = $_POST["name"]; $email = $_POST["email"]; $telephone = $_POST["telephone"]; $text = $_POST["text"]; $subject = "cn92.net - Contact Form" ; $message = "| Name: $name | Email: $email | Telephone: $telephone | Notes: $text"; mail( $to, $subject, $message); echo "Thank you, $name. We will reply to you as soon as possible. You have sent the following information. | Name: $name | Email: $email | Telephone: $telephone | Notes: $text"; ?>
fromaz Δημοσ. 19 Οκτωβρίου 2008 Δημοσ. 19 Οκτωβρίου 2008 Πιθανώς, στο server σου τρέχει 7-μπιτη έκδοση του sendmail. Θα χρειαστεί να κωδικοποιήσεις όλες τις μεταβλητές του mail, πχ $message = '=?UTF-8?B?'.base64_encode($message).'?=' (έτσι, άλλωστε, είναι και το σωστό μιας και ο browser στέλνει τα πεδία σε utf-8) Υ.Γ.: Από τη στιγμή που η σελίδα σου είναι utf-8, είναι λάθος να χρησιμοποιείς iso-8859-7 χαρακτήρες. Αναφέρομαι στις λέξεις 'όνομα', 'τηλέφωνο', κλπ. που έχεις στο markup. Σε πολλούς υπολογιστές θα φαίνονται μπαρμπούτσαλα (άλλαξε το view encoding στον browser σου για να δεις τι εννοώ). Χρησιμοποίησε την iconv συνάρτηση, για να είσαι Ok.
nik1992 Δημοσ. 19 Οκτωβρίου 2008 Μέλος Δημοσ. 19 Οκτωβρίου 2008 πως ακριβως πρπει να κανω το sendmail? που βαζω το $message = '=?UTF-8?B?'.base64_encode($message).'?=' ? Χρησιμοποίησε την iconv συνάρτηση, για να είσαι Ok. Τι εννοεις?
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.