webForumDet fria alternativet

Konvertera Php script för utf (åäö)

PHPur PHP

1 svar · 1 699 visningar · startad av chrillemannen

chrillemannenMedlem sedan feb. 20113 inlägg
#1

Hej alla vassa kodare!

Företagssidan ska uppdateras och jag har lagt in ett kontaktformulär.
Jag har gjort sidan i Utf-8 standard men formuläret och php scriptet hittade jag på en amerikansk site och scriptet behöver förstå ÅÄÖ.

Jag har kollat gamla trådar och sett att man ska lägga en kodsträng enligt denna sida
http://php.net/manual/en/function.utf8-encode.php

Har jag fattat det rätt,
är det bara denna kodsnutt som ska in i php scriptet?
string utf8_encode ( string $data )

Jag har även sparat php scriptet som utf-8 standard.

Eller är det mer, och vart ska den placeras?
Någon vass hjärna som kan lösa detta?

Tack på förhand! / Chrille

Mitt Php script nedan

----------------------------------------

<?php
if(isset($_POST['email'])) {

	// EDIT THE 2 LINES BELOW AS REQUIR   
	$email_to = "info@bentmon.se";     
	$email_subject = "Websida - Kontakt";                 
	
	function died($error) {         
	// your error code can go here         
		echo "We are very sorry, but there were error(s) found with the form you submitted. ";         
		echo "These errors appear below.\<br /\>\<br /\>";         
		echo $error."\<br /\>\<br /\>";         
		echo "Please go back and fix these errors.\<br /\>\<br /\>";         
		die();     
	}   
	        
	// validation expected data exists     
	if(!isset($\_POST\['first_name'\]) \|\|         
		!isset($\_POST\['last_name'\]) \|\|         
		!isset($\_POST\['email'\]) \|\|         
		!isset($\_POST\['telephone'\]) \|\|         
		!isset($\_POST\['comments'\])) {         
		died('We are sorry, but there appears to be a problem with the form you submitted.');            
	}           
	
	$first_name = $\_POST\['first_name'\]; // required     
	$last_name = $\_POST\['last_name'\]; // required     
	$email_from = $\_POST\['email'\]; // required     
	$telephone = $\_POST\['telephone'\]; // not required     
	$comments = $\_POST\['comments'\]; // required           
	
	$error_message = "";     
	$email_exp = '/^\[A-Za-z0-9.\_%-\]+@\[A-Za-z0-9.-\]+\\.\[A-Za-z\]{2,4}$/';   
  if(!preg_match($email_exp,$email_from)) {     
  	$error_message .= 'The Email Address you entered does not appear to be valid.\<br /\>';   
}     
	$string_exp = "/^\[A-Za-z .'-\]+$/";   
 if(!preg_match($string_exp,$first_name)) {     
	$error_message .= 'The First Name you entered does not appear to be valid.\<br /\>';   
}   
	if(!preg_match($string_exp,$last_name)) {     
	$error_message .= 'The Last Name you entered does not appear to be valid.\<br /\>';   
}   
	if(strlen($comments) \< 2) {     
	$error_message .= 'The Comments you entered do not appear to be valid.\<br /\>';   
}   
	if(strlen($error_message) \> 0) {     
	died($error_message);  
}     
	$email_message = "Form details below.\\n\\n";           
	
	function clean_string($string) {       
		$bad = array("content-type","bcc:","to:","cc:","href");       
		return str_replace($bad,"",$string);     
	}           
		$email_message .= "First Name: ".clean_string($first_name)."\\n";     
		$email_message .= "Last Name: ".clean_string($last_name)."\\n";     
		$email_message .= "Email: ".clean_string($email_from)."\\n";     
		$email_message .= "Telephone: ".clean_string($telephone)."\\n";     
		$email_message .= "Comments: ".clean_string($comments)."\\n";             
		
		// create email headers 
		$headers = 'From: '.$email_from."\\r\\n". 
		'Reply-To: '.$email_from."\\r\\n" . 
		'X-Mailer: PHP/' . phpversion(); 
		@mail($email_to, $email_subject, $email_message, $headers);   
		?\>   
        
        \<!-- include your own success html here --\>   
        Thank you for contacting us. We will be in touch with you very soon.   
		\<?php 
		} 
		?\>
ercizMedlem sedan maj 20011 826 inlägg
#2

Se till att alla HTML-sidor har taggen:

<meta charset="utf-8"/>

så att tecknen visas rätt i webbläsaren och så att all formulärdata får rätt encoding.

Du måste nog byta ut nästan alla sträng-funktioner som du använder. T.e.x. reguljära uttryck mm. Och använda motsvarande variant som har stöd för "multi-byte"-tecken (Unicode). Se t.ex. dessa funtioner http://se.php.net/manual-lookup.php?pattern=mb_

136 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)