Autor | Zpráva | ||
---|---|---|---|
gerix Profil |
#1 · Zasláno: 25. 3. 2012, 20:42:47
Zdravím, mám tenhle kód:
$id = $_POST["id"]; $name = $_POST["name"]; mysql_query("UPDATE ps_product_lang SET name='$name' WHERE id_product=$id"); TADY: name='$name' jsou asi špatně uvozovky, ale nevím jak na to. Když v $name mám zadáno v textovém poli na předchozí stránce tohle: Liťáky 26" černé - uloží se to do db jako Liťáky 26 - bez slova černé a bez uvozovky jak to tedy opravit aby bylo vše ok? Díky za radu |
||
Taps Profil |
#2 · Zasláno: 25. 3. 2012, 20:48:27
gerix:
máš nastavené všude jednotné kǒdování ?..samotný sql příkaz je v pořádku jen ho ještě ošetřit proti sql injection |
||
Someone Profil |
mysql_query("UPDATE ps_product_lang SET name='".$name."' WHERE id_product='".$id."'"); |
||
Taps Profil |
#4 · Zasláno: 25. 3. 2012, 20:50:09
Someone:
Myslím si, že to daný problém nevyřeší |
||
gerix Profil |
cely to mam takhle:
zpracuj.php <?php $MySQL_server="localhost"; $MySQL_user="dsf"; $MySQL_user_password="asd"; $MySQL_db="asd"; $spojeni=mysql_connect($MySQL_server,$MySQL_user,$MySQL_user_password); $spojenidb=mysql_select_db($MySQL_db); $id = $_POST["id"]; $name = $_POST["name"]; mysql_query("SET character_set_results=utf8"); mysql_query("SET character_set_connection=utf8"); mysql_query("SET character_set_client=utf8"); mysql_query("SET names='utf8';"); mysql_query("UPDATE ps_product_lang SET name='".$name."' WHERE id_product=$id"); Header('Location: formular.html'); ?> formular.html <form method="POST" action="zpracuj.php"> <input type="hidden" name="id" value="1056"> <input type="text" name="name" value="Rám FORCE MTB 26 - modro-bílý L50"> <button>Upravit!</button> </form> + soubory uložený v UTF-8 Kde by tedy mohla být chyba? Děkuji |
||
Taps Profil |
#6 · Zasláno: 25. 3. 2012, 21:03:37
gerix:
a hlavičce html dokumentu máš nastavené jaké kódování ? v jakém kódování je soubor uložen ? |
||
gerix Profil |
#7 · Zasláno: 25. 3. 2012, 21:05:30
Taps:
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> |
||
pcmanik Profil |
#8 · Zasláno: 25. 3. 2012, 21:08:56
Someone:
Prevadzas cislo na string. To je absolutne zbytocne |
||
Taps Profil |
#9 · Zasláno: 25. 3. 2012, 21:08:59
gerix:
zkus upravit set names, viz níže mysql_query("set names utf8"); |
||
Han Profil |
#10 · Zasláno: 25. 3. 2012, 21:10:15
gerix:
Skús použiť $name=mysql_real_escape_string($_POST['name'])
|
||
gerix Profil |
#11 · Zasláno: 25. 3. 2012, 21:11:38
Taps:
Zkusil jsem, ale bohužel nepomohlo. pcmanik: Nevím co myslíš konkrétně? |
||
Someone Profil |
#12 · Zasláno: 25. 3. 2012, 21:12:41
gerix:
„Nevím co myslíš konkrétně?“ Myslí toto: mysql_query("UPDATE ps_product_lang SET name='".$name."' WHERE id_product='".$id."'"); |
||
gerix Profil |
#13 · Zasláno: 25. 3. 2012, 21:13:25
Han:
Taky nepomohlo:( |
||
Taps Profil |
#14 · Zasláno: 25. 3. 2012, 21:20:25
gerix:
do stránky zpracuj.php dej níže uvedený kod a zakomentuj header <? print_r($_POST); ?> |
||
Someone Profil |
|||
Taps Profil |
gerix:
a nemáš ještě omezenou délku řetězce v phpmyadminu ? např. varchar 20... |
||
gerix Profil |
Taps:
varchar(128) utf8_general_ci print_r($_POST); => vypsalo to správně - Liťáky 26" černé info na mailu |
||
Someone Profil |
gerix:
Zkus si vypsat: $name = mysql_real_escape_string($_POST['name']); echo $name; |
||
gerix Profil |
#19 · Zasláno: 25. 3. 2012, 21:33:13
Someone:
jj přesně to vypsalo |
||
Someone Profil |
#20 · Zasláno: 25. 3. 2012, 21:36:26
Když odstraníš uvozovky, zapíše se to správně?
|
||
gerix Profil |
#21 · Zasláno: 25. 3. 2012, 21:38:27
Someone:
ano bez te uvozovky je všechno v pořádku |
||
Časová prodleva: 14 let
|
0