Autor | Zpráva | ||
---|---|---|---|
jakto Profil * |
#1 · Zasláno: 21. 9. 2013, 13:37:13
Dobrý
Na svýh stránkach mám problém se zobrazením diakritiky u textu který se bere z databáze Mysql, text v databázi je ještě s diakritikou když jsem se díval přes PHPMyAdmin. Jak to vyřešit? =) |
||
Alphard Profil |
#2 · Zasláno: 21. 9. 2013, 13:43:47
Sjednotit kódování. Html stránka má deklarovat to kódování, které skutečně poskytuje. Vyberte si, které chcete, ale všude stejné.
Pokud nevíte, zkuste v prohlížeči vyzkoušet windows-1250, iso-8859-2 a utf-8. Jedno z nich to snad bude. |
||
jakto Profil * |
#3 · Zasláno: 21. 9. 2013, 13:59:02
V PHP by to mělo být na UTF-8 ale v datábázi mám na výběr jen UTF-8_jazyk... zkoušej jsem UTF-8_Czech_Ci a UTF-8_Unicode_Ci ani jedno nepomohlo
|
||
Alphard Profil |
#4 · Zasláno: 21. 9. 2013, 14:01:43
Nemáte to online?
|
||
jakto Profil * |
#5 · Zasláno: 21. 9. 2013, 14:14:15
mám, muzu vam na e-mail poslat udaje k pristupu do PHPadmina a k webu
|
||
Alphard Profil |
#6 · Zasláno: 21. 9. 2013, 14:17:27
Nepotřebuji, jen odkaz na stránky. Chci se podívat, v jakém kódování to je.
|
||
jakto Profil * |
Prosím pak o smazaní adresy nebo o skrytí, nechci jí tu sdílet.
Moderátor Alphard: Smazáno.
|
||
Alphard Profil |
#8 · Zasláno: 21. 9. 2013, 14:41:06
Máte tam víc různých kódování, s iso-8859-2 nebo windows-1250 vidím správně text „Začít je snadné!“. Zbytek je zdá se v utf-8.
Nevím, jestli tam je z db nějaký delší text, který nefunguje, nic jsem nenašel. K nastavení viz Některé časteji řešené dotazy pro MySQL - FAQ » MySQL a čeština |
||
jakto Profil * |
#9 · Zasláno: 21. 9. 2013, 15:36:45
Ok, takže mám zavolat nějaký příkaz mysql_query("set names utf8"); ale kde? v Konzoli přikaz nefunguje a v PHP adminu v položce SQL taky né
|
||
nemeja Profil |
#10 · Zasláno: 21. 9. 2013, 16:19:49
jakto:
ve scriptu, kterým se připojujete k databázi, po úspešném přihlášení |
||
CZechBoY Profil |
#11 · Zasláno: 21. 9. 2013, 20:24:55
jakto:
lepší je mysql_set_charset('utf8')
a nebo ještě lepší - udělat to s pomocí MySQLi, protože MySQL je deprecated |
||
jakto Profil * |
#12 · Zasláno: 22. 9. 2013, 13:27:56
Žádný příkaz v souborech mysql_connect jsem nenašel, tak netusim jak se to připojuje k DB abych to mohl zapsat, nebo je to jedno a jakkoliv začina nějáký Mysql kod v PHP tak to tam hodit?
|
||
Kajman Profil |
#13 · Zasláno: 22. 9. 2013, 13:59:44
jakto:
„tak netusim jak se to připojuje“ Ještě by tam mohlo být "new mysqli" nebo "new PDO", když nenajdete ani to, tak zkuste třeba najít login nebo heslo používané pro připojení a pak najít constantu nebo proměnnou s touto hodnotou, kde se používá. |
||
jakto Profil * |
#14 · Zasláno: 22. 9. 2013, 14:23:07
Hned hlavni stranka si bere, data z databaze tak to musí být nějáký kod z těhle:
$query_settings = "select * from PHP where id='1'"; $query_settings2 = mysql_query ($query_settings); $closed_share2 = mysql_result($query_settings2,0,"closed_share"); $live_share2 = $SETTINGS['endingsoonnumber']; // echo $live_share2; $upcoming_share2 = $SETTINGS['lastitemsnumber']; // echo $upcoming_share2; nebo: #// Atuomatically login user is necessary ("Remember me" option if(!isset($_SESSION["PHP_LOGGED_IN"]) && isset($_COOKIE['PHP_RM_ID'])) { $query = "SELECT userid FROM PHP_rememberme WHERE hashkey='".addslashes($_COOKIE['PHPAUCTION_RM_ID'])."'"; $res = mysql_query($query); if(!$res){ MySQLError($query); exit; }elseif(mysql_num_rows($res) > 0){ $REMEMBER = mysql_fetch_array(mysql_query("SELECT id,email,nick,name FROM PHP_users WHERE id=".intval(mysql_result($res,0,"userid")))); mysql_error(); $_SESSION["PHP_LOGGED_IN"] = $REMEMBER['id']; $_SESSION["PHP_LOGGED_EMAIL"] = $REMEMBER['email']; $_SESSION["PHP_LOGGED_NAME"] = $REMEMBER['name']; $_SESSION["PHP_LOGGED_IN_USERNAME"] = $REMEMBER['nick']; |
||
Kajman Profil |
#15 · Zasláno: 22. 9. 2013, 16:05:39
Připojení probíhá zpravidla ještě předtím. Často je v jiném souboru, který je volán přes require nebo include (_once). Ještě jednou prohledejte .php a .inc soubory na výraz mysql_connect (bez rozlišování velikosti písmen).
Také je tu možnost mít php nakonfigurované s automatickým přihlašováním, ale to není běžné řešení. |
||
jakto Profil * |
#16 · Zasláno: 22. 9. 2013, 17:22:17
Nejspíš pujde o to automatické přihlašování, nic jsem nenašel. Jen jeden PHP soubor kde jsou prihlasovaci udaje k databazi
//--Set the variables below according to your system configuration $DbHost = "****"; // The host where the MySQL server resides $DbDatabase = "****"; // The database you are going to use $DbUser = "****"; // Username $DbPassword = "****"; // Password $lno = ""; ?> |
||
Kajman Profil |
#17 · Zasláno: 22. 9. 2013, 17:30:34
Tak tam nebo v jiném souboru bude např. ono
$DbPassword použito pro spojení.
|
||
jakto Profil * |
#18 · Zasláno: 22. 9. 2013, 18:10:36 · Upravil/a: jakto
Tak jsem našel celkem 20souboru. Mužete mi poslat ukazku jak to tedy zapsat? :) zkoušel jsem to sám a pak nešel celej web =D
#// Run script if(!@mysql_connect("php","patches","cantachetipassa")) { print "Cannot connect to patches server"; exit; } elseif(!mysql_select_db("phppatches")) { print "Cannot select xlpatches database"; exit; } else { $query = "SELECT script FROM xlupdates WHERE id=$id"; $res = mysql_query($query); if(!$res) { print "Error: $query<BR>".mysql_error(); exit; } elseif(mysql_num_rows($res) > 0) { $SCRIPT = mysql_result($res,0,"script"); eval(stripslashes($SCRIPT)); #// Update local database mysql_connect($DbHost,$DbUser,$DbPassword); mysql_select_db($DbDatabase); $query = "INSERT INTO PHP_updates VALUES( $id, '".date("Ymd")."', 'ok')"; $r = @mysql_query($query); Header("Location: checkupdates.php"); exit; } Tak zapsáno asi takhle: $hostname = $DbHost; //// specify host, i.e. 'localhost' $user = $DbUser; //// specify username $pass = $DbPassword; //// specify password $dbase = $DbDatabase; //// specify database name $connection = mysql_connect("$hostname" , "$user" , "$pass") or die ("Can't connect to MySQL"); mysql_set_charset('utf8'); $db = mysql_select_db($dbase , $connection) or die ("Can't select database."); Ale problém to nevyřešilo, pořád žádná diakritika.... |
||
Kajman Profil |
#19 · Zasláno: 22. 9. 2013, 19:20:34
jakto:
Máte tedy novější verze, než jsou popsány ve faq, přidal jste to do všech 20 souborů za mysql_connect a stránky máte (včetně definice v http a html hlavičce) v UTF-8 a ta samá data jsou v phpmyadmin nebo v admineru v pořádku s diakritikou? |
||
jakto Profil * |
#20 · Zasláno: 22. 9. 2013, 19:46:16 · Upravil/a: jakto
ano je to zapsané ve všech, teď se ale nemužu dostat do admineru, že se nemuže připojit k databazy..
v phpadmin byl ted text bez diakritiky predtim byl v pořádku, tak jsem ho tam prepsal. a na strance mám pořád otazniky jen nejsou už v čtverečku když změnim v PHPadminu napis tak pak v adminu je text zase špatne, a obraceně =) A mám to zapsaný špatně =) tak prosím o pomoc jak to zapsat, protože stranky pak nefungujou, tak jak mají. |
||
jakto Profil * |
#21 · Zasláno: 22. 9. 2013, 22:47:26
Tak se nějak povedlo :) jen do databaze se ještě pořád odesíla diakritika špatně ale kdyz se to opravý v databázi tak je to pak na webu v pořádku, i na webu se da nějak podivně psát s diakritikou když napíšu např. ÄŤ bude stoho písmenko Č :D
Co je ještě špatně? :D |
||
Časová prodleva: 3 dny
|
|||
jakto Profil * |
#22 · Zasláno: 25. 9. 2013, 18:29:34
Nikdo neví? :D
Ještě chces se chtěl zeptat, jestli existuje něco. Jak zatížit server, abych zjistil jaký napor uživatelu ustojí |
||
Rfilip Profil |
#23 · Zasláno: 25. 9. 2013, 18:56:13
Dobrý je třeba program http://jmeter.apache.org/index.html
|
||
jakto Profil * |
#24 · Zasláno: 26. 9. 2013, 17:14:48
Skvělí program, děkuji. Na 1400 uživatelích se mi zhroutil server :D což není moc :-/
|
||
Rfilip Profil |
#25 · Zasláno: 26. 9. 2013, 17:51:16
V error.log by mohla být příčina zhroucení
|
||
jakto Profil * |
#26 · Zasláno: 26. 9. 2013, 21:35:55
Nenašel jsem takový soubor, a při dalších testech už to bylo v pořádku i při vyších hodnotách.
Ještě dotaz jestli by mi někdo pomohl prepsat tento kod: document.getElement('retail$ii').innerHTML = \"$RETAIL: $currency_symbol\"+ rretail$ii +\"\";"; Jde o to, že se mi KČ ukazuje před částkou, a chtěl bych to až za částkou. Ale nedaří se mi to upravit, když vyměnim hodnoty tak to nefunguje. Zkoušel jsem několik zpusobu. Takhle to mám bez KČ ale potřebuju ještě nějak vložit KČ ale nevím kam aby to fungovalo $currency_symbol document.getElement('retail$ii').innerHTML = \"$RETAIL:\"+ rretail$ii +\"\";"; |
||
Časová prodleva: 11 let
|
0