http://gorbem.hu/PHP.php

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ő:

 

            http://gorbem.hu/PH/main.php

 

<?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>