Autor Zpráva
symat
Profil
Zdarvim mužete mi nekdo poradit proč to nefunguje ???

Zde je kod: Link

Má to mazat řádek v tabulce ale nefunguje to !
nightfish
Profil
jak se projeví nefunkčnost? vypisují se nějaké chybové hlášky? je mazaný záznam v tabulce?
Akacko
Profil
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
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
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
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
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
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
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
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
o snad nemyslite vazne?


OK tak když je tak špatne tak pordate prosim jak to napsat jinak
Akacko
Profil
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
Pořád to nechce smazat záznam z databáze
symat
Profil
$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
symat
jmenuje se soubor, ve kterém je tento kód delete.php?
TSD
Profil *
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
TSD
oba dva příklady budou fungovat
nightfish
Profil
$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
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
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

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 *
Už Vám to zde psali... nemáte nastaveného papouška, co chcete smazat!
symat
Profil
nastaveného

ok tak jak jej nastavim ???
DJ Miky
Profil
$ID_papouska=$_GET['ID_papouska'];
symat
Profil
$ID_papouska=$_GET['ID_papouska'];



no snad jsem to zapsal spravne ale nepomohlo to
nightfish
Profil
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
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

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: