Autor Zpráva
FEIL
Profil
<b>Členové</b><hr>
<table border=0 width=500px>
<tr><td><b>Nick</b></td><td><b>Steam id</b></td><td><b>ICQ</b></td><td><b>Vyhodit z klanu</b></td></tr>";
while($clen = mysql_fetch_array($clenove)){
echo "<tr><td>"; autor($clen["id"]); echo "</td><td>"; if ($clen["steam_id"] == "") { echo "Nevyplněno"; } else { echo "".$clen["steam_id"].""; } echo "</td><td>"; icq($clen["id"]); echo "</td></tr>";
}
echo "
</table>


Sem by som potreboval vložiť tlačitko na ktoré ked kliknem tak to vyhodí hráča z klanu. Len neviem ako a kde to má byť vložene???
panther
Profil
FEIL:
Len neviem ako a kde to má byť vložene?
kamkoliv. Po kliknutí se refreshne stránka, takže to je jedno. klidně z textu „Vyhodit z klanu“ udělej odkaz, např.: href="?action=smazat&id=10".

V PHP pak, pokud je $_GET['action'] rovna 'smazat', smažeš záznam (hráče) s ID 10.
FEIL
Profil
No viem že by tam malo byť niečo takéto
$klan = $_POST["klan"];
$liga = $_POST["liga"];
$id = $userdata["user_id"];
$result = mysql_query("DELETE FROM liga_users WHERE id='$id' AND liga='$liga' AND klan_id='$klan'");
$result = dbquery("UPDATE liga_klany SET clenu=clenu-'1'  WHERE id='$klan'");
redirect("".BASEDIR."");


a potom by to malo začínať nejak takto if ($user["cl"] == "1") {
Chcem som len tlačítko vedla každého hráča po kliknutí by sa zistilo či je CL ak ano zmazalo by záznam v tabulke liga_users ešte by tam samozrejme musí byť podmienka že nemožem vyhodiť sám seba.
panther
Profil
FEIL:
POST? Mažeš z formuláře? Pochybuji.

Jestli se má mazat odkazem, bude to, jak jsem to napsal já - budeš mazat z URL, tedy z $_GETu.
FEIL
Profil
$user = dbarray(mysql_query("SELECT * FROM liga_users WHERE id='".$userdata["user_id"]."' AND liga='".$_GET["id"]."'"));
$liga = $_GET["id"];
$klan =  $user["klan_id"];
if ($user["cl"] == "0") {
// zkontroluje jestli klan existuje..
$kontrola = dbarray(mysql_query("SELECT * FROM liga_users WHERE id='".$userdata["user_id"]."' AND liga='".$_GET["id"]."'"));
if ($kontrola["liga"] == $_GET["id"]) {
$nazev = dbarray(mysql_query("SELECT * FROM liga_klany WHERE id='$klan' AND liga='".$_GET["id"]."'"));
echo "<center>Opravdu chcete odejít z klanu <b>".$nazev["nazev"]."</b> ?</center>";
echo "<br />";
echo "<table width='100px' border='0' align='center'><tr><td>\n";
echo "<form action='odejit.php' method='post'>\n";
echo "<input type='hidden' name='klan' value='$klan'>\n";
echo "<input type='hidden' name='liga' value='$liga'>\n";
echo "<input type='submit' value='ANO' class='button'></td><td>\n"; 
echo "</form>\n";
echo "<form action='".LIGA_BASEDIR."?page=team&id=$liga' method='post'><input type='submit' value='NE' class='button'>\n";
echo "</td></tr></table>\n";
} else { redirect("".LIGA_BASEDIR."?page=team&id=$liga"); }
} else { redirect("".LIGA_BASEDIR."chyba.php?id=3&liga=$liga"); }
?>


Takto to je spravené ked chceš opustíť team odejit.php zahrna to višie uvedené. Vychadzal som stoho že to bude nejak podobne.
FEIL
Profil
echo "<form action='vykopnut.php' method='post'>\n";
echo "<input type='submit' value='Vyhodiť' class='button'></td><td>\n";
Takto to nejak bude ???
panther
Profil
FEIL:
Takto to nejak bude ???
tak, jak jsem to napsal.
<?php

if (!empty($_GET['action'] and $_GET['action'] == 'smazat' and !empty($_GET['id'])) {
  mysql_query ("DELETE FROM `users` WHERE id = " . (int)$_GET['id'] . " LIMIT 1");
}

?>
<a href="?action=smazat&id=10">Smazat</a>
FEIL
Profil
Nejaké iné nápady? jednoznačne tam musí byť if ($user["cl"] == "1") táto podmienka.
FEIL
Profil
A niečo pre o GET: Oplatí sa spomenúť, že takéto riešenie cez odkazy je náchylné na CSRF útok (to znamená, že ti niekto podstrčí "vymazávaciu" URL a cez teba dáta vymaže).

Je také pravidlo, týkajúce sa formulárov na webe - ak nejaká akcia mení stav databázy (pridáva / upravuje / vymazáva položky), treba použiť metódu POST (odkazy používajú metódu GET
panther
Profil
FEIL:
to znamená, že ti niekto podstrčí "vymazávaciu" URL a cez teba dáta vymaže
musíš si rozmyslet, odkud a kdo bude moci co mazat. Většinou se záznamy dají mazat v nějaké zabezpečené administraci, kam se dostanou jen povolení. A ne všichni, kdo se mohou přihlásit, nutně musí mít právo mazat záznamy.

Místo odkazu a tedy GETem si můžeš vytvořit formulář, kde se to bude všechno odesílat POSTem, trváš-li na tom. SQL dotaz bude neměnný.
Lamicz
Profil
FEIL:
No tak místo GETu ti vytvořím POST request a vymažu to taky, ošetřit se to musí v té samotné action (práva apod.).
FEIL
Profil
Jediné čo som chcel je vytvoriť takto tlačítko
<tr><td><b>Nick</b></td><td><b>Steam id</b></td><td><b>ICQ</b></td><td><b>Vyhodit z klanu</b></td></tr>";
while($clen = mysql_fetch_array($clenove)){
echo "<tr><td>"; autor($clen["id"]); echo "</td><td>"; if ($clen["steam_id"] == "") { echo "Nevyplnìno"; } else { echo "".$clen["steam_id"].""; } echo "</td><td>"; icq($clen["id"]); echo "</td> echo <td><input type='submit' value='Vyhodit' class='button'></td></tr>";


ale stým že iba CL(clan leader) može na dané tlačítko kliknúť a vykoná sa script že to vyhodí hráča respektívne zmaže záznam v opačnom prípade vypíše: Nemáš dostatočné práva a toto ako spraviť tak nato som ešte neprišiel.
Mastodont
Profil
iba CL(clan leader) može na dané tlačítko kliknúť
V tom případě to tlačítko zobrazuj jen leaderovi
FEIL
Profil
Mastodont:
V tom případě to tlačítko zobrazuj jen leaderovi
Škoda že si nehodil nejakú časť kodu že ako nato. Lebo už som skúšla niečo takéto
echo "</td><td>"; icq($clen["id"]); echo "</td>if ($user["cl"] == "1") { echo <td><input type='submit' value='Vyhodit' class='button'></td>}</tr>";
ale toto my nefungovalo
Mastodont
Profil
FEIL:
To ti opravdu fungovat nebude, uvnitř řetězce nemůžeš používat IF a spouštět příkazy.
FEIL
Profil
a ako to mám spraviť? Lebo to sa pítam už od začiatku.
Mastodont
Profil
Na začátku máš ten řádek s eachama správně:
... echo "</td><td>"; if ($clen["steam_id"] == "") { echo "Nevyplněno"; } ...
FEIL
Profil
No to viem to funguje ale ako spravím aby sa zobrazovalo to tlačítko len CL už aj poradíš niečo??
Joker
Profil
FEIL:
Nemá to dělat právě ta podmínka if($user["cl"] == "1")? Nebo to je zas něco jiného?
FEIL
Profil
No ved tak som to myslel že ak platí toto if($user["cl"] == "1") objavý sa to tlačítko ale tak ako som to napísal my to nefunguje
mattyZEM
Profil
[#15] ti říkal, že v echu nemůžeš používat if.
echo "</td><td>"; icq($clen["id"]); echo "</td>";if ($user["cl"] == "1") { echo "<td><input type='submit' value='Vyhodit' class='button'></td>";}echo "</tr>";
FEIL
Profil
Matty musím sa ťi podakovať presne toto som chcel.

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: