Problém s diakritikou – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problém s diakritikou – PHP – Fórum – Programujte.comProblém s diakritikou – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
hujukulu0
Newbie
9. 8. 2012   #1
-
0
-

Mám problém , když posílám text php kódu který ho uloží do databáze tak se text posíla ale když narazí na znak ěščřžýáíé zastaví se a ukončí tím se mi do databáze nepošle celý text , u mě v počítači to funguje jak má ale když jsem to dal na web dělá to právě tohle je chyba v php kodu nebo v nastavení databáze ? všude v databázi jsem nastavoval utf8 czech ci ale prostě když to dám na net tak mi to tam nefunguje 

php kód zde : 
 

<?php
$nadpis=$_POST["nadpis"];
$redakce=$_POST["redakce"];
$novinka = "<div class=\"redakce\"><h2>$nadpis</h2><p class=\"p\">$redakce</p><p  class=\"datum\">Datum:$datum</p></div>";
$db="mysql42733";
$tb="redakce";
$spojeni=mysql_connect("hz-mysql3","mysql40769"," ");
mysql_select_db($db, $spojeni);
mysql_query("INSERT INTO $tb values ('','$novinka')", $spojeni);

?>
Nahlásit jako SPAM
IP: 89.111.98.–
nergal+1
Návštěvník
9. 8. 2012   #2
-
0
-

v php a html aj v mysql(pre spojenie) musis mat nastavene rovnake kodovanie

php na zaciatok skriptu:

<?php
header("Content-Type: text/html; charset=UTF-8");
...
// po otvoreni spojenia mysql treba povedat mysql ze budes pouzivat utf8 tiez
mysql_set_charset('utf8');
...
?>

samozrejme mozes utf8 nahradit inym kodovanim to by malo problem vyriesit ;)

Nahlásit jako SPAM
IP: 85.135.182.–
viem že neviem čo viem
hujukulu0
Newbie
9. 8. 2012   #3
-
0
-

#2 nergal
Když jsem to tam dal tak mi to vyhodilo takovýdle error :
 

Warning: mysql_set_charset() [function.mysql-set-charset]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/zbranelegalne.cz/zbranelegalne.cz/index2.php on line 93

Warning: mysql_set_charset() [function.mysql-set-charset]: A link to the server could not be established in /home/zbranelegalne.cz/zbranelegalne.cz/index2.php on line 93


script na vypsání z databáze  : 
 

<?php
header("Content-Type: text/html; charset=UTF-8");

mysql_set_charset('utf8');
header("Content-Type: text/html; charset=windows-1250");
$spojeni=mysql_connect("hz-mysql3","mysql40769"," ");
mysql_select_db('mysql42733');

$navrat=mysql_query( 'SELECT `redakce`.`text`'
        . ' FROM `redakce`'
        . ' ORDER BY `redakce`.`text` DESC LIMIT 0, 5 ', $spojeni);
echo mysql_error();

while (list($text) = mysql_fetch_row($navrat))
printf($text);

?>
Nahlásit jako SPAM
IP: 89.111.98.–
z_moravec
~ Redaktor
+3
Posthunter
9. 8. 2012   #4
-
+1
-
Zajímavé

#3 hujukulu
Nejdřív se musíš připojit a až pak něco posílat MySQL:

<?
header("Content-Type: text/html; charset=UTF-8");

header("Content-Type: text/html; charset=windows-1250");
$spojeni=mysql_connect("hz-mysql3","mysql40769","hujukulu");
mysql_select_db('mysql42733');
mysql_set_charset('utf8');
...
Nahlásit jako SPAM
IP: 147.251.29.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
hujukulu0
Newbie
9. 8. 2012   #5
-
0
-

#4 z_moravec
Problém je pořád stejenj :-(

Nahlásit jako SPAM
IP: 89.111.98.–
KIIV
~ Moderátor
+43
God of flame
9. 8. 2012   #6
-
0
-

#4 z_moravec
proc tam rves obe kodovani? muze to vzit az to druhy.. a pak to bude zase blbe

(edit: aha on to tam pere uz hujukulu)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
hujukulu0
Newbie
9. 8. 2012   #7
-
0
-

#6 KIIV
to už je opravené je tam pouze jedno a furt mi do mysql nepříde ani jeden znak s nějakou diakritikou 

Nahlásit jako SPAM
IP: 89.111.98.–
KIIV
~ Moderátor
+43
God of flame
9. 8. 2012   #8
-
0
-

to uz muze byt hromada duvodu... spatne nastavene v databazi, spatne ulozene v databazi, chybi meta tag, ... se moc dobre neda odhadnout, nicmene to je obvykle extremne snadne rozjet ... takze bych v tom zadnou slozitost nehledal

(jo jeste to muze sejmout www server)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
nergal+1
Návštěvník
9. 8. 2012   #9
-
0
-

este ma napada ze problem moze byt v stranke ktora odosiela formular jej kodovanie musi byt nastavene na to iste kodovanie ako v tej kde to spracovavas ;)

Nahlásit jako SPAM
IP: 85.135.182.–
viem že neviem čo viem
hujukulu0
Newbie
9. 8. 2012   #10
-
0
-

#9 nergal
na stránce kde data zpracovávám sem si je nechával na konci scriptu i vypsat a byla v pořádku 

Nahlásit jako SPAM
IP: 89.111.98.–
KIIV
~ Moderátor
+43
God of flame
9. 8. 2012   #11
-
0
-

na konci scriptu je stejny kodovani jako na zacatku :D  jestli tam mas  cp1250 a pak to zenes do mysql jako utf8 tak to nebude to pravy orechovy... 

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
nergal+1
Návštěvník
9. 8. 2012   #12
-
0
-

tak este jedno ma napada ze

mysql_set_charset funguje az urcitej verzie mysql

predtym sa pouzivalo nieco taketo:

<?php 
mysql_query("SET NAMES utf8"); 
mysql_query("SET CHARACTER SET utf8"); 
?>
Nahlásit jako SPAM
IP: 85.135.182.–
viem že neviem čo viem
hujukulu0
Newbie
9. 8. 2012   #13
-
0
-

#11 KIIV
všechno kódovaní jsem předělával na utf-8 

Nahlásit jako SPAM
IP: 89.111.98.–
CZechBoY+4
Věrný člen
9. 8. 2012   #14
-
0
-

#3 hujukulu
pošli sem odkaz na stránku nebo aspoň celej zdroj, jinak se nikdy nic nevyřeší :)

http://www.testing.jabko.net/kodovani.php

<?php
mysql_connect('localhost','testing', 'moje_supertajne_heslo_ktere_nikdo_nevi');
mysql_select_db('testing');
mysql_set_charset('utf8');
?>
<!DocType HTML>
<html>
<head>
<meta charset="utf8"/>
</head>
<body>
<form method="post">
<input type="text" name="test"/>
<button type="submit">Odeslat</button>
</form>
<?php
if(isset($_POST['test'])) {
if(MySQL_Query("INSERT INTO test SET test='".mysql_real_escape_string($_POST['test'])."' "))
  echo "Úspěšně vloženo ".htmlspecialchars($_POST['test'],ENT_QUOTES);
else
  echo mysql_error();
}
else {
$res=MySQL_Query("SELECT * FROM test LIMIT 20");
while($row=MySQL_Fetch_Assoc($res))
  echo htmlspecialchars($row['test'],ENT_QUOTES).'<br/>';
}
?>
</body>
</html>

kodování tabulky v databázi


další problém může být kodování souboru

Nahlásit jako SPAM
IP: 213.192.10.–
hujukulu0
Newbie
9. 8. 2012   #15
-
0
-

#14 CZechBoY
celý zdroják pro vypsání  

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Zbrane legálne</title>
<!--[if IE]>
<link rel="nofollow" href="css/stylyIE.css" rel="stylesheet" type="text/css">
<![endif]-->
<link rel="nofollow" href="css/styly.css" rel="stylesheet" type="text/css">
<style>
.redakce {background-color:#333;
          border: 2px groove WHITE;
    border-radius: 10px;
    margin: 5px 0 5px 10px;
    color:#FFFFFF;
    padding: 0 10px 0 10px;
    width:594px;
    height:auto;
    }
.obsah {margin:auto;
        width:600px;
  height:auto;
  background-color:#0000FF;
  border: 2px solid BLACK;
  }
.form {margin-left:130px;
       }
.img {
     

   border: 1px solid BLACK;
   }
.p {
    }
.odkaz {color:#000000;
        background-color:#FFFFFF;
  border-color:#000000;
  border-style:groove;
  border-width:2px;
  padding: 4px;
  margin: 4px;
  -webkit-transition-duration:0.3s;
     -moz-transition-duration:0.3s;
  }
.odkaz:hover {color:#FFFFFF;
        background-color:#000000;
  border-color:#FFFFFF;
  border-style:groove;
  border-width:2px;
  padding: 4px;
  margin: 4px;
  -webkit-transition-duration:0.3s;
     -moz-transition-duration:0.3s;
  }
.datum {position:relative;
        left:480px;
 
        bottom:1px;;
  right:0;
}
</style>
<script>
function prdel() {
   var div2= document.getElementById("obsah2").clientHeight;
      if (div2 >= 530) document.getElementById("obsah").style.height= "auto";    
}

</script>
</head>

<body onLoad="prdel()">
<div id="stranka">
<div id="logo">
<div id="menu">
<?php include_once("menu.htm") ?>
</div>
</div>

<div id="menu2">
<?php include_once("menu2.htm") ?>
</div>
<div id="obsah" style="background-color:#FFFFFF;">
<div id="obsah2">


<p>     </p>
<?





$spojeni=mysql_connect("hz-mysql3","mysql40769"," ");
mysql_select_db('mysql42733');
mysql_set_charset('utf8');
$navrat=mysql_query( 'SELECT `redakce`.`text`'
        . ' FROM `redakce`'
        . ' ORDER BY `redakce`.`text` DESC LIMIT 0, 5 ', $spojeni);
echo mysql_error();

while (list($text) = mysql_fetch_row($navrat))
printf($text);

?>

</div>
</div>
</div>
</body>
</html>


celý zdroják pro zapsání :
 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset="utf-8">
<title>Redakční systém</title>

</head>
<body bgcolor="#FFFFFF" text="#000000" onLoad="poslani()">


<?php


$nadpis=$_POST["nadpis"];
$redakce=$_POST["redakce"];
$datum=$_POST["datum"];
$novinka = "<div class=\"redakce\"><h2>$nadpis</h2><p class=\"p\">$redakce</p><p  class=\"datum\">Datum:$datum</p></div>";
$db="mysql42733";
$tb="redakce";
$spojeni=mysql_connect("hz-mysql3","mysql40769"," ");
mysql_set_charset('utf8');
mysql_select_db($db, $spojeni);
mysql_query("INSERT INTO $tb values ('','$novinka')", $spojeni);
echo($redakce);
?>


<script type="text/javascript">
function poslani() {
window.location.href="redaknisystem.php";
}
</script>
</body>
</html>
Nahlásit jako SPAM
IP: 89.111.98.–
CZechBoY+4
Věrný člen
9. 8. 2012   #16
-
0
-

#15 hujukulu
taky si mohl použít zvýrazňovač tady na foru

koukni se do tý databáze přes nějakej nástroj, kterej má funkční kodování - phpMyAdmin, Adminer, ...

jestli to máš v databázi blbě tak ti samozřejmě správně kodování stránky nepomůže

Nahlásit jako SPAM
IP: 213.192.10.–
hujukulu0
Newbie
10. 8. 2012   #17
-
0
-

#16 CZechBoY
ok , za ten zvýrazňovač sorry sem tu nový ;) , jinak dík za radu :)

Nahlásit jako SPAM
IP: 89.111.98.–
hujukulu0
Newbie
21. 8. 2012   #18
-
0
-

Tak já už prostě nevím .. 
kod pro vložení do databáze :
 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset="utf-8"">
<title>Redakční systém</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">


<?php
$nadpis=$_POST["nadpis"];
$redakce=$_POST["redakce"];
$datum=$_POST["datum"];
$novinka = "<div class=\"redakce\"><h2>$nadpis</h2><p class=\"p\">$redakce</p><p  class=\"datum\">Datum:$datum</p></div>";
$db="mysql42733";
$tb="redakce";
$spojeni=mysql_connect("hz-mysql3","mysql40769"," ");
mysql_set_charset('utf8');mysql_select_db($db, $spojeni);
mysql_query("INSERT INTO $tb values ('','$novinka')", $spojeni);
echo($redakce);
//header("Location: redaknisystem.php");


?>
</body>
</html>

Kód pro vypsání z databáze:
 


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset="utf-8"">
<title> </title>
<!--[if IE]>
<link rel="nofollow" href="css/stylyIE.css" rel="stylesheet" type="text/css">
<![endif]-->
<link rel="nofollow" href="css/styly.css" rel="stylesheet" type="text/css">

<script>
function prdel() {
	  var div2= document.getElementById("obsah2").clientHeight;
      if (div2 >= 530) document.getElementById("obsah").style.height= "auto";     
}

</script>
</head>

<body onLoad="prdel()">
<div id="stranka">
<div id="logo">
<div id="menu">
<?php include_once("menu.htm") ?>
</div>
</div>

<div id="menu2">
<?php include_once("menu2.htm") ?>
</div>
<div id="obsah" style="background-color:#FFFFFF;">
<div id="obsah2">


<p>    </p>


<?
$spojeni=mysql_connect("hz-mysql3","mysql40769"," ");
mysql_select_db('mysql42733');
mysql_set_charset('utf8');
$navrat=mysql_query( 'SELECT `redakce`.`text`'
        . ' FROM `redakce`'
        . ' ORDER BY `redakce`.`text` DESC LIMIT 0, 5 ', $spojeni);
echo mysql_error();

while (list($text) = mysql_fetch_row($navrat))
printf($text);?>

</div>
</div>
</div>
</body>
</html>

nastavení tabulek v databázi : 

Nahlásit jako SPAM
IP: 89.111.98.–
CZechBoY+4
Věrný člen
21. 8. 2012   #19
-
0
-

diakritika ti na tom webu funguje správně? zkusil bych eště to kodování souboru..

Nahlásit jako SPAM
IP: 213.192.10.–
hujukulu0
Newbie
21. 8. 2012   #20
-
0
-

#19 CZechBoY
ano to co nevypisuji z databáze tak u toho je diakritika v pohodě ale jak to leze z databáze je problém 

Nahlásit jako SPAM
IP: 89.111.98.–
hujukulu0
Newbie
21. 8. 2012   #21
-
0
-

Ještě abych doplnil když přímo v databázi tu diakritiku doplnim tak jí tak jí v databázi vidim ale když to opět vypisuji z databáze tak už sem mi to zase nevypíše 

Nahlásit jako SPAM
IP: 89.111.98.–
CZechBoY+4
Věrný člen
21. 8. 2012   #22
-
0
-

#21 hujukulu
když vypisuješ v phpMyAdminu/jiným nástrojem nebo v nějakém tvém skriptu, kde nefaká diakritika?

Nahlásit jako SPAM
IP: 213.192.10.–
hujukulu0
Newbie
21. 8. 2012   #23
-
0
-

#22 CZechBoY
už nic, te´d jsem to vypisování vyřešil ale pořád mi do databáze žádná diakritika nepříde 

Nahlásit jako SPAM
IP: 89.111.98.–
CZechBoY+4
Věrný člen
21. 8. 2012   #24
-
0
-
Nahlásit jako SPAM
IP: 213.192.10.–
hujukulu0
Newbie
21. 8. 2012   #25
-
0
-

#24 CZechBoY
jojo výpis už funguje k tédle funkci sem se nějak ubec nedostal 

Nahlásit jako SPAM
IP: 89.111.98.–
Řešení
CZechBoY+4
Věrný člen
21. 8. 2012   #26
-
+1
-
Zajímavé
Vyřešeno Nejlepší odpověď

#25 hujukulu
tak ji tam zkus hodit..

ten výpis:

koukal jsem, že si tam měl blbě uvozovky u toho meta tagu s kodováním....

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Redakční systém</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">


<?php
$nadpis=mysql_real_escape_string($_POST["nadpis"]);
$redakce=mysql_real_escape_string($_POST["redakce"]);
$datum=mysql_real_escape_string($_POST["datum"]);
$novinka = "<div class=\"redakce\"><h2>$nadpis</h2><p class=\"p\">$redakce</p><p  class=\"datum\">Datum:$datum</p></div>";
$db="mysql42733";
$tb="redakce";
$spojeni=mysql_connect("hz-mysql3","mysql40769"," ");
mysql_set_charset('utf8');
mysql_select_db($db, $spojeni);
mysql_query("INSERT INTO $tb values ('','$novinka')", $spojeni);
echo($redakce);
//header("Location: redaknisystem.php");


?>
</body>
</html>
Nahlásit jako SPAM
IP: 213.192.10.–
hujukulu0
Newbie
21. 8. 2012   #27
-
0
-

#26 CZechBoY
jžš :D ono to funguje , strašně ti děkuji , dal sem tam tu funkci a už to de, strašně moc ti děkuju :)

Nahlásit jako SPAM
IP: 89.111.98.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý