php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 10-02-2005, 15:27
FRAD
 Member
Links : Onlinestatus : FRAD ist offline
Registriert seit: Jan 2005
Beiträge: 342
FRAD ist zur Zeit noch ein unbeschriebenes Blatt
Standard 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ß
Mit Zitat antworten
  #2 (permalink)  
Alt 10-02-2005, 15:30
kapitaeniglo
 PHP Senior
Links : Onlinestatus : kapitaeniglo ist offline
Registriert seit: Jul 2002
Beiträge: 1.474
kapitaeniglo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
Mit Zitat antworten
  #3 (permalink)  
Alt 10-02-2005, 15:31
FRAD
 Member
Links : Onlinestatus : FRAD ist offline
Registriert seit: Jan 2005
Beiträge: 342
FRAD ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
Mit Zitat antworten
  #4 (permalink)  
Alt 10-02-2005, 15:33
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

poste deinen Code
Mit Zitat antworten
  #5 (permalink)  
Alt 10-02-2005, 15:37
kapitaeniglo
 PHP Senior
Links : Onlinestatus : kapitaeniglo ist offline
Registriert seit: Jul 2002
Beiträge: 1.474
kapitaeniglo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

jepp ...

zeig deinen code und sag dann nochmal genau wo dein problem liegt ...
Mit Zitat antworten
  #6 (permalink)  
Alt 10-02-2005, 15:38
FRAD
 Member
Links : Onlinestatus : FRAD ist offline
Registriert seit: Jan 2005
Beiträge: 342
FRAD ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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 '';
Mit Zitat antworten
  #7 (permalink)  
Alt 10-02-2005, 15:41
kapitaeniglo
 PHP Senior
Links : Onlinestatus : kapitaeniglo ist offline
Registriert seit: Jul 2002
Beiträge: 1.474
kapitaeniglo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ä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
Mit Zitat antworten
  #8 (permalink)  
Alt 10-02-2005, 15:45
FRAD
 Member
Links : Onlinestatus : FRAD ist offline
Registriert seit: Jan 2005
Beiträge: 342
FRAD ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
Mit Zitat antworten
  #9 (permalink)  
Alt 10-02-2005, 15:47
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

und was steht da drin?
Zitat:
require_once('config.DB_eSession.php');
require_once('class.DB_eSession.php');
Mit Zitat antworten
  #10 (permalink)  
Alt 10-02-2005, 15:57
FRAD
 Member
Links : Onlinestatus : FRAD ist offline
Registriert seit: Jan 2005
Beiträge: 342
FRAD ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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?
Mit Zitat antworten
  #11 (permalink)  
Alt 10-02-2005, 16:30
FRAD
 Member
Links : Onlinestatus : FRAD ist offline
Registriert seit: Jan 2005
Beiträge: 342
FRAD ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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
Mit Zitat antworten
  #12 (permalink)  
Alt 10-02-2005, 16:34
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
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
Zitat:
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/
Mit Zitat antworten
  #13 (permalink)  
Alt 10-02-2005, 16:38
FRAD
 Member
Links : Onlinestatus : FRAD ist offline
Registriert seit: Jan 2005
Beiträge: 342
FRAD ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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...
Mit Zitat antworten
  #14 (permalink)  
Alt 10-02-2005, 18:23
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
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?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

PHP-Login

Die Aufgabenstellung bestand darin, ein einfaches Login-Script zu erstellen, dass schnell und universell auf jeder Webseiten eingebaut werden kann. Der Schwerpunkt lag dabei auf der Entwicklung eines universell einsetzbarem Modul für den Login und zur

05.04.2021 Wallhalla | Kategorie: PHP/ Kundenverwaltung
ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

18.03.2021 Berni | Kategorie: PHP/ Anzeigenmarkt
Modelmanager 2

Der Modelmanager 2 kann als komplette Webseite oder als Webtool in einem eigenen Verzeichnis Installiert werden, so ist dieser auch sehr Flexibel einsetzbar.

17.03.2021 Stephan_1972 | Kategorie: PHP/ Bilder
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:05 Uhr.