Ukládání pomocí md5 - nefunguje

po dlouhé chvíli se mi podařilo rozchodit skript, ve kterém mohu vkládat nové heslo v md5. Vytvářel jsem druhý skript, který mi slouží k aktualizaci dat. Nemohu přijít na to, kam funkci o md5 uložit a skript hlásí chybu při ukládání. Pokud vás něco napadne, tak prosím poraďte. díky

- skript s md5 funkční

if($nazevtmp == "") {
$query = "INSERT INTO login (id, login, heslo, jmeno, prijmeni, ) VALUES
('', '$login', '".md5($_POST['heslo'])."', '$jmeno', '$prijmeni' )";
} mysql_query($query) or die("Není možné přidat záznam do databáze!");

- skript s md5 nefunkční

if ($akce==11)
$id = $_GET['id'];
$login = $_POST['login'];
$jmeno = $_POST['jmeno'];
$prijmeni = $_POST['prijmeni'];

{
$update= "
UPDATE login
SET
login='$login',
heslo='".md5($_POST['heslo'])."',
jmeno='$jmeno',
prijmeni='$prijmeni',
where id='$id'
" ;
{
$insert=mysql_query($update) or die("chyba při vkládání!");
}
}
>> prijmeni='$prijmeni',
na konci je čárka, která už tam nemá být.

Jinak pro ladění chyb je dobré si nechat zobrazovat i mysql chyby pomocí funkce mysql_error(). Vrací chybovou hlášku odeslanou MySQL serverem. Z nich se dozvíte proč selhal mysql_query(). Většinou proto, že vložený sql dotaz je chybný.
1. php.net/error_reporting + priklady

2. php.net/mysql_error + priklady
mysql_query($update) or die("chyba při vkládání!");
mysql_query($update) or die("chyba při vkládání!".mysql_error());

3. echo vsechny promenne pripadne cely dotaz bez php.
echo '<hr>'.$id;
echo '<hr>'.$login;
echo '<hr>'.$jmeno;
echo '<hr>'.$prijmeni;
echo '<hr>'.$query
echo '<hr>'.$update;
echo '<hr>'.$insert;
//echo '<hr>insert = '.$insert; kdybys to chtel mit hezci

4. pokud vim, tak se neda kombinovat POST s GETem
$id = $_GET['id'];
$login = $_POST['login'];
A pokud to uz dovolili, tak by to urcite nepouzil nikdo rozumny v programu. Vetsinou si peclive pohlida, aby mel vsechno bud v GET nebo POST.
Univerzalni promenne je $_REQUEST, pokud nechces resit rozlisovani mezi get a post.
<HTML>peta: ad 4) nemáš pravdu, kombinovat se to dá a není to žádná rarita ani nerozumnost.</HTML>
peta: ad 4) rarita (ve složitějších systémech) je právě nepoužívat GET i POST najednou.

Zejména ve chvílích kdy používáš "pěkné url". Já osobně v tom nevidím jediný problém -- pokud není programátor/ři blbec (a nepoužije register_globals) tak je všechno v pořádku, a snad i přehlednější ;)
peta: Kombinovat to lze už dávno a nevím, že by to bylo někdy zakázáno. Možná to jen PHP tehdy neuměl. A že by to byla nějaká rarita nebo že by se to nemělo, je blbost. Jde jen o to dobře vědět kdy a k čemu použít GET a kdy POST. Použít společně GET a POST je stejný jako použít společně COOKIES s POST.

Ale zpět k tématu, u kterého peta opět vyhořel. Sice něco z toho lze použít, ale jako celek k ničemu.

jurasek07 dostal ode mě odpověď, která odpovídá dotazu.
Při bližším pohledu tam vidím ještě jednu chybku. Nevím jestli to není záměr, ale za if ($akce==11) jsou čtyři řádky, které by na tom místě neměly být. Nemají být až za { ? Takhle ta podmínka platí jen pro $id.
Tomík (tom.czweb.org)
Nezarli :)
Nikdo z vas mu neukazal, jak to mysql_error pridat do kodu, co tam ma. (2)
Nikdo z vas mu nezminil moznost $_REQUEST. (4)
Nikdo z vas mu nerekl, ze by si mel pred odeslanim dotaz vypsat (naznaky tu byli, s promennymi).Nema smysl se hadat o chybe v dotazu, kdyz nevis, jaky SQL dotaz mu posilas. Navic se to da primo zkusit do phpmyadmina.
Tema jsem pouze doplnil. Nic vic, nic min. Nevim, proc z toho delas zase vedu :)

Get/Post tam problem je, zalezi na nastaveni serveru a prohlizeci. Za jistych okolnosti, mozna to byl bug prohlizece, to neodesilalo soucasne get/post napriklad
<form action=soubor.php?id=5 method=post>
Spravne chovani je, ze odesle vse, chybne chovani, ze ignoruje cast za otaznikem. Dokonce mozna lepsi chovani, kdyz vse prevede do post.
Jestli bude někdy nějaký prohlížeč fungovat tak blbě, jak píše peta, s webem končím a začnu hrát kuličky :) Převést get proměnné do postu bych od prohlížeče bral jako podpásovku.

peta: Tvůj záměr byl dobrý, ale provedení mizerné. Zbytečné odkazy do manuálu a třeba vypsání proměnných - stačilo echo $update. Jako začátečník bych z tvého příspěvku (imho) nepochopil nic - např. házíš kusy kódu bez určení, kam přijdou vepsat apod..
peta: GET/POST: Pokud to kdy dělalo problémy, ta za to může podělaný prohlížeč nebo server, který neumí pracovat ani se základním HTTP protokolem. Jak GET, tak i POST jsou od sebe odděleny, takže mohou být poslány současně a to i přesto, že mohou mít stejné proměnné. Jak jsou pak zpracovány, je pak na prohlížeči nebo serveru. Apache toto umí. Dnešní verze PHP toto také už umí pomocí superglobalních proměnných. Takže pokud se problémy stále objevují, pak je na vině prohlížeč. A ani bych se tomu nedivil, když zjišťují jaké omezení má každý prohlížeč.
Tomík (tom.czweb.org)
To mi vykladat nemusis, to vim. Ja jen pisi, ze jsem narazil v minulosti i na takovou moznost, kdy se prave ve formulari s POST ignorovali udaje GET v action. Cili je treba pocitat se vsim.

Freeze (dreamer.kvalitne.cz)
ja myslim, ze kdyz napisi vypsat vsechny promenne a pak pridam presne cast kodu, jak se to dela, ze je to vystiznejsi nez se s vami ted dohadovat. Ale staci napsat, ze mou odpoved nechapes a co nechapes, rad ti to vysvetlim.
peta: Pokud ten serverový skript bral pouze parametry předané metodou POST a ignoroval GET, tak to bylo v naprostém pořádku. Tak se píší aplikace.
peta: Já tvou odpověď plně chápu, jen mi přišla nešťastná. Ve většině případů obdobná odpověd u tazatele vyvolá pouze otevení úst v nepochopení odpovědi. (případně další dotazy typu.. a kam to mám napsat apod..)
OT
Nipal vs. Kit / GET + POST
Se domluvte vy dva. Mi se proste neveri, takze v tom nehodlam pokracovat :)

OT
Freeze (dreamer.kvalitne.cz)
Dobra, zkusim pridat vysvetleni.
Zprava: Tomík (02. 10. 2009 08:21)
... mysql_error() ...
... pro ladění chyb je dobré si nechat zobrazovat ...
Doplneni: peta 1 + peta 2
Doplneni: peta 3 (vsechny promenne a cely sql dotaz, nejen chybu mysql_error)
peta 4 - si vyresi Nipal + Kit , protoze peta si podle Nipal vymysli
<HTML>No, pete, jestli si tam taky nepoužil uvozovky, tak bych se nějaké nefunkčnosti ani nedivila.

P.S. piš s diakritikou.

FIN.<style>form {display:none;}</style></HTML>