Autor Zpráva
jakto
Profil *
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
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 *
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
Nemáte to online?
jakto
Profil *
mám, muzu vam na e-mail poslat udaje k pristupu do PHPadmina a k webu
Alphard
Profil
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
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 *
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
jakto:
ve scriptu, kterým se připojujete k databázi, po úspešném přihlášení
CZechBoY
Profil
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 *
Žá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
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 *
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
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 *
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 = "";
?>
nic víc tam ale není...
Kajman
Profil
Tak tam nebo v jiném souboru bude např. ono $DbPassword použito pro spojení.
jakto
Profil *
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
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 *
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 *
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
jakto
Profil *
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
Dobrý je třeba program http://jmeter.apache.org/index.html
jakto
Profil *
Skvělí program, děkuji. Na 1400 uživatelích se mi zhroutil server :D což není moc :-/
Rfilip
Profil
V error.log by mohla být příčina zhroucení
jakto
Profil *
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 +\"\";";

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: