Login Script und Admin zugriff
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anweisung
checken
entschuldigung
exit
funktion
hilfe
limit
login
pa
pawort
register
result
session
set
status
update
user
username
vielen dank
zutun
-
Also ich habe ein Problem.
Ich habe ein loginscript geschrieben es l?uft auch soweit nur m?chte ich nun dort ihrgendwie einen admin zugriff machen
was ich bis jetzt gemacht habe:
login
auslog
register
userliste (ausgelesen aus der datenbank)
was ich jetzt noch brauche
eine abfrage um einen admin auf einen gesch?tzen bereich lassen und einen user auf einen anderen.
damit ich dort f?r den admin eine admin.php anzeigen lassen kann
login.php
<?
include 'sessionhelpers.inc.php';
if (isset($_POST['login']))
{
$userid=check_user($_POST['username'], $_POST['userpass']);
if ($userid!=false)
login($userid);
else
echo 'Ihre Anmeldedaten waren nicht korrekt!';
}
if (!logged_in())
echo '<form method="post" action="index.php?site=member/login">
<table >
<tr>
<td><label>Benutzername:</label> </td>
<td> <input name="username" type="text"><br></td>
</tr>
<tr>
<td><label>Passwort: </label> </td>
<td><input name="userpass" type="password" id="userpass"><br></td>
</tr>
<tr>
<td><input name="login" type="submit" id="login" value="Einloggen"> </td>
</tr>
</table>
</form>';
else
echo '<a href="index.php?site=member/logout">Ausloggen</a>';
echo '<p /><a href="index.php?site=member/logged_in">Check</a>';
?>
sessionhelpers.inc.php
<?
function connect()
{
include("config.php");
$con= mysql_connect("$dbhost","$mysqlname","$dbpass") or die(mysql_error());
mysql_select_db("$dbname",$con) or die(mysql_error());
/*$con= mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('login',$con) or die(mysql_error());*/
}
function check_user($name, $pass)
{
$sql="SELECT UserId
FROM us_blacksoul
WHERE UserName='".$name."' AND UserPass=MD5('".$pass."')
LIMIT 1";
$result= mysql_query($sql) or die(mysql_error());
if ( mysql_num_rows($result)==1)
{
$user=mysql_fetch_assoc($result);
return $user['UserId'];
}
else
return false;
}
function login($userid)
{
$sql="UPDATE us_blacksoul
SET UserSession='".session_id()."'
WHERE UserId=".$userid;
mysql_query($sql);
}
function logged_in()
{
$sql="SELECT UserId
FROM us_blacksoul
WHERE UserSession='".session_id()."'
LIMIT 1";
$result= mysql_query($sql);
return ( mysql_num_rows($result)==1);
}
function logout()
{
$sql="UPDATE us_blacksoul
SET UserSession=NULL
WHERE UserSession='".session_id()."'";
mysql_query($sql);
}
connect();
?>
hoffe ihr k?nnt mir helfen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
hi,
also ich w?rde es so machen (ist jedoch aufwendiger)
du gibst dem user der sich anmeldet einen Status zb User und die Admins haben halt status Admin
<?
//hier das script zur datenbank connect
$sql = "SELECT * FROM users WHERE Nickname='$nick';";
$result = mysql_query($sql);
$data = mysql_fetch_assoc($result);
$status = $data['Status'];
if ($status == "Admin") {
//adminseite
}
else {
//userseite
}
?>
naja bedeutet leider mehr code is aber ganz simpel
mfg gigaman -
Du k?nntest den Status (oder woran auch immer man erkennen kann, zu welchem Typ der User geh?rt) mit der return-Anweisung der Funktion check_user zur?ckgeben.
Beispiel:
// Funktion: check_user function check_user($name, $pass) { $sql = "SELECT UserId, typ FROM us_blacksoul WHERE UserName='".$name."' AND UserPass=MD5('".$pass."') LIMIT 1"; $result= mysql_query($sql) or die(mysql_error()); // -------------------------- $row = mysql_fetch_assoc($result); $typ = $row['typ']; $userid = $row['UserId']; $array = array($typ, $userid); // -------------------------- if (mysql_num_rows($result) > 1) { return $array; } else { return FALSE; } }
// login.php include 'sessionhelpers.inc.php'; if (isset($_POST['login'])) { $array = array(); $array = check_user($_POST['username'], $_POST['userpass']); if ($array[0] == "Administrator" AND isset($array[1])) { // Dieser Code wird ausgef?hrt, wenn sich der Admin eingeloggt hat } elseif($array[0] == "User" AND isset($array[1])) { // Wenn sich ein User eingeloggt hat, dann ... } else { print("<b>Fehler:</b> Das Einloggen schlug fehl!"); // restlicher Code
-
ich hab es so. Ich wei? nicht ob das hilft
if(!isset($_SESSION["username"])) { echo "Bitte erst <a href=\"error.html\">einloggen"; exit; }
Haupt wenn man if oder so ne anweisung hat und falsch ist (das wird n?mlich bei mir includet auf jeder seite) muss man exit einsetzen damit die seite net weiter aufgebaut wird
EDIT: Ubs Hab da was falsch gelesen.. du willst zwei teilen ... Entschuldigung
Beitrag ge?ndert am 9.08.2005 02:43 von bilo -
was bilo hat ist nur ob der User bereits eine Session hat. Das hat gar nichts mit dem Problem zutun.
ich w?rde es wie compactdisc machen ist die beste L?sung... -
compactdisc
k?nntest du mir deinen code mal in meinen eingebaut zeigen weis nix damit anzufangen ihrgendwie.
und wie sieht man ob man admin ist, die arrays sind doch bei user und admin alle gleich -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage