Autor | Zpráva | ||
---|---|---|---|
symat Profil |
#1 · Zasláno: 17. 4. 2008, 17:33:05 · Upravil/a: symat
Zdarvim mužete mi nekdo poradit proč to nefunguje ???
Zde je kod: Link Má to mazat řádek v tabulce ale nefunguje to ! |
||
nightfish Profil |
#2 · Zasláno: 17. 4. 2008, 17:38:59
jak se projeví nefunkčnost? vypisují se nějaké chybové hlášky? je mazaný záznam v tabulce?
|
||
Akacko Profil |
#3 · Zasláno: 17. 4. 2008, 17:41:08
symat
Zkus zde funkci mysql_query() nepřířazovat proměnné $sql = "DELETE FROM papousci WHERE ID_papouska=$ID_papouska"; $result = mysql_query($sql); Zkus to takto: $sql = "DELETE FROM papousci WHERE ID_papouska=$ID_papouska"; mysql_query($sql); |
||
nightfish Profil |
#4 · Zasláno: 17. 4. 2008, 18:17:09
Akacko
přebrání návratové hodnoty mysql_query a kontrola, jestli tedy mysql_query proběhlo správně, je zcela jistě dobrý programátorský postup, takže tvá rada mi přijde trochu mimo |
||
Akacko Profil |
#5 · Zasláno: 17. 4. 2008, 18:22:49
nightfish
To se tady někde kontroluje? if($_GET["cmd"]=="delete") { $sql = "DELETE FROM papousci WHERE ID_papouska=$ID_papouska"; $result = mysql_query($sql); echo "Row deleted!"; } |
||
ninja Profil |
#6 · Zasláno: 17. 4. 2008, 18:25:49
symat $sql = "DELETE FROM papousci WHERE ID_papouska=$ID_papouska";
To snad nemyslite vazne? Slysl jste nekdy o SQL incejction a zakladnich zasadach bezpecncyh programu? Urcite nejdrive kontrolujte, jestli v promene $ID_papouska je pouze nejake ID. Protoze jinak vam brzo nejaky vtipalek klikne na link: "delete.php?cmd=delete&ID_papouska=1 OR 1=1" a prijdete o celou tabulku! |
||
paulos etruska Profil |
#7 · Zasláno: 17. 4. 2008, 18:29:37
ninja
Myslím že tady v tom případě vůbec není nutné řešit SQL injection. Předpokládám, že běžný uživatel nebude moci mazat papoušky z databáze a že si symat nějak zabezpečí přístup do aministrace. |
||
symat Profil |
#8 · Zasláno: 17. 4. 2008, 18:30:41
jak se projeví nefunkčnost? vypisují se nějaké chybové hlášky? je mazaný záznam v tabulce?
hodi to jen neexistujici stránku a z databaze to nic nevymaže |
||
nightfish Profil |
#9 · Zasláno: 17. 4. 2008, 18:34:51
Akacko
To se tady někde kontroluje? nekontroluje, ale to není důvod, proč se bezdůvodně zbavit hodnoty vracené mysql_query ninja Protoze jinak vam brzo nejaky vtipalek klikne na link: "delete.php?cmd=delete&ID_papouska=1 OR 1=1" a prijdete o celou tabulku! daleko zábavnější je, že mazání je udělané přes GET (to není dobrý nápad) symat jinak problém je zřejmě v tom, že mazací odkaz neobsahuje žádné ID, protože proměnná $ID_papouska je při výpisu zřejmě prázdná (což bys zjistil v případě, že bys měl zapnuté vypisování chyb a upozornění) <a href='delete.php?cmd=delete&ID_papouska=$ID_papouska'>D stejně tak v tom mazání proměnná $ID_papouska v případě vypnutých Register globals bude taktéž prázdná |
||
nightfish Profil |
#10 · Zasláno: 17. 4. 2008, 18:36:15
hodi to jen neexistujici stránku a z databaze to nic nevymaže
pokud to hodí neexistující stránku, tak to znamená, že ta stránka neexistuje a je potřeba ji vytvořit (nebo opravit odkaz) |
||
symat Profil |
#11 · Zasláno: 17. 4. 2008, 18:40:18
o snad nemyslite vazne?
OK tak když je tak špatne tak pordate prosim jak to napsat jinak |
||
Akacko Profil |
#12 · Zasláno: 17. 4. 2008, 18:42:17
nightfish
nekontroluje, ale to není důvod, proč se bezdůvodně zbavit hodnoty vracené mysql_query Moje chyba ... nedomyslel jsem si, že se ta funkce vykoná před uložením do proměnné. symat OK tak když je tak špatne tak pordate prosim jak to napsat jinak $promenna = intval($_GET['ciselna_promenna']); // V pripade ze $_GET['ciselna_promenna'] neobsahuje cislo do $promenna se ulozi 0 |
||
symat Profil |
#13 · Zasláno: 17. 4. 2008, 19:01:04
Pořád to nechce smazat záznam z databáze
|
||
symat Profil |
#14 · Zasláno: 17. 4. 2008, 19:04:08
$ID_papouska je při výpisu zřejmě prázdná
ID papouška prázdná není ale stejne to nemaže z databáze |
||
Akacko Profil |
#15 · Zasláno: 17. 4. 2008, 19:12:43
symat
jmenuje se soubor, ve kterém je tento kód delete.php? |
||
TSD Profil * |
#16 · Zasláno: 17. 4. 2008, 19:27:40
Není problém v tomto?
$sql = "DELETE FROM papousci WHERE ID_papouska=$ID_papouska"; já bych to určitě dělal spíš takto: $sql = "DELETE FROM papousci WHERE ID_papouska=".$ID_papouska; |
||
Akacko Profil |
#17 · Zasláno: 17. 4. 2008, 19:33:38
TSD
oba dva příklady budou fungovat |
||
nightfish Profil |
#18 · Zasláno: 17. 4. 2008, 19:39:44
$ID_papouska je při výpisu zřejmě prázdná
ID papouška prázdná není ale stejne to nemaže z databáze v kódu, který jsi na začátku poslal, není určitě proměnná $ID_papouska naplněna (resp. určitě ne hodnotou načtenou z databáze, maximálně tak při zapnutých register globals hodnotou URL) $sql = "DELETE FROM papousci WHERE ID_papouska=$ID_papouska"; na další řádek si dej echo $sql; a poděl se s námi o dotaz, který ti to vypíše |
||
symat Profil |
na další řádek si dej echo $sql;
hmmmmm tak toto: :-( DELETE FROM papousci WHERE ID_papouska= |
||
nightfish Profil |
#20 · Zasláno: 17. 4. 2008, 20:03:08
příčiny mohou být dvě
obě jsem již zmínil - register globals a nebo není proměnná ID_papouska v URL při výpisu nastavena (imho jde o kombinaci obojího) |
||
peta Profil |
#21 · Zasláno: 18. 4. 2008, 15:02:04
symat
@ini_set('error_reporting', E_ALL); @ini_set("display_errors", "on"); error_reporting(E_ALL); function sq($query,$text='') {$res = mysql_query($query) or die("<hr>MySQL Err".$text.": $query<hr>".mysql_error()); return $res;} //debug mode $sql = "DELETE FROM papousci WHERE ID_papouska=$ID_papouska"; sq($sql,'chyba xyz'); A napis, co to pise za chyby, presne. - chyba PHP: - chyba MySQL: - chyba SQL dotaz, text (bez tech srandicek z php, ktere ten text vytvareji): Pak se muzeme bavit o konkretnim problemu. |
||
symat Profil |
#22 · Zasláno: 18. 4. 2008, 15:50:09
A napis, co to pise za chyby, presne. Notice: Undefined variable: ID_papouska in /3w/wz.cz/a/atlaspapousku/new_atlas/web/delete.php on line 14 MySQL Errchyba xyz: DELETE FROM papousci WHERE ID_papouska=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 '' at line 1 |
||
Kajman_ Profil * |
#23 · Zasláno: 18. 4. 2008, 15:55:50
Už Vám to zde psali... nemáte nastaveného papouška, co chcete smazat!
|
||
symat Profil |
#24 · Zasláno: 18. 4. 2008, 17:34:10
nastaveného
ok tak jak jej nastavim ??? |
||
DJ Miky Profil |
#25 · Zasláno: 18. 4. 2008, 19:20:10
$ID_papouska=$_GET['ID_papouska'];
|
||
symat Profil |
#26 · Zasláno: 20. 4. 2008, 00:35:44
$ID_papouska=$_GET['ID_papouska'];
no snad jsem to zapsal spravne ale nepomohlo to |
||
nightfish Profil |
#27 · Zasláno: 20. 4. 2008, 10:12:40
symat
a ještě tady "<a href='delete.php?cmd=delete&ID_papouska=".<b>$radek['ID_papouska'].</b>"'>Delete</a>"; kdyby ani to nepomohlo, tak aktualizuj ten zdrojový kód skriptu, který jsi poslal v prvním svém příspěvku |
||
symat Profil |
#28 · Zasláno: 20. 4. 2008, 18:27:30
nepomohlo
Delete: Warning : main(connect.php): failed to open stream: No such file or directory in /3w/wz.cz/a/atlaspapousku/new_atlas/aplikace/web/vypis_papousek.php on line 15 Warning : main(): Failed opening 'connect.php' for inclusion (include_path='.:/usr/local/lib/php') in /3w/wz.cz/a/atlaspapousku/new_atlas/aplikace/web/vypis_papousek.php on line 15 Warning : mysql_query(): Access denied for user 'nobody'@'195.122.194.232' (using password: NO) in /3w/wz.cz/a/atlaspapousku/new_atlas/aplikace/web/vypis_papousek.php on line 19 Warning : mysql_query(): A link to the server could not be established in /3w/wz.cz/a/atlaspapousku/new_atlas/aplikace/web/vypis_papousek.php on line 19 Chyba: 1045; popis chyby: Access denied for user 'nobody'@'195.122.194.232' (using password: NO) Warning : mysql_query(): Access denied for user 'nobody'@'195.122.194.232' (using password: NO) in /3w/wz.cz/a/atlaspapousku/new_atlas/aplikace/web/vypis_papousek.php on line 42 Warning : mysql_query(): A link to the server could not be established in /3w/wz.cz/a/atlaspapousku/new_atlas/aplikace/web/vypis_papousek.php on line 42 Row deleted! ja už prostě nedoufam :-((((((((((( PS: delete jsem přejmenoval na vypis papoušek |
||
Časová prodleva: 16 let
|
0