Προς το περιεχόμενο

contact form προβλημα με ελληνικα


nik1992

Προτεινόμενες αναρτήσεις

Δημοσ.

να ρωτησω κατι, εχω φτιαξει μια φορμα επικοινωνιας αλλα οταν στελνει το 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";

?>

Δημοσ.

Πιθανώς, στο 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.

Δημοσ.

πως ακριβως πρπει να κανω το sendmail?

που βαζω το

$message = '=?UTF-8?B?'.base64_encode($message).'?='

?

 

Χρησιμοποίησε την iconv συνάρτηση, για να είσαι Ok.

Τι εννοεις?

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...