Autor | Zpráva | ||
---|---|---|---|
Chuck Profil |
#1 · Zasláno: 26. 8. 2008, 08:16:28
Mám 2 stránky. Na první z ní se zobrazuje nástěnka a je tam formulář pro přidání. Druhá stránka vyhodnoocuje zaslaný formulář, ukládá do databáze a přesměrovává zpět.
Za předpokladu, že normálně vyplním jméno a obsah a správně opíšu kontrolní kód, tak se mi příspěvek do databáze normálně uloží a na nástěnce zobrazí. Jenže když je do příspěvku vložen text, který má být za pomoci str_replace změněn (např. smajlík), tak uložení do databáze neproběhne, nevypíše se žádný chybový kód, prostě se normálně přesměruje stránka, jako by se nic nestalo. Neví někdo, v čem je problém? Kód celého 2. souboru: <? $jmeno = $_POST["jmeno"]; $barva = $_POST["barva"]; $prispevek = $_POST["prispevek"]; $key = $_POST["key"]; $kod = $_POST["kod"]; $rok = Date("y"); $mesic = Date("m"); $den = Date("j"); $hodina = Date("H"); $minuta = Date("i"); switch ($key){ case "dfthzjz": $img = "dfdidfd8"; break; case "asdfged": $img = "p57fhi7"; break; case "wrtrztu": $img = "f77fd774"; break; case "errrrrr": $img = "dffdg98"; break; case "fztgzik": $img = "srddg7sf"; break; case "rghtadr": $img = "gf78hfr8"; break; case "dfhzbth": $img = "5gdeg9t"; break; case "sderfgt": $img = "f58d787"; break; }; if ($jmeno !== ""){ if ($prispevek !== ""){ if ($kod !== "") { if ($kod == $img) { if ($jmeno !== "sexmachine") { if ($prispevek !== "You are being spammed;)") { $co = array("<", ">", ":-)", ":-(", ":-U", ":=(", ":-P", ";-)", "(►()", "(►O)", "(?)", "(!)", "(.:)", "(¡:)", " "); $cim = array("<", ">", "<img src='http://g.idnes.cz/u/disk/smile8.gif' class='smile'>", "<img src='smile5.gif' class='smile'>", "<img src='smile4.gif' class='smile'>", "<img src='smile7.gif' class='smile'>", "<img src='smile1.gif' class='smile'>", "<img src='smile2.gif' class='smile'>", "<img src='nosmile1.gif' class='smile'>", "<img src='rvoun.gif' class='smile'>", "<img src='otaznik.gif' class='smile'>", "<img src='krik1.gif' class='smile'>", "<img src='rukaon.gif' class='smile'>", "<img src='rukaoff.gif' class='smile'>", "<br>"); $vys = str_replace($co, $cim, $prispevek); $db="tym_efuv"; $tb="nasa"; $spojeni=mysql_connect("mysql.tym.cz","tym_efuv","**************"); mysql_select_db($db, $spojeni); mysql_query("INSERT INTO $tb values ('$jmeno', '$vys', '$barva', '$rok', '$mesic', '$den', '$hodina', '$minuta')", $spojeni); header("HTTP/1.1 301 Moved Permanently"); header("Location: http://www.efuv.tym.cz/kvarta/nastenka"); header("Connection: close"); } } } else {echo("Špatně jsi opsal kód z obrázku"); }; } else {echo("Nezadal jsi antispamový kód"); }; } else {echo("Nenapsal jsi žádný vzkaz"); }; } else { echo("Nezadal jsi jméno"); }; ?> |
||
yFang Profil |
#2 · Zasláno: 26. 8. 2008, 08:24:02
Chuck
Zkus zakomentovat přesměrování a místo toho napiš echo mysql_error(); a uvidíš co ti to vypíše. |
||
Chuck Profil |
#3 · Zasláno: 26. 8. 2008, 08:27:54
hlásí to tuto chybu: Parse error: syntax error, unexpected '}', expecting ',' or ';' in /home/free/tym.cz/e/efuv/root/www/kvarta/nastenka/pridat.php on line 80
řádek 80 je: ...ho mysql_error() } } } else {echo("Špa... |
||
yFang Profil |
#4 · Zasláno: 26. 8. 2008, 08:32:22
Chuck
Chybí ti středník na konci toho echa. |
||
Chuck Profil |
#5 · Zasláno: 26. 8. 2008, 08:42:39
opraveno. tady je ten chybový kód:
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 'http://g.idnes.cz/u/disk/smile2.gif' class='smile'>', 'modrá', '08', '08', '26',' at line 1 |
||
YoSarin Profil |
#6 · Zasláno: 26. 8. 2008, 08:51:06
používej mysql_real_escape_string() (http://cz.php.net/manual/en/function.mysql-real-escape-string.php)
|
||
yFang Profil |
#7 · Zasláno: 26. 8. 2008, 09:03:02
Chuck
Nebo nahrať apostrofy('') uvozovkami ("") v zápisu src a class u obrázků. |
||
Chuck Profil |
#8 · Zasláno: 26. 8. 2008, 09:03:36
při použití mysql_real_escape_string() se nevypsal žádný mysql chybový kód, ale do databáze se to opět nevložilo
|
||
Chuck Profil |
#9 · Zasláno: 26. 8. 2008, 09:08:01
yFang
„Nebo nahrať apostrofy('') uvozovkami ("") v zápisu src a class u obrázků.“ jako prohodit apostrofy a uvozovky v celé té array? |
||
Chuck Profil |
#10 · Zasláno: 26. 8. 2008, 09:12:01
už se nevkládají ani normální příspěvky - tj. bez smajlíků
|
||
yFang Profil |
#11 · Zasláno: 26. 8. 2008, 09:21:36
Chuck
'<img src="smile5.gif" class="smile">', Ale nevím jistě, zda to bude fungovat. |
||
Chuck Profil |
#12 · Zasláno: 26. 8. 2008, 09:44:04
prohodil jsem apostrofy s uvozovkama a použil mysql_query: funguje to
děkuji všem |
||
Chuck Profil |
#13 · Zasláno: 26. 8. 2008, 10:16:07 · Upravil/a: Chuck
ono už to zase nefunguje
nechápu to |
||
yFang Profil |
#14 · Zasláno: 26. 8. 2008, 10:23:53
Chuck
a použil mysql_query: funguje to Tys před tím nepoužíval mysql_query? ono už to zase nefungujenechápu to My taky ne. Zkus to upřesnit. |
||
Chuck Profil |
#15 · Zasláno: 26. 8. 2008, 10:55:42
nepřidá se žádný příspěvek - ani když je se smajlíkem, ani když je bez něk, ani když použiji mysql_real_escape_string, ani když mysql_query...
|
||
peta Profil |
#16 · Zasláno: 26. 8. 2008, 16:22:12
Chuck
V prvni rade ti musi pridavat text typu aaa. Potom ma smysl resit smajliky. Zkus na zacatek scriptu dat tyto 3 radky: @ini_set('error_reporting', E_ALL); @ini_set("display_errors", "on"); error_reporting(E_ALL); Zkus SQL prikaz prepsat pomoci funkce jako: function sq($query,$text='') {$res = mysql_query($query) or die("<hr>MySQL Err".$text.": $query<hr>".mysql_error()); return $res;} //debug mode mysql_query("INSERT INTO $tb values ('$jmeno', '$vys', '$barva', '$rok', '$mesic', '$den', '$hodina', '$minuta')", $spojeni); -> za -> $dotaz = "INSERT INTO $tb values ('$jmeno', '$vys', '$barva', '$rok', '$mesic', '$den', '$hodina', '$minuta')"; sq($dotaz); |
||
Časová prodleva: 16 let
|
0