Deelnemerspdf speciale tekens uit databank converten

Status
Niet open voor verdere reacties.

xaltar

Gebruiker
Lid geworden
22 mrt 2010
Berichten
26
Dag allemaal

Op mijn website kunnnen mensen zich inschrijven voor workshops. Vervolgens maken we via een beveiligde stukje website, een automatisch deelnemerslijst (PDF) uit de gegevens van de databank. Maar in de pdf staan de speciale tekens (à, é, ë, ö, ....) niet goed. Zo wordt "cöördinator" => "coördinator".

Op de inschrijvingspagina en PDF werk ik dus al met de htmlentities. Op de inschrijvingspagina staat in mijn header UTF8.
Tweede ding dat ik al eens geprobeerd had is in phpMyAdmin de collatie van mijn tabel aan te passen van latin1_swedisch_ci naar utf8_unicode_ci. Ook zonder resultaat.

Inschrijvingspagina:
HTML:
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />

Verwerking inschrijving:
PHP:
$sql="INSERT INTO inschrijven (iDienst, iFunctie)
VALUES
(''".htmlentities($_POST[iDienst],ENT_COMPAT, 'ISO-8859-1')."')','".htmlentities($_POST[iFunctie],ENT_COMPAT, 'ISO-8859-1')."')";

PDF aanmaken:
PHP:
<?php

	require_once('auth.php');
    include('dbconnect.php');

error_reporting(E_ALL);

include ('class.ezpdf.php');
$vID = $_GET['vorming'];

$sql = 'SELECT `vID`, `vNaam` , FROM `vormingen` WHERE vID='.$vID;
$vormingResult = mysql_query($sql);		
while($vormingRow = mysql_fetch_row($vormingResult)) 
    {	
	$pdf =& new Cezpdf('A4','landscape');
	$pdf->selectFont('./fonts/Helvetica.afm');
	$pdf->ezText("Locatie: $vormingRow[6]   |   Lesgever: <b>$vormingRow[3]</b>", 11);
	$pdf->ezText('', 6); //lege lijn
	

$tableHeader=array('dienst'=>'<b>Dienst</b>','functie'=>'<b>Functie</b>');

  $query="SELECT i.iDienst , i.iFunctie FROM inschrijven i WHERE iVorming=".$vID;
  $result=mysql_query($query) or die('<p>Kan query ('.$query.') niet uitvoeren.</p>');
  while($myrow=mysql_fetch_row($result))
  {
    $arrayke=array();
	$arrayke['dienst']=html_entity_decode($myrow[9]);
	$arrayke['functie']=html_entity_decode($myrow[10]);
	
	$data[]=$arrayke;
  }
  
  

$pdf->ezTable($data,$tableHeader ,'<b>Deelnemerslijst</b>', array('showHeadings'=>1,'shaded'=>1,'xPos'=>'right','xOrientation'=>'left','width'=>780));
//$pdf->ezNewPage();


$pdf->ezStream();
?>

Iemand die raad weet? :confused:
Bedankt alvast!
 
Misschien staat hier een antwoord? PHP - Special characters in ezpdf document
Mocht EzPDF nog steeds tegenwerken zou je bijvoorbeeld DomPDF kunnen gebruiken.

Das al een handige link! Thnx!
Ik heb even geprobeerd wat er staat en het werkt deels:

- Voeg ik deze lijn toe
PHP:
$pdf->ezText(utf8_decode("\xc3\xb6\n"),0,array('justification'=>'centre'));
=> krijg ik inderdaad een ö te zien
- Maar ik werk met variabele uit een databank. Dit leverde error op
PHP:
$arrayke['dienst']=(utf8_decode('\xc3\xb6\n'),$myrow[9],array('justification'=>'centre'));
=> Parse error: syntax error, unexpected ',' in /home/public_html/deelnemer_pdf.php on line 76
 
Je moet het voorbeeld ook niet klakkeloos overnemen, enkel de functie aanroep utf8_decode is genoeg, het andere was alleen als voorbeeld-data.

Dit zou voldoende moeten zijn:
PHP:
$arrayke['dienst']= utf8_decode($myrow[9]);
 
Je moet het voorbeeld ook niet klakkeloos overnemen, enkel de functie aanroep utf8_decode is genoeg, het andere was alleen als voorbeeld-data.

Dit zou voldoende moeten zijn:
PHP:
$arrayke['dienst']= utf8_decode($myrow[9]);

Ah ok!
Ik heb de code letterlijk overgenomen, maar nog steeds zelfde probleem... :confused:
 
Phphulp.nl heeft het probleem helpen oplossen :)

PHP:
$sql="INSERT INTO inschrijven (iDienst, iFunctie)
  VALUES
 ('" . mysql_real_escape_string($_POST['iDienst']) . "', '" . mysql_real_escape_string($_POST['iFunctie']) . "')";

De PDFfile werkte nu wel met utf8_decode.
Zo dus:
PHP:
$arrayke['functie']=utf8_decode($myrow[10]);
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan