Zdravím, měl bych takový dotaz. Napadá někoho z Vás jak udělat administraci registrovaných uživatelů v databázi? Potřeboval bych nějaký výpis uživatelů z databáze kde by u každého administrator mohl zvolit takové věci jako je úprava uživatele a popřípadě jeho smazání z databáze.
Díky za radu
Pokužít PHP a MySQL fce, případně někde na webu splašit něco univerzálního (jestli něco takového exituje). Víc ti neporadim, protože netuším, co a jak ...
No jak dostat data o uživatelích z MySQL do tabulky na webu pomocí PHP je mě jasné. Co mě není jasné je jak tam přidat položky upravit a smazat do každého řádku tak aby odpovídali ID uživatele s kterým chci pracovat.
<HTML>Když vezmu jako příklad, že mazání bude probíhat v delete.php, tak můžeš udělat odkazy
delete.php?user=<?php echo $zaznam[id];?>
A na stránce delete.php pak budeš pracovat s $_GET['user']</HTML>
Mohu se prosím ještě zeptat jak by měla vypadat ta stránka delete.php?
V tabulce na výpis uživatelů v mé podobě vypada odkaz takto:
a href="index.php?clanek=delete.php?user=<?echo $zaznam[id];?> a potřeboval bych vědět jak na něj mám navázat v delete.php
Spis ten odkaz by mohl byt:
a href="index.php?clanek=delete?user=<?echo $zaznam['id'];?>
V tom indexu bys měl mít podmínku, když $_GET['clanek'] == "delete"
Následně inkludovat delete.php a v něm nejdříve kontrola, ze opravdu maze jen autorizovana osoba a pak něco jako
$sql="DELETE FROM tabulka WHERE id=".$_GET['user']." LIMIT 1";
Hmm a ta podmínka za if clanek=delete by měla vypadat jak?
Vždyť jsme ti tam tu podminku napsal.
Nejsem si jist, zda-li sis při svě současné znalosti PHP a MySQL nevzal příliš velké sousto - udělat pořádnou administraci uživatelů se zabezpečením není úplně triviální.
No když to člověk nezkusí tak se to nikdy nenaučí:-)
Jde mě o tohle:
V indexu mám
elseif ($_GET["clanek"]=="delete")
{
include("delete.php");
}
a v delete.php
mysql_query ("delete from uzivatele where id=".$_GET["user"]."LIMIT 1";, $GLOBALS["link"]);
a končím na tom předávání id kdy mě to hledá článek který neexistuje
V $_GET['user'] musíš mít id uživatele, který je takto v databázi a který chceš vymazat.
Myslím, že máš chaos v id uživatele a v id článku. Jednou hledáč nějaký článke, pak chceš vymazat uživatele. Nerozumín tomu.
Vžďyt ano.
Zkouším to dle tvého návodu:
Mám nějakou tabulku kde mám vypsané uživatele. U každého uživatele mám link v té podobě co jsi napsal to jest.
a href="index.php?clanek=delete?user=<?echo $zaznam['id'];?>
Následně mám jak jsem psal v indexu:
elseif ($_GET["clanek"]=="delete")
{
include("delete.php");
}
a v delete.php mám:
mysql_query ("delete from uzivatele where id=".$_GET["user"]."LIMIT 1";, $GLOBALS["link"]);
zaprve si myslim ze by odkaz me vypadat takto:
a href="index.php?clanek=delete&user=<?echo $zaznam['id'];?>
dale bych misto $_GET pouzival $HTTP_GET_VARS[]
a mozna zkusit dat ten limit pryc, nebo udelat mezeru pred limit
>> dale bych misto $_GET pouzival $HTTP_GET_VARS[]
a to proc? $HTTP_GET_VARS[] je zastarale a nema se dale pouzivat
Tak asi kecam , uz nevim proc sem to pouzival myslim ze mi _GET nefungovalo v easyphp sorry za spatnou radu
Díky za rady pánové.
Posunul jsem se díky Vám dále ale pořád narážím na jeden problém a to v souboru delete.php kde mám v postatě zatím jen dva řádky, jeden odkazuje na připojení k databázi a druhý by měl vykonat samotné smazání a právě v něm je problém, vypadá takhle:
mysql_query ("delete from uzivatele where id=".$_GET["user"]."LIMIT 1";, $GLOBALS["link"]);
v prohlížeči mě to hází parse error
zkus ten strednik dat pryc
:-)
tentokráte
Fatal error: Cannot redeclare ukazclanek() (previously declared in /func.php:10) in /func.php on line 8
Osmý řádek vypadá tahle:
function ukazclanek ()
{
if ((string)$_REQUEST["clanek"]<>'') $mujclanek=$_REQUEST["clanek"]; else $mujclanek="uvod";
if (is_file("./".$mujclanek.".htm")):
$nazevclanku=$mujclanek.".htm";
require $nazevclanku;
elseif (is_file("./".$mujclanek.".php")):
$nazevclanku=$mujclanek.".php";
require $nazevclanku;
else:
$nazevclanku=$mujclanek.".htm";
require "./notfound.php";
endif;
}
Tak jsem se naštval, LIMIT jsem vyhodil a funguje to. Správně to tedy mělo být takto:
mysql_query ("delete from uzivatele where id=".$_GET["user"]);
delete from uzivatele where id=
smaze 1
ale
delete * from uzivatele where id= by mohlo mazat kde co, tu bych limit daval
Jů, to zaváním krásným SQL injection ;)
Co si budeme vyprávět, ten link by měl vypadat takhle:
a href="index.php?clanek=delete&user=<?echo $zaznam['id'];?>
Tom má pravdu a tenhle postup je fakt nebezpečný, doplň to aspoň http autentifikací nebo to nějak jinak zabezpeč.
Díky za rady, LIMIT jsem tam dodělal a taky kontroluji jestli ten kdo to maže má k tomu oprávnění.
Ještě jednou díky moc všem:-)