Avatar billede tirdyr Nybegynder
19. januar 2009 - 18:51 Der er 5 kommentarer og
1 løsning

UTF-8 eller ANSI problem danske specialtegn og sessions

Jeg har et problem, hvis jeg gemmer mine php sider som utf-8 kan jeg ikke bruge sessions p�¥ mine sider, og hvis jeg gemmer dem som ANSI fucker mine �¦�¸�¥ op.

Nogen der har en l�¸sning..

Herunder er mine 3 sider hvori det er et problem
jeg vil p�¥ forh�¥nd gerne undskyld for den rodede programerring.. jeg er stadig nybegynder

"annoncestart.php"
<html>
<head>
<title></title>
</head>
<body>
<?php

$i=1; //Gad vide om man ikke kunne undg�¥ denne t�¦ller
$tid=time();
while ($i<=7) //Dette er fordi der ikke skal v�¦re en evig l�¸kke
{

if (date("N", $tid)=="3") // Find ud af om det er Onsdag (dag nummer 3)
{
$dag=date("d", $tid); // Her laves dag/m�¥ned/�¥r for den n�¦ste onsdag
$maaned=date("m", $tid);
$aar=date("Y", $tid);
}
$tid=$tid + (60 * 60 * 24 * 1); // Tjek den N�¦ste dag
$i++;
}
echo "<form method='post' action='annonce2.php'>";
echo "<b>Dag:</b><input type='text' name='dag' size='1' value='" . $dag . "'> M&aring;ned: <input type='text' name='maaned' size='2' value='" . $maaned . "'> &Aring;r: <input type='text' name='aar' size='4' value='" . $aar . "'><br />";
echo "Reklame Linie 1: <input type='text' name='reklame1' size='30' Value=' '><br />";
echo "Reklame Linie 2<input type='text' name='reklame2' size='30' Value='- Husk sm&oslash;rrebr&oslash;d skal bestilles senest 16.00'><br />";
echo "&Aring;bningstider Header1: <input type='text' name='aben1' size='30' Value='Aften &Aring;ben'><br />";
echo "&Aring;bningstider 1: <input type='text' name='aben2' size='30' Value='Alle dage fra klokken 17.00'><br />";
echo "&Aring;bningstider Header2: <input type='text' name='aben3' size='30' lang='da' Value='Frokost &Aring;ben'><br />";
echo "&Aring;bningstider2<input type='text' name='aben4' size='30' Value='Man-L&oslash;rdag fra klokken 11.30-14.30'><br />";
echo "<input type='submit' value='Lav PDF'><br />";
echo "</form>";
?>
</body>
</html>

annonce2.php
<?php
session_start();
$dag = $_REQUEST["dag"];
$maaned = $_REQUEST["maaned"];
$aar = $_REQUEST["aar"];
$reklame = strtolower($_REQUEST["reklame1"]);
$reklame2 = strtolower($_REQUEST["reklame2"]);
$aben1 = strtolower($_REQUEST["aben1"]);
$aben2 = strtolower($_REQUEST["aben2"]);
$aben3 = strtolower($_REQUEST["aben3"]);
$aben4 = strtolower($_REQUEST["aben4"]); //linie 10

$dansk = array("�¦", "�¸", "�¥", "��", "��", "��");
$html  = array("&#230;", "&#248;", "&#229;", "&#198;", "&#216;", "&#197;");

$reklame = str_replace($dansk, $html, ucwords($reklame));
$reklame2 = str_replace($dansk, $html, ucwords($reklame2));
$aben1 = str_replace($dansk, $html, ucwords($aben1));
$aben2 = str_replace($dansk, $html, ucwords($aben2));
$aben3 = str_replace($dansk, $html, ucwords($aben3));
$aben4 = str_replace($dansk, $html, ucwords($aben4)); // linie 20

$con = mysql_connect("minserver","minbruger","mitpass");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("dagens_ret", $con);
$result = mysql_query("SELECT * FROM annonce WHERE dag = $dag AND maaned = $maaned AND aar = $aar");
if (mysql_fetch_array($result) == 0)
  {
  mysql_query("INSERT INTO annonce (dag, maaned, aar, reklame1, reklame2, aben1, aben2, aben3, aben4) VALUES ('$dag', '$maaned', '$aar', '$reklame', '$reklame2', '$aben1', '$aben2', '$aben3', '$aben4')");
  }
else
  {
  mysql_query("UPDATE annonce SET reklame1=$reklame, reklame2=$reklame2, aben1=$aben1, aben2=$aben2, aben3=$aben3, aben4=$aben4 WHERE dag=$dag AND maaned=$maaned AND aar=$aar");
  }

$result = mysql_query("SELECT * FROM annonce WHERE dag = $dag AND maaned = $maaned AND aar = $aar");
while($row = mysql_fetch_array($result))
  {
  // $_SESSION = $row;
  $_SESSION['dag'] = $row['dag'];
  $_SESSION['maaned'] = $row['maaned'];
  $_SESSION['aar'] = $row['aar'];
  $_SESSION['reklame1'] = $row['reklame1'];
  $_SESSION['reklame2'] = $row['reklame2'];
  $_SESSION['aben1'] = $row['aben1'];
  $_SESSION['aben2'] = $row['aben2'];
  $_SESSION['aben3'] = $row['aben3'];
  $_SESSION['aben4'] = $row['aben4'];
//  echo $_SESSION['dag'];

  }

header( 'Location: annonce.php' ) ;
?>

annonce.php

<?php
session_start();
include ('class.ezpdf.php');
$con = mysql_connect("minserver","minbruger","mitpass");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
$diff=array(197=>'Lacute',229=>'lacute',198=>'Cacute',230=>'cacute',216=>'Rcaron',248=>'rcaron');

$dansk = array("�¦", "�¸", "�¥", "��", "��", "��");
$html = array("&#230;", "&#248;", "&#229;", "&#198;", "&#216;", "&#197;");
// $html2 = array("%C3%A6", "%C3%B8", "%C3%A5", "%C3%86", "%C3%98", "%C3%85");
$dag = str_replace($html, $dansk, $_SESSION['dag']);
$maaned = str_replace($html, $dansk, $_SESSION['maaned']);
$aar = str_replace($html, $dansk, $_SESSION['aar']);

$reklame = str_replace($html, $dansk, $_SESSION['reklame1']);
$reklame2 = str_replace($html, $dansk, $_SESSION['reklame2']);
$aben1 = str_replace($html, $dansk, $_SESSION['aben1']);
$aben2 = str_replace($html, $dansk, $_SESSION['aben2']);
$aben3 = str_replace($html, $dansk, $_SESSION['aben3']);
$aben4 = str_replace($html, $dansk, $_SESSION['aben4']);



$udfed = "<b>" . $ud . "</b>";
$onsdag = date("Ymd", mktime(0, 0, 0, $maaned, $dag, $aar));
$idag = $onsdag; // date('Ymd');
$omsyvdage = date("U", mktime(0, 0, 0, $maaned, $dag, $aar)) + (60 * 60 * 27 * 8);
$dage = array('monday' => 'mandag', 'tuesday' => 'tirsdag', 'wednesday' => 'onsdag', 'thursday' => 'torsdag', 'friday' => 'fredag', 'saturday' => 'l�¸rdag', 'sunday' => 's�¸ndag');
$omsyvdageto = date('Ymd',$omsyvdage);
$ugenr = date(W);
$ugenr = $ugenr+1;
$ugenr = $ugenr-1;
$ugenr2 = $ugenr+1;
$uge = "Uge: " . $ugenr . "-" . $ugenr2;

$size=array('8.6','10');
$pdf =& new Cezpdf($size,'portrait');
$pdf->addJpegFromFile('annonce.jpg','0','0','243.7','283.4');
$pdf->selectFont('./fonts/Helvetica.afm'); // ,array('encoding'=>'WinAnsiEncoding','differences'=>$diff));
$pdf->setColor('255','255','255');
$pdf->addText(175,218,14,$uge,0);
$pdf->setColor('0','0','0');
$pdf->addText(60,200,10,$udfed,0);
$i=185;
$ii=$i-25;
mysql_select_db("dagens_ret", $con);
$result = mysql_query("SELECT * FROM dagens WHERE dato >= $idag AND dato < $omsyvdageto ORDER BY dato");
while($row = mysql_fetch_array($result))
  {
  $ugedag = date('l',mktime(0,0,0,$row['maaned'],$row['dag'],$row['aar']));
  $datolower = strtolower(date('l',mktime(0,0,0,$row['maaned'],$row['dag'],$row['aar'])));
  $firstupper = ucfirst($dage[$datolower]); //33
  $htmlspecial = str_replace($dansk, $html, $firstupper);
  $ret = ucwords($row['ret']);
  $ret = str_replace($html, $dansk, ucwords($ret));
  $dag = ltrim($row['dag'],'0');
  $maaned = ltrim($row['maaned'],'0');
  $test = "<b>" . $firstupper . " " . $dag . '/' . $maaned . ":</b>";
  $text = $test . $ret;
  $pdf->addText(30,$i,10,"$test",0); //$htmlspecial
  $pdf->addText(100,$i,10,"$ret",0);
  $i=$i-12;
  }
$pdf->addText(10,$i,10,"$reklame",0);
$i=$i-12;
$pdf->addText(10,$i,10,"$reklame2",0);
$i=$i-36;
$pdf->setColor('255','255','255');
$pdf->addText(90,$i,12,"$aben1",0);
$i=$i-10;
$pdf->addText(60,$i,10,"$aben2",0);
$i=$i-14;
$pdf->addText(90,$i,12,"$aben3",0);
$i=$i-10;
$pdf->addText(55,$i,10,"$aben4",0);
$i=$i-12;


$pdf->ezStream();
?>
Avatar billede coderdk Praktikant
19. januar 2009 - 20:12 #1
Det ligner ikke UTF-8 men UTF-16 du bruger - Det kunne se ud som om din browser er underlig ;P
Avatar billede tirdyr Nybegynder
19. januar 2009 - 21:03 #2
ok.. lad os bare sige at det er min browser der er underlig..
det hjælper mig bare ikke rigtigt, da hvis min browser kan være underlig kan det nemt ske for andre.. det skal siges at jeg har testet det på 2 maskiner, med to forskellige browsere på hver FF og IE
Avatar billede tirdyr Nybegynder
19. januar 2009 - 21:06 #3
hmm... måske har du ret.. hvorfor skriver den de underlige tegn i stedet for de danske specialtegn...

TEST:
AA=Å
aa=å
AE=Æ
ae=æ
OE=Ø
oe=ø
Avatar billede coderdk Praktikant
19. januar 2009 - 21:28 #4
Underligt. Nu ser det ud til at det virker ;)
Avatar billede tirdyr Nybegynder
19. januar 2009 - 22:25 #5
ja, og jeg har ikke ændret noget..
men der er dog stadig problemer med min seesions.. men jeg arbejder mig uden om dem ved at bruge min database istedet..
Avatar billede tirdyr Nybegynder
14. september 2010 - 13:52 #6
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester