Autor | Zpráva | ||
---|---|---|---|
SkyVessel Profil |
#1 · Zasláno: 30. 1. 2010, 10:40:42
Mám kód pomocí kterého měním data v databázi... Ovšem potřebuji to ještě nějak vylepšit o potvrzení (např když dá krok zpět v histotii, tak ať se to znovu nevykoná...). Uvažoval jsem o javascriptu a confirm, ale to nevím, jak z toho vytáhnout něco, co bych pak mohl použít v php podmínce...
$id = NULL; $id = @$_GET['id']; if ($id) { // ???Když uživatel potvrdí $dotaz = "SELECT nick, member FROM users WHERE id='$id'"; $vysledek = mysql_query ($dotaz) or die(mysql_error()); $row = mysql_fetch_array($vysledek); $nick = $row['0']; $member = $row['1']; if ($member == 1) { $dotaz = "UPDATE users SET member='0' WHERE nick='$nick'"; } else { $dotaz = "UPDATE users SET member='1' WHERE nick='$nick'"; } $vysledek = mysql_query ($dotaz) or die(mysql_error()); } |
||
Taps Profil |
#2 · Zasláno: 30. 1. 2010, 10:58:25
SkyVessel:
a header by nefungoval $id = NULL; $id = @$_GET['id']; if ($id) { // ???Když uživatel potvrdí $dotaz = "SELECT nick, member FROM users WHERE id='$id'"; $vysledek = mysql_query ($dotaz) or die(mysql_error()); $row = mysql_fetch_array($vysledek); $nick = $row['0']; $member = $row['1']; if ($member == 1) { $dotaz = "UPDATE users SET member='0' WHERE nick='$nick'"; } else { $dotaz = "UPDATE users SET member='1' WHERE nick='$nick'"; } $vysledek = mysql_query ($dotaz) or die(mysql_error()); header("location:tvojestranka.php"); } |
||
SkyVessel Profil |
#3 · Zasláno: 30. 1. 2010, 11:23:21
Taps: No nevím přesně, jak to myslíš. Dole mám seznam a každá položka má svůj link...
<a href="?id=1"> <a href="?id=2"> ... A právě na základě toho id se pak odesílá ten dotaz a pomění se ten seznam, co je dole vypsaný... Pracuje se na jedné stránce. |
||
AM_ Profil |
#4 · Zasláno: 30. 1. 2010, 11:28:30
SkyVessel:
„A právě na základě toho id se pak odesílá ten dotaz a pomění se ten seznam, co je dole vypsaný...“ jaký seznam a kde dole? něco si zřejmě vynechal :) obecně platí koncepce, že jakmile uživatele nasměruješ na adresu, která něco mění (v MVC terminologii upravuje model), měl bys ho hned přesměrovat přes header("location: ...") - na adresu, která žádnou akci neprovádí - ztratí se tím POST data, která jsou obvykle s akcí spojena, a při procházení historií se znovu nevyvolají Z tvého příkladu bohužel moc nechápu, co se má kde měnit, ale url ?id=1 o žádné změně DB nevypovídá. |
||
Taps Profil |
#5 · Zasláno: 30. 1. 2010, 11:30:45
SkyVessel:
v header použiješ tu samou stranku, na které se nachází ten výpis odkazů |
||
SkyVessel Profil |
#6 · Zasláno: 30. 1. 2010, 11:42:47
AM_: tak nějak by to mělo vypadat...
$id = NULL; $id = @$_GET['id']; if ($id) { // ???Když uživatel potvrdí $dotaz = "SELECT nick, member FROM users WHERE id='$id'"; $vysledek = mysql_query ($dotaz) or die(mysql_error()); $row = mysql_fetch_array($vysledek); $nick = $row['0']; $member = $row['1']; if ($member == 1) {$dotaz = "UPDATE users SET member='0' WHERE nick='$nick'"; } else {$dotaz = "UPDATE users SET member='1' WHERE nick='$nick'";} $vysledek = mysql_query ($dotaz) or die(mysql_error()); } ...<body>... $dotaz = "SELECT id, nick, member FROM users"; $vysledek = mysql_query ($dotaz) or die(mysql_error()); echo '<form action="'.$_SERVER['PHP_SELF'].'" name="frm_members" method="post">'; echo '<table><tr><td>'; $i = 0; while ($row = mysql_fetch_array($vysledek)) { $i++; $id = $row['0']; $nick = $row['1']; $member = $row['2']; if($member == 0) {$member_pom = 'ne';} else {$member_pom = 'ano';} if($member == 0) {$btn_text = 'Udělit členství v gildě';} else {$btn_text = 'Odebrat členství v gildě';} echo '<tr><td>'.$nick.' </td><td>'.$member_pom.'</td><td><a href="?id='.$id.'">'.$btn_text.'</td></tr>'; } echo '</form>'; echo '</div>'; Myslím, že to co říkal Taps ten problém téměř vyřeší... Nejde nějak udělat, aby se v historii vymazal krok zpět? Nebo tak nějak, aby znova nemohl vstoupit na tu stránku s tím ?id=... |
||
SkyVessel Profil |
#7 · Zasláno: 30. 1. 2010, 12:07:18 · Upravil/a: SkyVessel
edit... tak nic. Špatně jsem četl... smazáno, ale ten předchozí dotaz na historii platí :)
|
||
AM_ Profil |
#8 · Zasláno: 30. 1. 2010, 13:17:01
vždyť to celou dobu povídáme, když PHP něco změní a přesměruje se přes header location někam jinam, tak toto není zaznamenáno v historii prohlížeče. Tak se to také dělá, po jakékoli akci upravující data se přesměruje na URL, která nic měnit nebude.
|
||
SkyVessel Profil |
#9 · Zasláno: 31. 1. 2010, 11:38:29
AM_:...- ztratí se tím POST data, která jsou obvykle s akcí spojena, a při procházení historií se znovu nevyvolají
Máš pravdu... ta druhá polovina mi nějak vypadla?! :D... Tak díky moc |
||
Časová prodleva: 3 dny
|
|||
mediumZ Profil * |
#10 · Zasláno: 3. 2. 2010, 23:20:58
Ahoj, prosím o radu jak vytvořit povolení přístupu na erotické stránky. "Sdělení stránky" Potvrzovací tlačítka ANO NE o plnoletosti či VSTOUPIT nebo ODEJIT.Stránky už mám.Jen nevím u tohoto začít.Děkuji.
|
||
AM_ Profil |
#11 · Zasláno: 4. 2. 2010, 08:51:47
mediumZ:
A co to má společného s tímto vláknem? |
||
Časová prodleva: 14 let
|
0