Autor Zpráva
SkyVessel
Profil
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
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
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
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
SkyVessel:
v header použiješ tu samou stranku, na které se nachází ten výpis odkazů
SkyVessel
Profil
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
edit... tak nic. Špatně jsem četl... smazáno, ale ten předchozí dotaz na historii platí :)
AM_
Profil
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
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
mediumZ
Profil *
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
mediumZ:
A co to má společného s tímto vláknem?

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: