Felhasználók felvétele
A honlapunkkal kapcsolatba lépő személyeket két nagy csoportra oszthatjuk: látogatók és felhasználók. A látogatók csak egyszerű, publikus, jelszó nélkül hozzáférhető információkat láthatnak. Az egyszerű, statikus Weblapok mind ilyenek, megmutatnak valamit, majd megtekintés után a látogató továbblép. Ezzel szemben készíthetünk olyan dinamikus Weblapokat, melyre bejelentkezett felhasználók kényesebb, fontosabb információkhoz is hozzájuthatnak, sőt tartalmakat is módosíthatnak. A felhasználók közül legalább egynek különleges szerepűnek kell lennie. Ő az, akinek mindenhez joga van, úgy tartalmi, mint formai (megjelenítési) vonatkozásban. Ez személy a rendszergazda. Minden felhasználónak bejelentkezési névvel és jelszóval kell rendelkeznie.
A belépésre jogosultak (felhasználók) adatait adatbázisban fogjuk tárolni. Ehhez hozzunk létre egy adattáblát, melynek neve legyen Users. Az adattábla mezői: id, UName, NName és Passw, melyek funkciója rendre: rekordazonosító, felhasználói név, bejelentkezési név (nicknév vagy login név) és végül jelszó. A mezők típusai a felsorolás sorrendjében: INT, VARCHAR(36), VARCHAR(12) és VARCHAR(12). Ezt az adattáblát csak a rendszergazda tudja kezelni, adatait csak ő láthatja (feltéve, ha a jogokat át nem adja valaki másnak). Ezért egy elkészült rendszer felhasználói számára a belépési adatokat a rendszer készítője szolgáltatja, azokat tőle kell kérni.
Most hozzunk létre egy olyan PHP oldalt, amely segítségével a rendszer készítője kezelni tudja a rendszer használóit. Ezen a lapon rögzíteni és módosítani lehet a felhasználók adatait és törölni a felhasználót, amennyiben szükséges. Ennek a rendszernek a kezelői felülete induláskor így néz ki:
A Válassz/Új listaelemen való kattintásra a jobboldalon megjelenik a tevékenység neve (Új felhasználó felvétele) és az Új felhasználó feliratú aktiváló gomb, melyet az adatok bevitele után meg kell nyomni. Ezen a felületeken minden mezőt ki kell tölteni (az id nem kezelhető, inaktív), és egyik sem lehet üres. A megismételt jelszónak természetesen meg kell egyezni az elsőként beírt jelszóval, továbbá nem lehet két felhasználónak ugyanaz a login neve. Ha e hibák közül valamelyiket elkövetjük, akkor a rendszer nem veszi fel az új felhasználót.
Ha meglévő felhasználó adatait szeretnénk módosítani, vagy a felhasználót törölni szeretnénk, akkor ez a felület így néz ki:
Erre a felületre ugyanaz a szabály érvényes, mint ami a felhasználó felvételekor érvényes, törléshez viszont nem kell ismerni és beírni a felhasználó jelszavát.
Mivel a rendszer elég nyitott, oldjuk meg azt, hogy az elsőként felvett felhasználó lesz a rendszergazda, adatait módosítani vagy törölni ne lehessen. Ezt láthatjuk, ha mégis meg szeretnénk tenni, a módosító és törlő gomb inaktív lesz:
A felhasználók regisztrációját végző oldal teljes listája (a hconfig.php file az eddigi leírásokban is szereplő konfigurációs állomány) a következő:
<?php
include("hconfig.php");
if ( isset($_POST['userid']) ){
$userid = $_POST['userid'];
$uname = $_POST['uname'];
$nname = $_POST['nname'];
$passw1 = $_POST['passw1'];
$passw2 = $_POST['passw2'];
if ( isset($_POST['modosit']) ){
if ( ($uname !== "") && ($nname !== "")
&& ($passw1 !== "") && ($passw1=$passw2) ){
$pw = md5($_POST['passw1']);
mysql_query("UPDATE
Users SET UName='$uname', NName='$nname', Passw='$pw' WHERE
id='$userid' ");
}
}
if ( isset($_POST['ujuser']) ){
if ( ($uname !== "") && ($nname !== "")
&& ($passw1 !== "") && ($passw1=$passw2) ){
$eredm = mysql_query("SELECT * FROM Users WHERE NName='$nname'");
$sorsz = mysql_num_rows($eredm);
$sorsz = $sorsz+0;
if ( $sorsz == 0 ){
$pw = md5($_POST['passw1']);
mysql_query("INSERT
INTO Users SET UName='$uname', NName='$nname', Passw='$pw'
");
}
}
}
if ( isset($_POST['torol']) ){
mysql_query("DELETE
FROM Users WHERE id='$userid' ");
}
}
?>
<html>
<head>
<title>Felhasználók felvétele</title>
</head>
<body bgcolor="#eeeeee">
<form name="" action="Felhasznalok.htm" method="POST">
<input type="submit" name="vissza" value="Vissza" />
</form>
<blockquote><blockquote>
<h2>A honlap felhasználói:</h2>
</blockquote></blockquote>
<table border="1" bordercolor="#ffffff" cellpadding="10" cellspacing="0">
<tr>
<td>
<form name="" action="" method="POST">
<select name="userid" size="21" onclick="this.form.submit()" />
<option selected value="valassz" />Válassz/Új!
<?php
$eredm = mysql_query("SELECT * FROM Users");
while ( $sor = mysql_fetch_object($eredm) ){
print "<option
value=\"$sor->id\"";
if ( (isset($userid) && $userid == $sor->id) ){
print " selected";
}
print "> $sor->UName\n";
}
?>
</select>
</td>
<?php
if ( isset($_POST['userid']) ){
$userid = $_POST['userid'];
$eredm = mysql_query("SELECT * FROM Users WHERE id='$userid'");
$sor = mysql_fetch_object($eredm);
$uname = $sor->UName;
$nname = $sor->NName;
$passw = $sor->Passw;
}
?>
<td valign="top">
<?php
if ( isset($_POST['userid']) ){
if ( $userid == 'valassz' ){
print "<center><b><u>Új felhasználó felvétele:</u></b><br /><br
/></center>";
}
else{
print "<center><b><u>A felhasználó
adatainak módosítása:</u></b><br /><br
/></center>";
}
}
?>
<table cellpadding="10" cellspacing="0">
<tr>
<td align="right"><b>id:</td>
<td><input type="text" name="uid" size="3"
<?php
if ( $userid == 'valassz' ) print "value=\"\"
"; else print "value=\"$userid\" ";
?> disabled="disabled">
</td>
</tr>
<tr>
<td align="right"><b>Neve:</td>
<td><input type="text" name="uname" size="22" <?php
print "value=\"$uname\" ";?> ></td>
</tr>
<tr>
<td align="right"><b>Login neve:</td>
<td><input type="text" name="nname" size="22" <?php
print "value=\"$nname\" ";?> ></td>
</tr>
<tr>
<td align="right"><b>Jelszava:</td>
<td><input type="password" name="passw1" size="22" <?php print "value=\"$passw\" ";?> ></td>
</tr>
<tr>
<td align="right"><b>Jelszó újra:</td>
<td><input type="password" name="passw2" size="22" <?php print "value=\"\"
";?> ></td>
</tr>
<tr>
<td colspan="2" align="right">
<?php
if ( isset($_POST['userid']) ){
if ( $userid == 'valassz' ){
print "<input type=\"submit\" name=\"ujuser\" value=\"Új felhasználó\" />";
}
else{
print "<input type=\"submit\" name=\"modosit\" value=\"Adatmódosítás\"
";
/* törlendő a következő sor, ha az
id=1-es felhasználó adatait
módosítani szeretnénk */
if ( $userid == '1' ){print "disabled=\"disabled\"
";}
print "/><br /><br
/>";
print "<input type=\"submit\" name=\"torol\" value=\"A felhasználó
törlése\" ";
/* az id=1-es felhasználó
nem törölhető: */
if ( $userid == '1' ){print "disabled=\"disabled\"
";}
print " />";
}
}
?>
</td>
</tr>
</table>
</td>
</tr>
</table>
</table>
</form>
</body>
</html>