Autor Zpráva
asusák
Profil *
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='-&gt;'> <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()'>&lt;- 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
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
Zkuste to takhle:
$cele = mysql_real_escape_string("<img style='width: 4px; height: 6px;' src='images/bullet.gif' alt='-&gt;'> <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 *
$cele = mysql_real_escape_string("<img style='width: 4px; height: 6px;' src='images/bullet.gif' alt='-&gt;'> <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
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='-&gt;'> <a href=\'$odkaz\' class='side'>$nazev</a><br>");
perun
Profil
Daj spätné lomítka pred všetky apostrofy v $cele, nielen pred niektoré.
tiso
Profil
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 *
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
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
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";
}

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: