Benötige Hilfe bei IF Abfrage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Benötige Hilfe bei IF Abfrage

    Hi,

    bekomme es einfach nicht hin, weil ich den entsprechenden Befehl nicht finde...

    Ich möchte gerne etwas aus meiner Datenbank auslesen, sieht so aus:

    Table: benutzer
    Fields: name, mail, status

    So nun würde ich gerne folgende abfrage machen:

    Der Benutzer xyz meldet sich an, dann wird geprüft welchen Status er hat, wenn der Status 1 ist, darf er weiter machen, wenn 0 dann soll eine Meledung kommen und der Login Vorgang wird abgebrochen.

    Hört sich eigentlich einfach an, aber irgendwie komme ich mit meinem Buch und google nicht weiter....

    Gruß

  • #2
    du könntest uns erstmal deinen bisherigen code dazu präsentieren ...

    sonst würde ich das so machen

    if($status == 1){
    // mach den loginvorgang weiter

    } else {
    // ausgabe, dass keine berechtigung vorliegt
    }

    um dir besser helfen zu können, müsste da aber wie oben erwähnt etwas code von dir kommen

    gruss
    iglo

    Kommentar


    • #3
      Hi,

      die IF Abfrage habe ich auch soweit stehen, nur muss ich ja erst mal ein query machen... Das davor fehlt mir.

      Der Code ist gut, stehe am Anfang...

      Ciao

      Kommentar


      • #4
        poste deinen Code

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          jepp ...

          zeig deinen code und sag dann nochmal genau wo dein problem liegt ...

          Kommentar


          • #6
            Bitte schön...

            Ich würde nach der Stelle "$message = 'Make sure you enter both a username and password.';
            " ansetzen...

            PHP-Code:
            <?PHP
            // +----------------------------------------------------------------------+
            // | login.php, Copyright (c) 2004 Lawrence Osiris, All Rights Reserved   |
            // +----------------------------------------------------------------------+
            // | This program is free software; you can redistribute it and/or modify |
            // | it under the terms of the GNU General Public License as published by |
            // | the Free Software Foundation; either version 2 of the License, or    |
            // | (at your option) any later version. Read the full included license.  |
            // +----------------------------------------------------------------------+
            require_once('config.DB_eSession.php');
            require_once(
            'class.DB_eSession.php');

            // See if relevant fields have been set.
            $submitted = IsSet($_REQUEST['Submit'])   ? TRUE FALSE;
            $user      = IsSet($_REQUEST['username']) ?
                               
            cleanValue($_REQUEST['username']) : '';
            $pswd      = IsSet($_REQUEST['password']) ?
                               
            cleanValue($_REQUEST['password']) : '';


            if(
            $submitted) {                                        // Form submitted yet?

                
            if (empty($user) || empty($pswd)) {                 // Are Form fields empty?

                    // Display error message when fields are not filled in.
                    
            $message 'Make sure you enter both a username and password.';

                } else {

                    
            // Authenticate username and password (i.e. match against a database).
                    // Start a session only after username and password have been verified.
                    
            if ((!strcmp($user'guest')) &&                // Does username match 'guest'?
                        
            (!strcmp($pswd'demo'))) {                 // Does password match 'demo'?

                        
            $sess_param['new_sid'] = TRUE;              // Create new session ID to be safe.
                        
            $sess_param['security_level'] = 200;        // Security level for Members area
                        
            $sess_param['gc_maxlifetime'] = 300;        // Inactivity timeout of 300 seconds (5 minutes)
                        
            $sess = new DB_eSession(&$sess_param);      // session_start() done.
                        
            $sess->setSessVar('authenticated'TRUE);   // Set that authentication occurred.
                        // Save the username for displaying and encrypt
                        
            $sess->setSessVar('username'$userENCRYPT_VALUEEXTRA_FIELD);

                        
            $URI $sess->setSessURI('members.php');    // Optional - pass session ID in URI. Not as safe.

                        
            header("Location: $URI");                   // Go to members area.
                        
            exit;

                    } else {

                        
            // Incorrect information entered. Display an error message.
                        
            $message 'The username and/or password are invalid. Try again.';
                    }
                }

            } else {                                                
            // Form not submitted yet.

                
            $message  '';                                     // Initialize message display field/area.
            }

            $warning '';

            Kommentar


            • #7
              ähm ...
              und wo ist da bisher der status in dem skript ???

              wird der mit aus der db ausgelesen ???

              wenn ja ... wie heissen die felder ???

              gruss
              iglo

              Kommentar


              • #8
                Ja, das ist der springende Punkt. Es kommt ein Benutzer, zu diesem Benutzer muss das Feld status ausgelesen werden, wenn 0 dann exit, wenn 1 dann weiter mit der Routine...

                So, nur wie bekomme ich die variable $status hin?

                Table: benutzer
                Fields: name, mail, status

                PHP-Code:
                if($status == 1){
                // mach den loginvorgang weiter

                } else {
                // ausgabe, dass keine berechtigung vorliegt

                Dann wäre mein problem gelöst

                Kommentar


                • #9
                  und was steht da drin?
                  require_once('config.DB_eSession.php');
                  require_once('class.DB_eSession.php');

                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar


                  • #10
                    Also in der require_once('config.DB_eSession.php');
                    steht folgendes:

                    PHP-Code:
                    define('DB_ESESSION_LOADED'TRUE);


                    /**
                     * @package    DB_eSession
                    Public License
                     * @author     Lawrence Osiris <code@dearneighbor.com>
                     * @link       [url]http://www.code.dearneighbor.com[/url]
                     * @copyright  Copyright &copy; 2004, Lawrence Osiris
                     * @version    $Version: 1.0.0$
                     * @access     public
                     */
                    class DB_eSession
                    {

                        
                    /**
                         * @var    string $_ver This scripts version number
                         * @access private
                         */
                        
                    var $_ver '1.0.0';


                        
                    /**
                         * @var    string $_REQ_VER The minimum PHP version number this script
                         *                          requires in order to execute successfully.
                         * @access private
                         */
                        
                    var $_REQ_VER '4.2.0'
                    geht noch weiter, aber ich denke das langt oder?

                    In der require_once('class.DB_eSession.php'); steht drin:

                    PHP-Code:
                    /**
                     * Database related variables with assigned default values.
                     * Assign these necessary fields to allow connection to your database.
                     * Remember to give 'sess_user' access privileges to 'db_esessions'.
                     * Make sure the password is correct (sess1234 is the default).
                     */
                    $sess_param['db_host'] = 'localhost';       // Your host name

                    $sess_param['db_user'] = 'sess_user';       // Your user name assigned

                    $sess_param['db_pswd'] = 'sess1234';        // Your assigned password

                    $sess_param['db_name'] = 'db_esessions';    // Your database name

                    /**
                     * MySQL database connection type; Normal or persistent.
                     * The default is for a normal connection (FALSE).
                     */
                    $sess_param['db_persistent'] = FALSE
                    Ist nur ein Auszug, fehlt noch einiges... Wenn du mir sagst auf was du hinaus willst?

                    Kommentar


                    • #11
                      Wie würdest du denn eine ganz einfache Abfrage machen, ob die Variable $status zu füllen?

                      Der Rest werde ich dann mal schauen, es geht mir hierbei lediglich darum die Variable $status korrekt zu füllen.

                      Ciao

                      Kommentar


                      • #12
                        geht noch weiter, aber ich denke das langt oder?
                        [ironie]Mein Wissen geht noch weiter, aber mehr wolltest du nicht wissen oder?[/ironie]


                        Du verwendest für den Zweck IMO das falsche Anmeldeskript. Dein Anmeldeskript prüft nur, ob der Username = Guest und das Passwort = demo ist und wenn ja, dann wird der User eingeloggt, aber wenn du eine Datenbank verwendest, wirst du wohl auch verschiedenen User verschiedene Statusse erlauben wollen, oder nicht?
                        Dann brauchst du ne vernünftige Datenbank, mit Username, Passwort, ggf. E-Mail-Adresse und deiner Status-Spalte.
                        Beim einloggen prüfst du dann ungefähr so:
                        PHP-Code:
                        $result mysql_query('SELECT * FROM users WHERE username LIKE "' mysql_real_escape_string($_POST['username'], $db_handle) . '" AND password = "' mysql_real_escape_string($_POST['password'], $db_handle) . '"');
                        if (
                        mysql_num_rows($result) != 0)
                        {
                         
                        $result mysql_fetch_assoc($result);
                         
                        // und in $result['status'] wäre dann dein Wert aus der Datenbank
                         // und hier wird auch die ID in die Session geschrieben
                        }
                        else
                        {
                         echo 
                        'Sry, falsches Password, oder der User existiert nicht!';

                        außerdem solltest du dir abgewöhnen, und zwar jetzt und hier, wo du das liest, die übergebenen Variablen zuerst in "normale" zu verwandeln
                        PHP-Code:
                        $submitted = IsSet($_REQUEST['Submit'])   ? TRUE FALSE;
                        $user      = IsSet($_REQUEST['username']) ?
                                           
                        cleanValue($_REQUEST['username']) : '';
                        $pswd      = IsSet($_REQUEST['password']) ?
                                           
                        cleanValue($_REQUEST['password']) : ''
                        du kannst das Array $_REQUEST, bzw. $_POST/$_GET auch überschreiben, dann sieht man aber auf einen Blick, woher die Variable kommt!
                        Und als weiteres gibt es hier auf der Seite ein Tutorial-Skript von MrHappiness (wird das so geschrieben?), das solltest du dir erstmal anschauen und dann alles weitere darauf basieren lassen!


                        Link zum Tut
                        http://www.php-resource.de/tutorials/read/38/1/

                        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                        Wie man Fragen richtig stellt

                        Kommentar


                        • #13
                          Hi,

                          also zu dem Loginscript gibt es soviel zu sagen, das es mit einer Datenbank zusammenarbeit. Es gibt mehrere Benutzer, jeder Benutzer der sich anmeldet, erzeugt ein Session-Eintrag in der DB.

                          Ich werde jetzt mal schaun, ob ich mit deinem Anstz weiter komme...

                          Kommentar


                          • #14
                            Original geschrieben von FRAD
                            Hi,

                            also zu dem Loginscript gibt es soviel zu sagen, das es mit einer Datenbank zusammenarbeit. Es gibt mehrere Benutzer, jeder Benutzer der sich anmeldet, erzeugt ein Session-Eintrag in der DB.

                            Ich werde jetzt mal schaun, ob ich mit deinem Anstz weiter komme...
                            irgendwas stimmt da aber nicht...kann man sich das mal irgendwo anschauen?

                            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                            Wie man Fragen richtig stellt

                            Kommentar

                            Lädt...
                            X