Autor | Zpráva | ||
---|---|---|---|
radvis Profil |
#1 · Zasláno: 28. 8. 2010, 13:29:55
Ahoj, snažím se do db uložit:
$text = "Uživatel s přezdívkou $pnick Vás žádá o zařazení mezi přátele. <a href='sadasd'>Příjmout</a> | <a href='sadsa'>Odmítnout</a>"; $text = addslashes($text); //echo $text; exit; $this->db->query("INSERT INTO users_messages (msg_from, msg_to, date, text, title) VALUES('$pid', '$id', '$date', '$text', '$title') "); A u toho textu mi to pořád hází: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sadasd\'>Příjmout</a> | <a href=\\'sadsa\'>Odmítnout</a>', 'Žádost o přát' at line 1 Díky! |
||
Davex Profil |
#2 · Zasláno: 28. 8. 2010, 13:45:54
A když místo funkce
addslashes() použiješ funkci mysql_real_escape_string() , tak je to lepší?
|
||
radvis Profil |
#3 · Zasláno: 28. 8. 2010, 13:50:53
Bohužel, není, už jsem to zkoušel.
|
||
Alphard Profil |
#4 · Zasláno: 28. 8. 2010, 13:57:04 · Upravil/a: Alphard
radvis:
Jakou podobu vám to vypíše při odkomentování 3. řádku? Vzhledem k <a href=\\'sadsa\'>Odmítnout je tam zdvojené \ a apostrof ukončí retězec. Mimochodem, používání parametrických dotazů by tyhle problémy vyřešilo. |
||
radvis Profil |
#5 · Zasláno: 28. 8. 2010, 14:03:40
Vypíše to jak má. "Uživatel s přezdívkou daddy Vás žádá o zařazení mezi přátele. <a href=\'sadasd\'>Příjmout</a> | <a href=\'sadsa\'>Odmítnout</a>"
|
||
Alphard Profil |
#6 · Zasláno: 28. 8. 2010, 14:08:56 · Upravil/a: Alphard
A co tohle?
$this->db->query($q = "INSERT INTO users_messages (msg_from, msg_to, date, text, title) VALUES('$pid', '$id', '$date', '$text', '$title') "); echo $q; A rovnou připojím dotaz, jestli je vaše třída pro přístup k databázi důveryhodná. Nedělá tam bordel? |
||
radvis Profil |
#7 · Zasláno: 28. 8. 2010, 14:13:42
Vypíše to zase "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sadasd\'>Příjmout</a> | <a href=\\'sadsa\'>Odmítnout</a>', 'Žádost o přát' at line 1", ale když to dám:
$q = "INSERT INTO users_messages (msg_from, msg_to, date, text, title) VALUES('$pid', '$id', '$date', '$text', '$title') "; echo $q; exit; tak to vypíše: INSERT INTO users_messages (msg_from, msg_to, date, text, title) VALUES('1', '3', '1282997534', 'Uživatel s přezdívkou xxx Vás žádá o zařazení mezi přátele. Příjmout | Odmítnout', 'Žádost o přátelství') |
||
Davex Profil |
#8 · Zasláno: 28. 8. 2010, 14:17:27 · Upravil/a: Davex
Vypadá to jako CodeIgniter - zkoušel jsi metodu
$this->db->escape() ?
Nebo rovnou $this->db->insert() .
Doplněno: Aby se vypsal celý dotaz, tak by se měl výstup ošetřit: echo htmlspecialchars($q) .
|
||
radvis Profil |
#9 · Zasláno: 28. 8. 2010, 14:20:02
Nezkoušel to escape neznám a ten insert() bych dal, ale zas mít každý sql kód jiný, to by nevypadalo moc dobře
|
||
radvis Profil |
#10 · Zasláno: 28. 8. 2010, 14:28:19
Davex:
Tak ten insert() to řeší tak to tak asi nechám. htmlspecialchars() ti pokud se nemýlím ošetří tak, že to ti vypíše "bla <div> blabla" a to bymi pak bylo kničemu tam psát <a href=""></a> |
||
Davex Profil |
#11 · Zasláno: 28. 8. 2010, 15:08:19 · Upravil/a: Davex
radvis:
„htmlspecialchars() ti pokud se nemýlím ošetří tak, že to ti vypíše "bla <div> blabla"“ Nemýlíš se. Cílem bylo, vypsat úplnou podobu toho nefunkčního dotazu bez interpretace HTML kódu prohlížečem. |
||
radvis Profil |
#12 · Zasláno: 28. 8. 2010, 21:28:11
Nakonec jsem to udělal celé jinak, díky!
|
||
Časová prodleva: 14 let
|
0