hey allemaal,

ik heb een functie geschreven die eerst naar mijn database kijkt om te kijken of de opgegeven namen (firstname, middlename, lastname) combinatie al bestaat. zoja dan wil ik een error message geven en moet die stoppen met het script. Nu werkt mijn functie naar behoren met de latin set maar wanneer ik bijvoorbeeld het volgende gebruik (星星张 ' xingxing zhang') worden de characters nooit herkent en is die dus altijd nieuw. ondanks dat die er al in staat. mijn database is volledig UTF-8 zowel als mijn PHP dus ik snap er niets meer van. Heeft iemand dit ooit eerder meegemaakt?

EDIT: ik heb net een artikel gevonden die zegt dat UNICODE nog niet goed werkt op Win32. kan iemand dit bevestigen?

http://archives.postgresql.org/pgsql-bugs/2004-12/msg00304.php

<?php
function checkDuplicateContact( $firstName, $middleName, $lastName )
{
$SQL = "SELECT customerid, firstname, middlename, lastname FROM tb_contacts
WHERE firstname = '$firstName' AND middlename = '$middleName' AND lastname = '$lastName'
";

$res = mysql_query( $SQL );

if ( mysql_num_rows( $res ) == 1)
{
$error = "<div style='color: #D00;'>" . $_POST['firstname'] . " " . $_POST['middlename'] . " " . $_POST['lastname'] . ", already exists!</div>";
}
elseif ( mysql_num_rows( $res ) == 0 )
{
require 'includes/dbConnect.php';
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET NAMES 'utf8'");

$SQLAdd = "INSERT INTO tb_contacts
(
firstname, middlename, lastname, age, gender, dateofbirth, married, children, nationality, religion, companyid, jobtitle,
jobdescription, officephone, homephone, mobilephone, mobilephone2, email, email2, instantmessenger, instantmessenger2,
fax, hobbies, favouritefood, favouritebeverage, miscelleneous, createdby, createddate
)
VALUES
(
'$firstName', '$middleName', '$lastName', '$age', '$gender', '$dateofBirthFull', '$martialState', '$children', '$nationality',
'$religion', '$companyId', '$jobTitle', '$otherJobInfo', '$officePhone', '$housePhone', '$mobilePhone', '$mobilePhone2',
'$email', '$email2', '$instantMessenger', '$instantMessenger2', '$fax', '$hobbies', '$favouriteFood', '$favouriteBeverage',
'$miscelleneous', '$createdBy', CURRENT_TIMESTAMP()
)
";

$resAdd = mysql_query( $SQLAdd );

mysql_close();

$error = "<div style='color: #48830b'>" . $_POST['firstname'] . " " . $_POST['middlename'] . " " . $_POST['lastname'] . ", added to the database</div>";
$_POST = "";
}
else
{
$error = "<div style='color: #D00;'>" . mysql_error() . "Please contact the webadmin</div>";
}
return $error;
}
?>




<?php
if ( isset( $_POST['firstname'] ) && $message != "")
{
echo "<div style='color: #D00;'>" . $message . "</div><br />\n";
}
elseif ( isset( $_POST['firstname'] ) && empty( $message) )
{
echo checkDuplicateContact( $firstName, $middleName, $lastName );
}
?>

Reageren