Autor Zpráva
Anonymní
Profil *
Zdravim vsetkych, pokusam sa robit daco s databazou MySQL a konrektne pouzitim formulara pridat do databazy dake riadky. Problem je v tom ze sa zle koduju slovenske znaky. Som v PHP a tychto veciach uuuplny zaciatocnik.

Pozrel som si par rad kde sa pise nieco o header...blablabla. Suvisi to nejako s tym?? A kde to treba napisat lebo ked to napisem hned za <?php tak mi vypise chybu ze "Warning: Cannot modify header information - headers already sent by (output started at c:\phptest\pridaj_do_herbaru.php:5) in c:\phptest\pridaj_do_herbaru.php on line 6"

Kod php-cka:
<?php
if ($_POST["pressok"]) :
do {
if (!($_POST["slov"] and $_POST["lat"] and $_POST["slovcel"] and $_POST["latcel"] and $_POST["obrazok"])) { echo "Je potrebné vyplniť všetky položky!"; break; }
if (!mysql_connect()) { echo "Nepodarilo sa pripojiť k databáze!"; break; }
if (!mysql_select_db("bioweb")) { echo "Databáza \"bioweb\" neexistuje!"; break; }

$sql = "INSERT INTO herbar VALUES (\"".$_POST["slov"]."\", \"".$_POST["lat"]."\", \"".$_POST["slovcel"]."\", \"".$_POST["latcel"]."\", \"".$_POST["obrazok"]."\");";
$res = mysql_query($sql);
if (!res) { echo "Pri vkladaní položky nastala chyba!"; break; }
} while(0);
endif; ?>

a pokracovanie (formular): Ten myslim ani nie je dolezity ale podstatne je ze nikde nemam v dokumente napisane kodovanie. Ake mam pouzit??? Aky je rozdiel medzi tym iso... a windows-1250 ??? Ovplyvni nastavenie tychto veci aj vystup do databazy???

Dufam ze som sa vyjadril dostatocne jasne a dakujem za pomoc....


PS: Inak pouzivam system WinXP, a programky: Apache 1.33, PHP 5, MySQL 4.1.2


<form action="<?php echo $PHP_SELF ?>" method="post">
<input type="hidden" name="pressok" value="1">
<table>
<tr>
<td align="right">Slovenský názov:</td>
<td><input type="text" name="slov" size="30"></td>
</tr>
<tr>
<td align="right">Odborný názov:</td>
<td><input type="text" name="lat" size="30"></td>
</tr>
<tr>
<td align="right">Čeľaď:</td>
<td><input type="text" name="slovcel" size="20"></td>
</tr>
<tr>
<td align="right">Familia:</td>
<td><input type="text" name="latcel" size="20"></td>
</tr>
<tr>
<td align="right">Obrázok:</td>
<td><input type="text" name="obrazok" size="20"> .jpg</td>
</tr>
</table>
<input type="submit" name="ok" value="Vložiť záznam!">
</form>
temistokles
Profil
mal som rovnaky problem a po mnohych neuspesnych pokusoch som si na to vytvoril skript....

function makcene($str)

{
$cisla_znakov=array(190,232,157,158,242,228,239,188,138,200,141,142,19 3,248,216);
$znaky=array(318,269,357,382,328,228,271,317,352,268,356,381,193,345,3 44);
$i=-1;
foreach ($cisla_znakov as $znak)
{
$i++;
$str=str_replace(chr($znak), "&#".$znaky[$i].";", $str);
}
return $str;
}


pouzivam to takto:
$_POST["nieco"]=makcene($_POST["nieco"]);


asi to nie je cisty sposob, ale funguje! (na kodovani windows-1250)
temistokles
Profil
pozeram ze opera tam zobrazuje nejaky otaznik v riadku

$str=str_replace(chr($znak), "�".$znaky[$i].";", $str);


je to ampersand a krizik
FantomX1
Profil
hlavicka urcuje typ dokumentu, hlavicka dokumentu sa da ovplyvnit bud pomocou meta_tagov alebo pomcou PHP, castejsie ovplyvnovanie pisma sa robi pomocou meta znakov,
kodovanie nastavis touto syntaxou
<meta http-equiv="content-type" content="text/html; charset=windows-1250" /> das to hore do stranky este predtym nez zapises do stranky akykolvek text ktory ma byt viditelny uzivatelovi cize aj pred title. Aky je rozdiel medzi iso-8859-2 a windows-1250? Rozlisne rozlozenie znakov, na ine pozicie, cize znak je vzdy na bite, v inom poradi v asci tabulke, ale to ta teraz nemusi zaujimat. Je dolezite vediet ze ked vkladas do databazy nejake udaje s urcitym kodovanim tak ich musis aj pri takom istom kodovani vypisovat. Ak teda pridas texty do databazy cez dokument v ktorom mas kodovanie iso tak aj dokument co zobrazuje ten text musi mat kodovanie iso.
Toto téma je uzamčeno. Odpověď nelze zaslat.