Autor | Zpráva | ||
---|---|---|---|
BlackMartin Profil |
#1 · Zasláno: 10. 1. 2008, 15:55:15
Moc Vás prosím nevíte kde dělám chybu ?
<h2>Novinky</h2> <br> <br> <?php $id = $_GET["id"]; $a = $_GET["a"]; $user = $_POST["user"]; $email = $_POST["email"]; $text = $_POST["text"]; $submit = $_POST["submit"]; if ($id==TRUE) { $query = mysql_query("SELECT * FROM news WHERE id = '$id'"); while ($news = mysql_fetch_array($query)) { echo "<h3>".$news["title"]."</h3> <h4>napsal: <i>".$news["author"]."</i></h4><br>".$news["text"]."<br><br>"; } echo "<br><h3>Komentáře</h3><br>"; $query = mysql_query("SELECT * FROM comments_news WHERE newsid = '$id'"); while ($coment = mysql_fetch_array($query)) { echo "Předmět:".$coment["subject"]."<br>Uživatel:".$coment["user"]."<br>E-M ail:".$coment["email"]."<br><br>Text:<br>".$coment["text"]."<br>"; } echo "<br><a href=\"?id=$id&a=addcomment\">Přidat komentář!</a>"; if ($a=="addcomment") { echo "<br><h3>Přidat komentář</h3><form action=\"\" method=\"POST\" >Vaše jméno:<input type=\"text\" name=\"user\"><br>Váš email:<input type=\"text\" name=\"email\"><br>Text:<br><textarea rows=\"10\" cols=\"50\" name=\"text\"></textarea><br><input type=\"submit\" value=\"Odeslat\" name=\"submit\"></form>"; } } else { $query = mysql_query ("SELECT * FROM news ORDER BY id DESC LIMIT 3"); while ($news = mysql_fetch_array($query)) { echo "<h3><a href=\"?id=".$news["id"]."\" >".$news["title"]."</a></h3> <h4>napsal: <i>".$news["author"]."</i></h4><br>".$news["text"]."<br><br>"; } } if ($submit==TRUE && $user!="" && $email!="" && $text!="") { $query = mysql_query("INSERT INTO comments_news (newsid, subject, user, email, text ) VALUES ('$id', 'Komentář', '$user', '$email', '$text')"); if ($query==TRUE) { echo "<script language=\"javascript\" type=\"text/javascript\">alert('Komentář byl vložen do databáze.');</script>"; echo "<script>window.location.href=\"http://$homepage/?id=$id\";</script>"; } else { echo "<script language=\"javascript\" type=\"text/javascript\">alert('Nepodařilo se vložit komentář.');</script>"; echo "<h2>$db_error</h2>"; } } else { echo "<br>Musíte vložit všechny údaje!"; } ?> Po zadání textu, jména a emailu mi vyskočí hláška o neuložení dat do DB. Můžete vyzkoušet zde http://www.martindeveloper.ic.cz/?id=5&a=addcomment Mimochodem se omlouvám za takový titulek ale nic lepšího mě nenapadlo... Děkuju moc za rady. |
||
DJ Miky Profil |
#2 · Zasláno: 10. 1. 2008, 16:43:13
Vypiš si mysql_error()… A přečti si něco o SQL injection, mohlo by se ti to hodit.
|
||
BlackMartin Profil |
#3 · Zasláno: 10. 1. 2008, 16:45:10
mysql_error() je vypsán pomocí echo "<h2>$db_error</h2>";
Ale nic se nevypíše. OK něco si počtu ... |
||
BetaCam Profil |
#4 · Zasláno: 10. 1. 2008, 16:57:08
BlackMartin
mysql_error() je vypsán pomocí echo "<h2>$db_error</h2>"; Ehm možná sem slepej, ale můžeš mi prozradit kde tu tvojí proměnnou $db_error plníš tim mysql_errorem?? Nějak si nemůžu pomoct, fakt to tam nevidim. |
||
BlackMartin Profil |
#5 · Zasláno: 10. 1. 2008, 17:17:48
Tento kód co tady je se do stránky includuje a ve headeru se includuje config soubor ve kterém je $db_error plněna mysql_error() .
|
||
BetaCam Profil |
#6 · Zasláno: 10. 1. 2008, 17:41:44 · Upravil/a: BetaCam
BlackMartin
Tento kód co tady je se do stránky includuje a ve headeru se includuje config soubor ve kterém je $db_error plněna mysql_error() . No nevim to si jako tu proměnnou naplníš SQL Errorem před provedenim dotazu?? Přijde mi to trochu zcestné řešení. Podle toho co píšeš naplníš tu proměnnou $db_error ještě před tím než provedeš příkaz tedy před tím než nastane chyba. Když to plníš před dotazem logicky vrátí mysql_error() pendrek aspon mám takovej pocit. Možná to co používáš funguje, ale popravde já sem takovouhle konstrukci výpisu mysql_error() ještě neviděl. :) |
||
BetaCam Profil |
#7 · Zasláno: 10. 1. 2008, 17:58:09
BlackMartin
Ještě takové možná rejpnutí. Pokud si na svou stránku dáš ikonku, že tvůj web je HTML 4.01 valid tak by opravdu ale validní měl bejt. :) |
||
BlackMartin Profil |
#8 · Zasláno: 10. 1. 2008, 18:21:42 · Upravil/a: BlackMartin
Aha tak já tam dám normální mysql_error().
A o té validitě, tak on byl do té doby než jsem začal psát články pomocí TinyMCE ... EDIT: Tak jsem zjistil že mám duplicní hodnotu pro klíč. Tak jsem sloupci ubral vlastnost "Primary key" a nyní vše funguje. Děkuji všem. Jen mimochodem jde nějak nastavit u TinyMCE aby generoval validní HTML 4.01 kód ? |
||
orsic Profil |
#9 · Zasláno: 10. 1. 2008, 23:13:23
Pokud si na svou stránku dáš ikonku, že tvůj web je HTML 4.01 valid tak by opravdu ale validní měl bejt. :)
Poslední dobou zjišťuju že to má hodně lidí,tuhle ******* ikonku a nevalidní web ... Mě osobně je validita celkem volná ale tyhle ikonky jsou imho docela stupidní móda HTML kodérů ... |
||
BlackMartin Profil |
#10 · Zasláno: 11. 1. 2008, 14:34:20
...docela stupidní móda HTML kodérů ...
Řekl bych čím víc bude webů bude validních tím lepší ty weby budou. Jak pro prohlížeč ( nemusí překousávat různé chyby ) tak i pro kódery. Pak ten kód bude přehlednější. |
||
orsic Profil |
#11 · Zasláno: 11. 1. 2008, 15:15:31
validnost je dobrá věc ale nic se nesmí přehánět.uživatele jenž si prohlíží stránky to pranic nezajímá zda je web validní nebo není a už vůbec ho nezajímají nějaké otravné ikonky validnosti.Pokud ho to bude zajímat může si ten web vždycky projet validátorem.Důležité aby stránky fungovaly a pokud možno rychle.
ani samotnej google.com není validní,já bych to s tím W3C zas tak nepřeháněl ... už jsme tady offtopic,sorry ... |
||
Časová prodleva: 15 let
|
0