Autor | Zpráva | ||
---|---|---|---|
asusák Profil * |
#1 · Zasláno: 11. 8. 2009, 13:28:33
mám kod na vlkádání odkazů do databáze:
require_once("db.php"); $nazev = $_POST['nazev']; $odkaz = $_POST['odkaz']; $cele = "<img style='width: 4px; height: 6px;' src='images/bullet.gif' alt='->'> <a href=\'$odkaz\' class='side'>$nazev</a><br>"; $sql = mysql_query("INSERT INTO odkazy (`nazev`,`odkaz`,`cele`) VALUES ('$nazev','$odkaz','$cele')"); if($sql){ echo "Záznam byl úspěšne vložen do databázy! <a href='index.php'>Jdi na index administrace</a>"; } else { echo "Záznam sa nepodarilo vložit do databáze! <a href='#' onclick='history.back()'><- Zpět</a>"; } když se tam nevkládá to proměnná $cele tak to jde v pohodě, ale když se tam vloží tak to vyhodí: Záznam se nepodařilo vložit do databáze. |
||
Taps Profil |
#2 · Zasláno: 11. 8. 2009, 13:33:33
asusák
co ti zobrazí mysql_error? mysql_query("INSERT INTO odkazy (`nazev`,`odkaz`,`cele`) VALUES ('$nazev','$odkaz','$cele')") or die (mysql_error()); |
||
Alphard Profil |
#3 · Zasláno: 11. 8. 2009, 13:33:48
Zkuste to takhle:
$cele = mysql_real_escape_string("<img style='width: 4px; height: 6px;' src='images/bullet.gif' alt='->'> <a href=\'$odkaz\' class='side'>$nazev</a><br>"); $sql = mysql_query("INSERT INTO odkazy (`nazev`,`odkaz`,`cele`) VALUES ('$nazev','$odkaz','$cele')"); Stejnou funkcí by kvůli bezpečnosti měl projít $nazev i $odkaz. |
||
asusák Profil * |
#4 · Zasláno: 11. 8. 2009, 13:40:38
„$cele = mysql_real_escape_string("<img style='width: 4px; height: 6px;' src='images/bullet.gif' alt='->'> <a href=\'$odkaz\' class='side'>$nazev</a><br>");“
Když to zapíšu takhle tak se to sice zapíše do databáze ale ve sloupci cele se zapíše jen <img style a to je vše. No a vyhazuje to chybu: 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 'width: 4px; height: 6px;' src='images/bullet.gif' alt='->'> |
||
blaaablaaa Profil |
#5 · Zasláno: 11. 8. 2009, 14:40:00
function myEscape($string) { if(get_magic_quotes_gpc()) $string = stripslashes($string); return mysql_real_escape_string($string); } $cele = myEscape("<img style='width: 4px; height: 6px;' src='images/bullet.gif' alt='->'> <a href=\'$odkaz\' class='side'>$nazev</a><br>"); |
||
perun Profil |
#6 · Zasláno: 11. 8. 2009, 14:41:12
Daj spätné lomítka pred všetky apostrofy v $cele, nielen pred niektoré.
|
||
tiso Profil |
#7 · Zasláno: 11. 8. 2009, 15:31:32
asusák: zbytočne si to komplikuješ, stačí vymeniť apostrofy a úvodzovky, použiť spájanie reťazcov okolo premenných a môžeš vyhodiť všetky spätné lomítka
|
||
asusák Profil * |
#8 · Zasláno: 11. 8. 2009, 17:18:05
„asusák: zbytočne si to komplikuješ, stačí vymeniť apostrofy a úvodzovky, použiť spájanie reťazcov okolo premenných a môžeš vyhodiť všetky spätné lomítka“
Tak teď sem z toho trochu jelen. Zapsal sem to takhle: $cele = "<img style=\"width: 4px; height: 6px;\" src=\"images/bullet.gif\" alt=\"\"> <a href=\"$odkaz\" class=\"side\">$nazev</a><br>"; Vyhodí mi to hlášku že se to nezapsalo, ale ono se to zapíše jenomže opět jenom do <img stlyle. |
||
Taps Profil |
#9 · Zasláno: 11. 8. 2009, 17:47:24
asusák
zkus to takto $cele = '<img style="width: 4px; height: 6px;" src="images/bullet.gif" alt=""> <a href="'.$odkaz.'" class="side">'.$nazev.'</a><br>'; |
||
Alphard Profil |
#10 · Zasláno: 11. 8. 2009, 17:54:49
asusák:
Překvapilo mě, že moje verze nefunguje. mysql_real_escape_string() by měla potřebné znaky escapovat. Zkusil jsem si spustit mírně upravenou uverzi a fungovalo to bez problémů: $odkaz = $nazev = "Mika Waltari"; $cele = mysql_real_escape_string("<img style='width: 4px; height: 6px;' src='images/bullet.gif' alt='->'> <a href=\'$odkaz\' class='side'>$nazev</a><br>"); $p = mysql_query("INSERT INTO p5 (`nazev`) VALUES ('$cele')"); if (!$p) echo mysql_error(); Taps a tiso navrhují prohodit uvozovky a apostrofy, třeba to pomůže. A taky zkuste, jak bude fungovat tohle: require_once("db.php"); $nazev = mysql_real_escape_string($_POST['nazev']); $odkaz = mysql_real_escape_string($_POST['odkaz']); $cele = mysql_real_escape_string("<img style='width: 4px; height: 6px;' src='images/bullet.gif' alt='->'> <a href='$odkaz' class='side'>$nazev</a><br>"); $sql = mysql_query($l="INSERT INTO odkazy (`nazev`,`odkaz`,`cele`) VALUES ('$nazev','$odkaz','$cele')"); if($sql){ echo "Záznam byl úspěšne vložen do databázy! <a href='index.php'>Jdi na index administrace</a>"; } else { echo "Záznam sa nepodarilo vložit do databáze! <a href='#' onclick='history.back()'><- Zpět</a><br>".mysql_error()."<br>$l"; } |
||
Časová prodleva: 15 let
|
0