Autor | Zpráva | ||
---|---|---|---|
ssssa Profil * |
#1 · Zasláno: 22. 11. 2008, 15:37:39
Dobrý den, dělám webové stránky na serveru flyweb.cz, a udělal jsem formulář pro odesílání dat do db (MySql 5.0). Kod vypadá takto:
<? if(isset($_REQUEST["akce"])){ switch($_REQUEST["akce"]){ case "fotky-add": if($_REQUEST["typ"]=="empty"){echo "<script>alert(\"Musíte zadat cestu!\");</script>\n";}else{ @mysql_query("INSERT INTO fotky(Jmeno, Popis, Typ) VALUES('" . $fotka_name . "', '" . $_REQUEST["popis"] . "', '" . $_REQUEST["typ"] . "')");} break; } } ?> a formulář zní takto: <form method="post" name="akce" enctype="multipart/form-data"> <input type="hidden" name="akce" value="fotky-add"> <textarea name="popis" rows="8" cols="35"></textarea> <input type="file" size="30" name="fotka"> <select name="typ"> <option value="empty"></option> <option value="product1">product1</option> <option value="product2">product2</option> </select> </td></tr> <input type="submit" value="Vložit"> </form> Výsledek se ale v db vůbec neoběví, a přitom to na jiných serverech úplně normálně funguje. Ještě přidám script konektu do db: <? $sql = @mysql_connect("aven.flyweb.cz","nazev-db","heslo"); if(!$sql) die("Nelze se připojit k databázi. Pravděpodobně je výpadek na serveru. Těšíme se na Vaši brzkou příští návštěvu."); @mysql_select_db("_bbf"); @mysql_query("SET NAMES utf8"); ?> Nevíte co s tím je? Vyzkoušel jsem snad úplně všechno. |
||
Měsíček Profil |
#2 · Zasláno: 22. 11. 2008, 15:41:46
Rádi by jsme chybové hlášky .. co třeba, kdyby jsi dal pryč to "@"?
|
||
ssssa Profil * |
#3 · Zasláno: 22. 11. 2008, 15:46:13
„Rádi by jsme chybové hlášky .. co třeba, kdyby jsi dal pryč to "@"?“
Chybové hlášky to nemá vůbec žádné, a bez @ se napíše hláška Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ... |
||
Stepanka Profil * |
#4 · Zasláno: 22. 11. 2008, 15:51:51
ssssa
Však to "Warning: .... atd" je právě ta chybová hláška. Máš chybu v tom dotazu. Ale asi v jiném, protože v tom, který jsi tu dal, žádné mysql_fetch_array není.. Máš tam ještě jiné sql dotazy? |
||
ssssa Profil * |
#5 · Zasláno: 22. 11. 2008, 16:00:37
„ssssa“
„Však to "Warning: .... atd" je právě ta chybová hláška. Máš chybu v tom dotazu. Ale asi v jiném, protože v tom, který jsi tu dal, žádné mysql_fetch_array není.. Máš tam ještě jiné sql dotazy?“ V tom dotazu @ je (@mysql_connect), takže to tuhle hlášku nevypisuje (vypíše se jenom když tam @ není). Když to napíšu s tím @, tak se mi žádná hláška neobjeví a přece se to neodešlě. |
||
Stepanka Profil * |
#6 · Zasláno: 22. 11. 2008, 16:02:36
ssssa
Však @ slouží k tomu, aby potlačil chybové hlášky. Ale on je potlačí jen v tom smyslu, že je nevypíše. Ty chyby tam ale tak jako tak jsou. |
||
ssssa Profil * |
#7 · Zasláno: 22. 11. 2008, 16:08:48
„ssssa“
„Však @ slouží k tomu, aby potlačil chybové hlášky. Ale on je potlačí jen v tom smyslu, že je nevypíše. Ty chyby tam ale tak jako tak jsou.“ Když odstraním @ od dotazu mysql_query copy Warning: copy() [function.copy]: Unable to access in... Žádné jiné hlášky to v tomto scriptu opravdu nevypisuje. |
||
Stepanka Profil * |
#8 · Zasláno: 22. 11. 2008, 16:12:39
ssssa
Ve svém druhém příspěvku od vrchu ale uvádíš, že vypisuje. |
||
ssssa Profil * |
Stepanka
Tuhle hlášku: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ... to vypíše v jiném scriptu (ve výpisu dat z db) |
||
Stepanka Profil * |
#10 · Zasláno: 22. 11. 2008, 21:33:39
ssssa
Zkus z toho Tvého skriptu odstranit všechny @, máš jich tam více. A za mysql_query přidej or die(mysql_error());. Když tohle uděláš, tak Ti to nějakou chybu vypíše? |
||
ssssa Profil * |
#11 · Zasláno: 23. 11. 2008, 10:23:38
„ssssa“
„Zkus z toho Tvého skriptu odstranit všechny @, máš jich tam více. A za mysql_query přidej or die(mysql_error());. Když tohle uděláš, tak Ti to nějakou chybu vypíše?“ Když to dosadím do mysql_query("INSERT INTO fotky(Jmeno, Popis, Typ) VALUES('" . $fotka_name . "', '" . $_REQUEST["popis"] . "', '" . $_REQUEST["typ"] . "')" or die(mysql_error())); echo mysql_error($sql); echo mysql_errno($sql); |
||
Stepanka Profil * |
#12 · Zasláno: 23. 11. 2008, 10:33:04
ssssa
Máš závorku špatně, dej tam: mysql_query("INSERT INTO fotky(Jmeno, Popis, Typ) VALUES('" . $fotka_name . "', '" . $_REQUEST["popis"] . "', '" . $_REQUEST["typ"] . "')") or die(mysql_error()); Pokud to žádnou chybu nevypíše, zkus si před ukládáním do databáze vypsat všechny proměnné, které tam chceš uložit, takhle: if(isset($_REQUEST["akce"])){ switch($_REQUEST["akce"]){ case "fotky-add": if($_REQUEST["typ"]=="empty"){echo "<script>alert(\"Musíte zadat cestu!\");</script>\n";}else{ echo $fotka_name.$_REQUEST["popis"].$_REQUEST["typ"]; } Vypíše Ti to takhle všechny tři prommené tak, jak je chceš uložit do DB? |
||
ssssa Profil * |
#13 · Zasláno: 23. 11. 2008, 10:39:34
„mysql_query("INSERT INTO fotky(Jmeno, Popis, Typ) VALUES('" . $fotka_name . "', '" . $_REQUEST["popis"] . "', '" . $_REQUEST["typ"] . "')") or die(mysql_error());“
Chyba byla ve špatném zvolení db, protože se vypsala chyba No database selected |
||
Stepanka Profil * |
#14 · Zasláno: 23. 11. 2008, 10:52:38
ssssa
Takže vyřešeno? |
||
ssssa Profil * |
#15 · Zasláno: 23. 11. 2008, 12:35:05
Odesílání dat do db vyřešeno, ale ještě mám problém s uploadováním obrázků do souboru. Zase to na jiných serverech jde, ale tady se to prostě nezkopíruje. Navíc to vypíše hlášku:
Warning: copy() [function.copy]: Unable to access in... if(isset($_REQUEST["akce"])){ switch($_REQUEST["akce"]){ case "fotky-add": $adresa = $_REQUEST["typ"]; copy($fotka, "$adresa/$fotka_name;"); break; a formulář takto: <form method="post" name="akce" enctype="multipart/form-data"> <input type="hidden" name="akce" value="fotky-add"> <input type="file" name="fotka"> Nahrát do: <select name="typ"> <option value="cesta1">cesta1</option> <option value="cesta2">cesta2</option> </select> </form> |
||
ssssa Profil * |
#16 · Zasláno: 23. 11. 2008, 13:13:43
Opraveno - použita funkce
move_uploaded_file |
||
Budulinek Profil * |
#17 · Zasláno: 25. 11. 2008, 10:06:07
fce copy() býva někdy na hostinzích zakázaná z bezpečnostních důvodů, proto nelze použít a nahrazuje se právě fcí move_uploaded_file()....
|
||
Časová prodleva: 15 let
|
0