utf8 werkt niet in de eerste regel van tabel

Status
Niet open voor verdere reacties.

johnny1963

Gebruiker
Lid geworden
23 okt 2006
Berichten
82
Hoi hopelijk kan mij iemand helpen met het volgende ?

Ik heb een tabel als volgt ogebouwd

PHP:
$sql0 ="CREATE TABLE IF NOT EXISTS stamboom_dohmen (
		id int(11) NOT NULL auto_increment,
		gebruikernaam VARCHAR(55) COLLATE utf8_unicode_ci,
		adminnaam VARCHAR(55) COLLATE utf8_unicode_ci,
		roepnaam VARCHAR(55) COLLATE utf8_unicode_ci,
		achternaam VARCHAR(75) COLLATE utf8_unicode_ci,
		doopnamen TEXT COLLATE utf8_unicode_ci,
		geslacht VARCHAR(8),		
                PRIMARY KEY (id) )ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci";
		mysql_query($sql0) or die(mysql_error());


in de php headers van alle php pagina's heb ik

header('Cache-control: private'); // IE 6 FIX
header('Content-Type: text/html; charset=UTF-8');

staan

in de html header

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="x-dns-prefetch-control" content="off"/>

en toch kan ik in de eerste regel van de tabel geen vreemde tekens toevoegen dus nogmaals alleen in de eerste regel die ik toevoeg in de tabel.
Als ik via een andere pagina de desbetreffende tekst weer bewerk en herstel en upload wordt het wel hersteld en kan ik de vreemde tekens
wel goed zien. Dus zoals éë enz.
Als ik de de eerste regel invoeg krijg ik bijvoorbeeld éèê voor éèë

De pagina's zijn zonder bom opgeslagen

wie weet hier raad mee
 
Hoe wordt de data ingevoegd? Via een formulier, command-line, query in PHP-bestand, PHPMyAdmin?
 
En dat is hetzelfde formulier dat je ook voor bewerken gebruikt? Of is dat een andere pagina?
 
nee dat is een ander formulier.
als je wilt testen moet je het even zeggen.
dat geef ik je een link met login naam en wachtwoord.
En ik geef wat info over hoe en wat.
 
Pas je de meta tag op alle pagina's toe? Het is vreemd dat bewerken goed gaat maar invoegen niet, dan is mijn vermoeden dat er iets op die pagina niet klopt.

Wat doet directe invoer via een query vanuit een PHP-bestand met speciale tekens?
 
wat directe invoer doet weet ik niet zal ik effe uitproberen. dus effe geduld.
 
nou de rechtstreekse invoer werkt ook niet. Nu weet ik het helemaal niet meer hoe dit kan.
 
Wat zegt je database qua collaties? Heb je PHPMyAdmin?
Staan je velden op utf8_general_ci?

Is de tekst-encodering van het PHP-bestand zelf ook UTF-8?
 
de codering staat utf8_unicode_ci en de tekst codering van het php bestand is zelf ook utf-8
Heb ook de codering in apache op de server omgezet naar AddDefaultCharset UTF-8
 
Het is niet gezegd dat het opslaan het probleem is, het kan ook bij het opvragen van de data liggen.

Hoe zien beide scripts er uit?
 
Het ligt duidelijk bij het opslaan want dat zie ik in de tabel bij php-admin en alleen in de eerste regel van de tabel heb ik dat probleem.
ik zou zeggen neem een kijkje bij http://www.dohmen-stamboom.nl/test/index.php en login met tester en 1234567890 en voeg eventueel een vrouwelijke partner toe.
wel even met de muis op het info icoontje gaan staan je kunt alleen bewerken of een partner toevoegen de eerste naam heb ik al toegevoegd Met roepnaam als Johné maar wordt opgeslagen als Johné en ook weergegeven. Als je een partner toevoegd gebruik dan een vreemde letter ergen zoals é of dergelijke
 
Laatst bewerkt:
hier alvast een gedeelte van het form

HTML:
<form action="" method="post" name="myform" accept-charset="UTF8" enctype="multipart/form-data">

<input type="hidden" name="gebruikersnaam" value="<?php echo $session->username; ?> ">





<table style="z-index:1;">
<tr>
<td nowrap='nowrap'>
<div style="padding:7px; height:12px; width:210px; background-color:#000; color:#FFF; font-size:10px; text-align:right; float:left;">Roepnaam:</div>  
<input type="text" name="roepnaam" title="Bij geen Roepnaam NIETS invullen." style=" height:20px; margin-left:3px; width:460px">
</td>
</tr>
<tr>
<td nowrap='nowrap'>
<div style="padding:7px; height:12px; width:210px; background-color:#000; color:#FFF; font-size:10px; text-align:right; float:left;">Achternaam:</div>
<input type="text" name="achternaam" style=" position:relative; height:20px; margin-left:3px; width:460px;" title="Achternaam.">
</td>
</tr>
<tr>
<td nowrap='nowrap'>
<div style="padding:7px; height:12px; width:210px; background-color:#000; color:#FFF; font-size:10px; text-align:right; float:left;">Geboorte naam/namen:</div>
<input type="text" name="doopnamen" style=" position:relative; height:20px; margin-left:3px; width:460px;" title="Doopnaam/namen.">
</td>
</tr>


<tr>
<td nowrap='nowrap'>
<div style="padding:7px; height:12px; width:210px; background-color:#000; color:#FFF; font-size:10px; text-align:right; float:left;">Geslacht:</div>
<div style="font-size:10px;float:left; padding-top:6px;">&nbsp;&nbsp;&nbsp;man<input type='checkbox' name='man' id='man' value='Man' title='Kies als geslacht is man.' onclick='if(this.checked) {document.myform.vrouw.checked=false;}{document.myform.onbekend.checked=false;}'></div>
<div style="font-size:10px;float:left; padding-top:6px;">&nbsp;&nbsp;&nbsp;vrouw<input type='checkbox' name='vrouw' id='vrouw' value='Vrouw' title='Kies als geslacht vrouw.' onclick='if(this.checked) {document.myform.man.checked=false;}{document.myform.onbekend.checked=false;}'></div>
<div style="font-size:10px;float:left; padding-top:6px;">&nbsp;&nbsp;&nbsp;onbekend<input type='checkbox' name='onbekend' id='onbekend' value='Onbekend' title='Kies als geslacht is onbekend.' onclick='if(this.checked) {document.myform.man.checked=false;}{document.myform.vrouw.checked=false;}'></div>
</td>
</tr>
<tr>
<td nowrap='nowrap'>
<input type="submit" style=" width:100px;"  name="zenden" value="Alles verzenden"/>
</td>
</tr>
</table>
</form>
</td></tr></table>

en de php

PHP:
if(isset($_POST['zenden']))
		{			
						$ip=$_SERVER['REMOTE_ADDR'];
						include("config.php");
						
						
							
						$roepnaam = $_POST['roepnaam'];
						$achternaam = $_POST['achternaam'];
						$doopnamen = $_POST['doopnamen'];						
							if(!empty( $_POST['man']) && (empty($_POST['vrouw'])) && (empty($_POST['onbekend'])))
							{
							$geslacht="Man";
							}
							if(!empty($_POST['vrouw']) && (empty($_POST['man'])) && (empty($_POST['onbekend'])))
							{
							$geslacht="Vrouw";
							}	
							if(!empty($_POST['onbekend']) && (empty($_POST['man'])) && (empty($_POST['vrouw'])))
							{
							$geslacht="Onbekend";
							}



$con = mysql_connect("localhost", "bla", "bla bla");
				if (!$con)
				{
					die('Could not connect: ' . mysql_error());
				}
				mysql_select_db("stamboom", $con);
				$sql="INSERT INTO stamboom_dohmen (gebruikernaam, adminnaam, roepnaam, achternaam, doopnamen, geslacht)
				VALUES
				('$gebruikersnaam','$adminnaam','$roepnaam','$achternaam','$doopnamen','$geslacht')";

				if (!mysql_query($sql,$con))
				{
					die('Error: ' . mysql_error());
				}
}
 
Mijn ervaring met PHPMyAdmin is dat daar utf8 teksten juist nooit goed in staan, dit komt vaak door de charset van PHPMyAdmin.

Als je de data via PHP met een SELECT-query ophaalt staan de vreemde tekens er nog?
 
Maar hoe kan het dan zijn dat het alleen maar bij de eerste input is cq regel van de tabel is ?
Want als ik deze eerste regel bewerk en dan de verkeerd weergegeven letter verander in de goede dan wordt het wel perfect opgeslagen in de tabel.
Ik zou zeggen probeer het eens en je ziet het de login heb ik je gegeven.
 
Ik zal later vanavond even kijken, heb nu geen computer bij de hand. :)
 
Ik zie niks vreemds :confused:

Ik heb Pïeter Pøst toegevoegd en die zie ik netjes juist weergeven op de pagina.
 
Dat klopt zoals ik al zei ik kan alleen in de eerste regel van de tabel geen vreemde tekens invoeren. Zie ID 1 De Roepnaam. die heb ik ingevuld als Johné maar geeft weer als Johné en wordt in de tabel ook als Johné opgeslagen. Je kunt m wel bewerken en dan als Johné vervangen en weer alles verzenden.

Of het moet toch aan de pagina liggen waar de eerste persoon wordt aangemaakt.
Ik zal morgen nog eens kijken alvast bedankt.
 
Oke, dat kan ik helaas dus niet testen voor je :)

Als je het verwijderen kunt bouwen is het wellicht wat eenvoudiger testen :)
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan