Login Frage

02/04/2013 21:09 ライト#1
Huhu,

ich verwende dieses Loginscript für meinen ACP:

PHP Code:
    <?php
       session_start
();
      
?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Admincenter</title>
    </head>
    <style>
        * {
                    margin:0;
                    padding:0;
            }
           
            body {
                    text-align:center;
            }
           
            fieldset {
                    width:300px;
                    padding:10px;
                    margin:50px auto;
                    text-align:left;
            }
           
            p {
                    width:100%;
                    text-align:center;
                    color:#000000;
                    height:40px;
                line-height:40px;          
            }
           
            p.error {
                    background:#F00;
            }
           
            p.result  {
                    background:#090;
            }
           
    </style>
    <body>
    <?php
    
if(isset($_POST['logout'])) {
            unset(
$_SESSION['username']);
    }
     
     
              if(isset(
$_POST['logIn'])) {
                      
$database = @mysql_connect("***""***""***") or die("Es konnte keine Verbindung hergestellt werden. Fehler: ".mysql_error());
                     
                      if(!empty(
$_POST['userName']) && !empty($_POST['userPW']) && strlen($_POST['userName']) < 26 && strlen($_POST['userPW']) < 26) {
                              
$username mysql_real_escape_string($_POST['userName']);
                              
$password mysql_real_escape_string($_POST['userPW']);
                             
                              
$existPersonQuery mysql_query("SELECT username FROM webArtistry.loginTutorial WHERE username='$username' AND password='$password' LIMIT 1");
                             
                              if(
mysql_num_rows($existPersonQuery) > 0) {
                                      
$_SESSION['username'] = $username;
                              }
                              else {
                                      echo
'<p class="error">Benutzername oder Passwort falsch</p>';
                              }
                             
                      }
                      else {
                              echo
'<p class="error">Alle Felder ausfüllen.</p>';
                      }
                     
              }
            
?>
     
    <form action="index.php" method="post">
        <fieldset>  
        <?php
            
if(isset($_SESSION['username'])) {
                    echo
'<legend>Userinterface - Willkommen '.$_SESSION['username'].'</legend>';
                    echo
'<input type="submit" name="logout" value="logout" />';
            }
            else {
                    
?>
            <legend>Admin Center Login</legend>
            <table>
                <tr>
                    <th>Benutzername:</th>
                    <td><input type="text" name="userName" maxlength="25" /></td>
                </tr>
                <tr>
                    <th>Passwort:</th>
                    <td><input type="password" name="userPW" maxlength="25" /></td>
                </tr>
            </table>
            <input type="submit" name="logIn" value="login" />
      <?php
            
}
            
?>
        </fieldset>
    </form>
    </body>
    </html>
Ich möchte das Script so umbauen, das sich nur Admins dort einloggen können und das wenn ich mich von dort abmelde, das ich mich von der Hauptseite nicht abmelde.

Ich habe in der Datenbank eine zeile angelegt für die Admins.
Die Normalen User sind Level 0 Default und die Admins level 1.
02/04/2013 21:47 dowhile#2
"SELECT username FROM webArtistry.loginTutorial WHERE username='$username' AND password='$password' LIMIT 1"
->
"SELECT username FROM webArtistry.loginTutorial WHERE username='$username' AND password='$password' AND level='1' LIMIT 1"
oder so ...
02/04/2013 22:05 tayfe#3
Dowhile hat ja schon mal den ersten Teil gelöst. Aber dass er das nicht in den PHP-Tag gesetzt hat, stört mich gerade so sehr, dass ich es einfach nochmal hier hin schreiben muss:

PHP Code:
$existPersonQuery mysql_query("SELECT username FROM webArtistry.loginTutorial WHERE username='$username' AND password='$password' AND level='1' LIMIT 1"); 
Das musst du in Zeile 58 einsetzen und den alten Code natürlich löschen.


Zu dem Problem mit dem Ausloggen: Du hast vermutlich in deinem Login für die Standardbenutzer den selben Namen für die Session benutzt, so dass du den in diesem Skript einfach nur z.B. durch "username_admin" oder so ersetzen musst.

So sollte dann dein fertiger Code aussehen:

PHP Code:
<?php
       session_start
();
      
?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Admincenter</title>
    </head>
    <style>
        * {
                    margin:0;
                    padding:0;
            }
           
            body {
                    text-align:center;
            }
           
            fieldset {
                    width:300px;
                    padding:10px;
                    margin:50px auto;
                    text-align:left;
            }
           
            p {
                    width:100%;
                    text-align:center;
                    color:#000000;
                    height:40px;
                line-height:40px;          
            }
           
            p.error {
                    background:#F00;
            }
           
            p.result  {
                    background:#090;
            }
           
    </style>
    <body>
    <?php
    
if(isset($_POST['logout'])) {
            unset(
$_SESSION['username_admin']);
    }
     
     
              if(isset(
$_POST['logIn'])) {
                      
$database = @mysql_connect("***""***""***") or die("Es konnte keine Verbindung hergestellt werden. Fehler: ".mysql_error());
                     
                      if(!empty(
$_POST['userName']) && !empty($_POST['userPW']) && strlen($_POST['userName']) < 26 && strlen($_POST['userPW']) < 26) {
                              
$username mysql_real_escape_string($_POST['userName']);
                              
$password mysql_real_escape_string($_POST['userPW']);
                             
                              
$existPersonQuery mysql_query("SELECT username FROM webArtistry.loginTutorial WHERE username='$username' AND password='$password' AND level='1' LIMIT 1");
                             
                              if(
mysql_num_rows($existPersonQuery) > 0) {
                                      
$_SESSION['username_admin'] = $username;
                              }
                              else {
                                      echo
'<p class="error">Benutzername oder Passwort falsch</p>';
                              }
                             
                      }
                      else {
                              echo
'<p class="error">Alle Felder ausfüllen.</p>';
                      }
                     
              }
            
?>
     
    <form action="index.php" method="post">
        <fieldset>  
        <?php
            
if(isset($_SESSION['username_admin'])) {
                    echo
'<legend>Userinterface - Willkommen '.$_SESSION['username_admin'].'</legend>';
                    echo
'<input type="submit" name="logout" value="logout" />';
            }
            else {
                    
?>
            <legend>Admin Center Login</legend>
            <table>
                <tr>
                    <th>Benutzername:</th>
                    <td><input type="text" name="userName" maxlength="25" /></td>
                </tr>
                <tr>
                    <th>Passwort:</th>
                    <td><input type="password" name="userPW" maxlength="25" /></td>
                </tr>
            </table>
            <input type="submit" name="logIn" value="login" />
      <?php
            
}
            
?>
        </fieldset>
    </form>
    </body>
    </html>
Mfg Tayfe
02/06/2013 14:36 ライト#4
Quote:
Originally Posted by tayfe View Post
Dowhile hat ja schon mal den ersten Teil gelöst. Aber dass er das nicht in den PHP-Tag gesetzt hat, stört mich gerade so sehr, dass ich es einfach nochmal hier hin schreiben muss:

PHP Code:
$existPersonQuery mysql_query("SELECT username FROM webArtistry.loginTutorial WHERE username='$username' AND password='$password' AND level='1' LIMIT 1"); 
Das musst du in Zeile 58 einsetzen und den alten Code natürlich löschen.


Zu dem Problem mit dem Ausloggen: Du hast vermutlich in deinem Login für die Standardbenutzer den selben Namen für die Session benutzt, so dass du den in diesem Skript einfach nur z.B. durch "username_admin" oder so ersetzen musst.

So sollte dann dein fertiger Code aussehen:

PHP Code:
<?php
       session_start
();
      
?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Admincenter</title>
    </head>
    <style>
        * {
                    margin:0;
                    padding:0;
            }
           
            body {
                    text-align:center;
            }
           
            fieldset {
                    width:300px;
                    padding:10px;
                    margin:50px auto;
                    text-align:left;
            }
           
            p {
                    width:100%;
                    text-align:center;
                    color:#000000;
                    height:40px;
                line-height:40px;          
            }
           
            p.error {
                    background:#F00;
            }
           
            p.result  {
                    background:#090;
            }
           
    </style>
    <body>
    <?php
    
if(isset($_POST['logout'])) {
            unset(
$_SESSION['username_admin']);
    }
     
     
              if(isset(
$_POST['logIn'])) {
                      
$database = @mysql_connect("***""***""***") or die("Es konnte keine Verbindung hergestellt werden. Fehler: ".mysql_error());
                     
                      if(!empty(
$_POST['userName']) && !empty($_POST['userPW']) && strlen($_POST['userName']) < 26 && strlen($_POST['userPW']) < 26) {
                              
$username mysql_real_escape_string($_POST['userName']);
                              
$password mysql_real_escape_string($_POST['userPW']);
                             
                              
$existPersonQuery mysql_query("SELECT username FROM webArtistry.loginTutorial WHERE username='$username' AND password='$password' AND level='1' LIMIT 1");
                             
                              if(
mysql_num_rows($existPersonQuery) > 0) {
                                      
$_SESSION['username_admin'] = $username;
                              }
                              else {
                                      echo
'<p class="error">Benutzername oder Passwort falsch</p>';
                              }
                             
                      }
                      else {
                              echo
'<p class="error">Alle Felder ausfüllen.</p>';
                      }
                     
              }
            
?>
     
    <form action="index.php" method="post">
        <fieldset>  
        <?php
            
if(isset($_SESSION['username_admin'])) {
                    echo
'<legend>Userinterface - Willkommen '.$_SESSION['username_admin'].'</legend>';
                    echo
'<input type="submit" name="logout" value="logout" />';
            }
            else {
                    
?>
            <legend>Admin Center Login</legend>
            <table>
                <tr>
                    <th>Benutzername:</th>
                    <td><input type="text" name="userName" maxlength="25" /></td>
                </tr>
                <tr>
                    <th>Passwort:</th>
                    <td><input type="password" name="userPW" maxlength="25" /></td>
                </tr>
            </table>
            <input type="submit" name="logIn" value="login" />
      <?php
            
}
            
?>
        </fieldset>
    </form>
    </body>
    </html>
Mfg Tayfe
Wenn ich den fertigen Code von dir verwende, kann ich mich nicht mehr einloggen.
02/06/2013 14:44 tayfe#5
Was genau passiert denn, wenn du versuchst, dich einzuloggen? Was kommt dann für eine Nachricht?
02/07/2013 13:31 ライト#6
Benutzername oder Passwort falsch.
02/07/2013 13:34 KoKsPfLaNzE#7
wenn willst kann ich mir das heute abend ma live angucken bei dir, per teamviewer. Einfach per PN melden.