Profil | Mitglieder | Registrieren | Start | Suche


PHP-Support.de » Programmierung » PHP & MySQL » Codeschnipsel » PHP Login Script mit Prepared-Statements, MySQLi und HTML5    » Hallo Gast [Login | Registrieren]

Neues Thema | Antworten   

Autor Beitrag


Neuling


Dabei seit: 01.01.1970
Herkunft:
Posts:
      Zitat | Bearbeiten

Hi,

Zitat:
Orginal von vlad dracul
Ist es nicht sicherer die zwei (behandelten) Variablen aus Zeilen 31+32 zu übergeben, anstatt die unbehandelten $-POST-Werte?


Nein, in diesem Fall ist das korrekt. Da wir hier mit Prepared Statements arbeiten, übernimmt das Escaping der MySQL-Server für uns. Würde ich die Variablen aus Zeile 31 und 32 nehmen, könnte durch htmlspecialchars() ein Zeichen umgewandelt werden und der Benutzer könnte sich nie einloggen. Zeile 31 und 32 sind nur für die Ausgabe in den Textfelder gedacht. Ein Sicherheitsproblem ist das nicht!

Zitat:
Orginal von vlad dracul
Sollte man nicht mit "query->close()" das Statement freigeben und mit "SQL->close()" die Verbindung zur Datenbank noch beenden?


Man könnte zwar immer mysql_close() nutzen, allerdings macht der MySQL-Server das am Ende des Scripts eh automatisch und ist daher eher überflüssig

Ich hoffe, dass ich dir weiterhelfen konnte.
Lieben Gruß


20.05.2012, 17:26 Profil | PM | E-Mail  
Mario
Mitglied
Neuling


Dabei seit: 13.10.2012
Herkunft: Freiburg im Breisgau
Posts: 2
      Zitat | Bearbeiten

Hallo Dennis1993, hallo Command Board User,

ich habe eine Frage zu dem Loginscript mit Anweisung.

Ich habe das Loginscript mit Useranmeldung, was eigentlich auch funktioniert. Allerdings habe ich das Login include in der home.php als if Anweisung.

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
<?php
session_start
();
if(!isset(
$_SESSION['user_id']))
{
    include 
'login.php';
}
else
{
    include 
'news.php';
    include 
'style/uhr.php';

}
?>
<!--  immer anzeige -->
    <? include ("style/header.php"); ?>


Der Login funktioniert über MySQL, allerdings nur wenn ich nach der Anmeldung, die home.php neu lad. Ansonsten bleibt die www./.../home.php leer.

Meine zweite Frage wäre, wie ich den "login.php?logout" wieder auf die home.php weiterleite.

Ich bin dankbar für jede Hilfe...

MfG Mario






Post wurde schon 1x editiert, das letzte mal am 13.10.2012 um 19:59 von Mario
13.10.2012, 19:12 Profil | PM | E-Mail  
FalkenaugeMihawk
Mitglied
Perfekter User


Dabei seit: 05.06.2010
Herkunft: Schweiz
Posts: 2619
      Zitat | Bearbeiten

Über header().
 PHP 
1:
header("Location: home.php");



13.10.2012, 22:07 Profil | PM | E-Mail  
Mario
Mitglied
Neuling


Dabei seit: 13.10.2012
Herkunft: Freiburg im Breisgau
Posts: 2
      Zitat | Bearbeiten

Hallo FalkenaugeMihawk, hallo Command Board,

ich habe das über den header("Location: home.php"); beim Abmeldevorgang in der login.php versucht, allerdings bekomme ich es nicht hin, das nach dem Abmelden die home.php angezeigt wird.

Ich habe die Datei mal angehangen, vielleicht ist einer so nett, und zeigt mir den Fehler auf...

DANKE, MfG Mario

Dateianhang:
 login (2).zip  (2 KB, 476 mal herruntergeladen)



Post wurde schon 1x editiert, das letzte mal am 14.10.2012 um 10:06 von Mario
14.10.2012, 10:03 Profil | PM | E-Mail  
FalkenaugeMihawk
Mitglied
Perfekter User


Dabei seit: 05.06.2010
Herkunft: Schweiz
Posts: 2619
      Zitat | Bearbeiten

Also in der login.php steht header('Location: login.php');....


14.10.2012, 12:28 Profil | PM | E-Mail  
Lucker
Mitglied
Neuling


Dabei seit: 15.01.2013
Herkunft: keine Angabe
Posts: 2
      Zitat | Bearbeiten

Ich versuche grad dieses Loginscript für mich anzupassen leider funktioniert dies nicht.

Kommt immer der Fehler das die anmelde daten falsch sind ;(

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
<?php
/*
 *    Autor        : Dennis1993
 *    Copyright    : (c) 2011 by Dennis1993
 */
session_start();
define('SECURE'true);
require_once(
'config.php');


/**
 *    Abmeldevorgang
 */
if(isset($_GET['logout']))
{
    if(isset(
$_SESSION['user_id']))
    {
        
$_SESSION = array();
        
session_destroy();
    }

    
header('location: login.php');
    exit();
}


/**
 *    Anmeldevorgang
 */
if(isset($_POST['send']))
{
    
$user_email trim(htmlspecialchars($_POST['user_email']));
    
$user_password trim(htmlspecialchars($_POST['user_password']));

    
//Benutzereingaben validieren
    
if($user_email && !empty($user_password))
    {
        
$query $SQL->prepare('SELECT `id` FROM `login` WHERE `loginname` = ? AND `passwort` = ?');
        
$query->bind_param('ss'$_POST['user_email'], md5($_POST['user_password']));
        
$query->execute();
        
$query->store_result();
        
$query->bind_result($user_id);

        
//Sind Benutzerdaten vorhanden und korrekt?
        
if($query->num_rows == 1)
        {
            
$query->fetch();
            
$_SESSION['user_id'] = $user_id;
            
header('location: intern.php');
            exit();
        }
        else
        {
            
$error 'Ihre Anmeldedaten sind nicht korrekt. Bitte wiederholen Sie Ihre Eingabe.';
        }
    }
    else
    {
        
$error 'Bitte f&uuml;llen Sie alle Felder korrekt aus.';
    }
}
else
{
    
$error NULL;
    
$user_email NULL;
}

?>
<!DOCTYPE HTML>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Login</title>
</head>

<body>
<?php echo $error?>
<form action="index.php" method="post">
<table cellpadding="1" cellspacing="4">
    <tr>
        <td><strong>Loginname:</strong></td>
        <td><input type="text" name="user_email" value="<?php echo $user_email?>" required="required" placeholder="Loginname" maxlength="255" /></td>
    </tr>
    <tr>
        <td><strong>Passwort:</strong></td>
        <td><input type="password" name="user_password" required="required" placeholder="Passwort" maxlength="50" /></td>
    </tr>
    <tr>
        <td colspan="2"><input type="submit" name="send" value="Login" /></td>
    </tr>
</table>
</form>

</body>
</html>



15.01.2013, 21:47 Profil | PM | E-Mail  
FalkenaugeMihawk
Mitglied
Perfekter User


Dabei seit: 05.06.2010
Herkunft: Schweiz
Posts: 2619
      Zitat | Bearbeiten

Wie wärs mal mit Formulardaten ausgeben und mit den Werten in der Tabelle manuell vergleichen?


16.01.2013, 17:54 Profil | PM | E-Mail  
Lucker
Mitglied
Neuling


Dabei seit: 15.01.2013
Herkunft: keine Angabe
Posts: 2
      Zitat | Bearbeiten

Oh man, danke ;/
Das Feld in der Tabelle ist warum auch immer auf 25 zeichen begrenzt und der md5 hash hat ja,... 32 Zeichen.

In meiner User Tabelle der Datenabank habe ich eine Spalte "userlevel".

Wie kann ich das script umstellen das noch user zugriff haben die "userlevel" 2 oder höher haben.


16.01.2013, 19:02 Profil | PM | E-Mail  
Ma27
Mitglied
Anfänger


Dabei seit: 01.03.2013
Herkunft: München
Posts: 49
      Zitat | Bearbeiten

Ich kann nur sagen, gute Leistung. So was sieht man nicht alle Tage



LG Ma27

01.03.2013, 12:48 Profil | PM | E-Mail  
bloody_beginner
Mitglied
Neuling


Dabei seit: 11.04.2013
Herkunft: keine Angabe
Posts: 4
      Zitat | Bearbeiten

Hallo Dennis,

ein dickes Dankeschön für das tolle Script. Es läuft einfach super und hat mir einen guten Einstieg in mysqli ermöglicht. Ich hatte bisher leider keinen Draht dazu gefunden, obwohl es mittlerweile ja ohne kaum noch geht. Die Mysql Schnittstelle in PHP wird ja wohl irgendwann ganz wegfallen.

Kannst du mir vielleicht noch sagen, wo in deinem Script der charset Typ für die Datenbankverbindung gesetzt wurde. Das wird ja in Zeile 29 der config.php überprüft.

 PHP 
1:
2:

if(mysqli_connect_errno() != 0 || !$SQL->set_charset('utf8')) 


Bisher stand in meiner Verbindungsdatei immer.

 PHP 
1:
2:

 mysql_query("set names 'utf8'");


Gruß
René




Post wurde schon 1x editiert, das letzte mal am 11.04.2013 um 19:11 von bloody_beginner
11.04.2013, 19:05 Profil | PM | E-Mail  


Neuling


Dabei seit: 01.01.1970
Herkunft:
Posts:
      Zitat | Bearbeiten

Zitat:
Orginal von bloody_beginner
[...]Kannst du mir vielleicht noch sagen, wo in deinem Script der charset Typ für die Datenbankverbindung gesetzt wurde. Das wird ja in Zeile 29 der config.php überprüft.

 PHP 
1:
2:

if(mysqli_connect_errno() != 0 || !$SQL->set_charset('utf8')) 
[...]

Hey ho,

genau die Stelle ist es. In diesem Momentan wird es gesetzt und wenn das nicht funktioniert hat, meldet er das.

Deshalb auch $SQL->set_charset('utf8')

lG


13.04.2013, 17:44 Profil | PM | E-Mail  
FalkenaugeMihawk
Mitglied
Perfekter User


Dabei seit: 05.06.2010
Herkunft: Schweiz
Posts: 2619
      Zitat | Bearbeiten

Zitat:
Orginal von bloody_beginner
Hallo Dennis,

ein dickes Dankeschön für das tolle Script. Es läuft einfach super und hat mir einen guten Einstieg in mysqli ermöglicht. Ich hatte bisher leider keinen Draht dazu gefunden, obwohl es mittlerweile ja ohne kaum noch geht. Die Mysql Schnittstelle in PHP wird ja wohl irgendwann ganz wegfallen.

Kannst du mir vielleicht noch sagen, wo in deinem Script der charset Typ für die Datenbankverbindung gesetzt wurde. Das wird ja in Zeile 29 der config.php überprüft.

 PHP 
1:
2:

if(mysqli_connect_errno() != 0 || !$SQL->set_charset('utf8')) 


Bisher stand in meiner Verbindungsdatei immer.

 PHP 
1:
2:

 mysql_query("set names 'utf8'");


Gruß
René

Die Zeile ist das selbe wie:
 PHP 
1:
2:
$set_charset = $SQL->set_charset('utf8');
if(mysqli_connect_errno() != 0 || !$set_charset)



13.04.2013, 22:40 Profil | PM | E-Mail  
bloody_beginner
Mitglied
Neuling


Dabei seit: 11.04.2013
Herkunft: keine Angabe
Posts: 4
      Zitat | Bearbeiten

Hallo,

vielen Dank für die Antworten,

da hatte ich bei der Kurzschreibweise aber etwas elementares noch nicht verstanden gehabt.

Jetzt mit der Erklärung ist es natürlich Sonnenklar.

Ich bin aber jetzt wirklich gewillt mich näher mit mysqli auseinanderzusetzen. Der Stein kommt langsam ins Rollen aber er rollt.

Tut mir leid wenn meine Frage ein bisschen doof war.

Beste Grüße
René




14.04.2013, 17:47 Profil | PM | E-Mail  
Huntelaar
Mitglied
Neuling


Dabei seit: 25.11.2013
Herkunft: keine Angabe
Posts: 1
      Zitat | Bearbeiten

Ich habe das Sript genauso wie du es geschrieben hast in meine Website kopiert und die Datenbankdaten angepasst. Nach dem einloggen komme ich auf eine Seite auf der nur steht: "Sie sind"

Warum gibt es nichtmal den Satz "Sie sind nicht eingeloggt" richtig aus??

Ist es möglich dass sich das Skript nicht mit meinem CSS verträgt oder so etwas?


25.11.2013, 17:04 Profil | PM | E-Mail  
flasherfive
Mitglied
Neuling


Dabei seit: 13.02.2014
Herkunft: keine Angabe
Posts: 1
      Zitat | Bearbeiten

Habe da ein Problem. Wenn ich mich über die login.php anmelde passiert nichts. Die Abfrage erfolgt und es wird auch festgestellt ob die Eingaben stimmen oder nicht. Allerdings funktioniert die Weiterleitung auf die intern.php nicht, die echo Ausgabe wird aber angezeigt.

$query->fetch();
$_SESSION['user_id'] = $user_id;
header('location: intern.php');
echo "alles richtig!";
exit();

Was läuft falsch? Vielen Dank im vorraus...

Version: PHP 5.2.12 MySQL 5.1.73


13.02.2014, 11:59 Profil | PM | E-Mail  
congomonster
Mitglied
Neuling


Dabei seit: 10.06.2014
Herkunft: keine Angabe
Posts: 1
      Zitat | Bearbeiten

Ich habe das Skript auch mal ausprobiert. Leider kommt bei mir die Fehlermeldung:
Strict Standards: Only variables should be passed by reference in /Applications/MAMP/htdocs/PHP_LOGIN/login.php on line 39

Kann mir da jemand helfen?


10.06.2014, 20:00 Profil | PM | E-Mail  
mjc-jugend
Mitglied
Neuling


Dabei seit: 22.06.2014
Herkunft: keine Angabe
Posts: 6
      Zitat | Bearbeiten

Hallo allerseits,

mit dem Skript läuft alles bestens.
Allerdings habe ich da folgende Frage:
Ich finde es zu aufwendig, wenn ich immer über die Datenbank neue USER anlegen muss. Gibt es irgendwo eine Datei (Skript) womit man neue USER anlegen kann und am besten dass z.B. auch nur der USER mit Adminrechten das auch machen kann?

Oder gibt es noch ein tut, wo ich mir das abgucken kann?

Gruß Andy

EDIT: wie kann ich diesen Satz so anpassen dass mir da der Name steht, weil so funktioniert das nicht?
<h2>Willkommen <?php echo $_SESSION['user_name']; ?> im internen Bereich!</h2>




Post wurde schon 1x editiert, das letzte mal am 28.06.2014 um 09:34 von mjc-jugend
28.06.2014, 07:13 Profil | PM | E-Mail  
splasch
Mitglied
Exzellenter User


Dabei seit: 16.06.2008
Herkunft: Austria
Posts: 2323
      Zitat | Bearbeiten

Zitat:
Ich finde es zu aufwendig, wenn ich immer über die Datenbank neue USER anlegen muss. Gibt es irgendwo eine Datei (Skript) womit man neue USER anlegen kann und am besten dass z.B. auch nur der USER mit Adminrechten das auch machen kann?


Das muss noch Programmiert (geschrieben) werden. Ist ja nicht schwer. Erstell dir eine Datei die genau das macht.

Zitat:
EDIT: wie kann ich diesen Satz so anpassen dass mir da der Name steht, weil so funktioniert das nicht?
<h2>Willkommen <?php echo $_SESSION['user_name']; ?> im internen Bereich!</h2>


Dazu musst du die SQL Abfrage in der Login Datei anpassen und den Namen der Session zuweisen. Wie das geht steht bereits in den vorhergehenden Post drin. Suche nach Level


28.06.2014, 10:50 Profil | PM | E-Mail  
mjc-jugend
Mitglied
Neuling


Dabei seit: 22.06.2014
Herkunft: keine Angabe
Posts: 6
      Zitat | Bearbeiten

Zitat:
Orginal von splasch
Zitat:
Ich finde es zu aufwendig, wenn ich immer über die Datenbank neue USER anlegen muss. Gibt es irgendwo eine Datei (Skript) womit man neue USER anlegen kann und am besten dass z.B. auch nur der USER mit Adminrechten das auch machen kann?


Das muss noch Programmiert (geschrieben) werden. Ist ja nicht schwer. Erstell dir eine Datei die genau das macht.

Das ist ja auch mein Problem, dass ich mich damit nicht auskenne. PHP Dateien so umzuschreiben wie ich sie brauche ist kein Problem.
Deshalb bräuchte ich ein Beispiel, damit ich mir die Funktionsweise wenigstens angucken kann um überhaupt zu verstehen wie es gemacht wird.

Zitat:
Zitat:
EDIT: wie kann ich diesen Satz so anpassen dass mir da der Name steht, weil so funktioniert das nicht?
<h2>Willkommen <?php echo $_SESSION['user_name']; ?> im internen Bereich!</h2>


Dazu musst du die SQL Abfrage in der Login Datei anpassen und den Namen der Session zuweisen. Wie das geht steht bereits in den vorhergehenden Post drin. Suche nach Level


Das hat funktioniert.
Danke!


28.06.2014, 15:49 Profil | PM | E-Mail  
peter88
Mitglied
Anfänger


Dabei seit: 09.01.2012
Herkunft: keine Angabe
Posts: 57
      Zitat | Bearbeiten

 PHP 
1:
2:
Willkommen im internen Bereich!
Sie besitzen den Level 1



diese meldung hätte ich gerne geändert in das bei level1 user da steht und bei level 2 moderator und bei level 3 admin

was muss ich da wo ändern?


hiernochmal die login und intern und config von mir.


wer kann mir helfen?

config:

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
<?php
/*
 *    Autor        : Dennis1993
 *    Copyright    : (c) 2011 by Dennis1993
 */
defined('SECURE') or die('Der direkte Zugriff auf diese Datei ist nicht erlaubt!');


/**
 *    DB-Zugangsdaten
 */
$config['sql_hostname'] = '';    //MySQL-Server
$config['sql_username'] = '';        //Benutzername
$config['sql_password'] = '';            //Kennwort
$config['sql_database'] = '';    //Datenbank


/**
 *    Fehlerbehandlung
 */
error_reporting(E_ALL);
ini_set('display_errors'false);


/**
 *    Verbindungsaufbau
 */
$SQL = new MySQLi($config['sql_hostname'], $config['sql_username'], $config['sql_password'], $config['sql_database']);

if(
mysqli_connect_errno() != || !$SQL->set_charset('utf8'))
{
    die(
'<strong>ERROR:</strong> Es konnte keine Verbindung mit dem Datenbank-Server hergestellt werden!');
}

?>


intern:



 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
<?php
/*
 *    Autor        : Dennis1993
 *    Copyright    : (c) 2011 by Dennis1993
 */
session_start();
if(!isset(
$_SESSION['user_id']))
{
    die(
'Sie sind nicht angemeldet! <a href="login.php">[Login]</a>');
}

if(
$_SESSION['user_level'] != 1)
{
    die(
'Sie brauchen Level 1, um diese Seite sehen zu k&ouml;nnen!');
}
?> 
<!DOCTYPE HTML>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Login</title>
</head>

<body>
<p>Willkommen im internen Bereich!<br />Sie besitzen den <strong>Level <?php echo $_SESSION['user_level']; ?></strong><br /><hr />Sie k&ouml;nnen sich hier wieder abmelden. <a href="login.php?logout">[Abmelden]</a></p>
</body>
</html>



login:

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
<?php
/*
 *    Autor        : Dennis1993
 *    Copyright    : (c) 2011 by Dennis1993
 */
session_start();
define('SECURE'true);
require_once(
'config.php');
//Benutzer zählen
$count $SQL->query('SELECT COUNT(*) FROM `user`');
$count $count->fetch_row();

//Neuesten Benutzer laden
$user $SQL->query('SELECT `user_name` FROM `user` ORDER BY `user_id` DESC LIMIT 1');
$user $user->fetch_row(); 

/**
 *    Abmeldevorgang
 */
if(isset($_GET['logout']))
{
    if(isset(
$_SESSION['user_id']))
    {
        
$_SESSION = array();
        
session_destroy();
    }

    
header('location: login.php');
    exit();
}


/**
 *    Anmeldevorgang
 */
if(isset($_POST['send']))
{
    
$user_name trim(htmlspecialchars($_POST['user_name']));
    
$user_password trim(htmlspecialchars($_POST['user_password']));

    
//Benutzereingaben validieren
if(!empty($user_name) && !empty($user_password))
    {
        
$query $SQL->prepare('SELECT `user_id`, `user_level` FROM `user` WHERE `user_name` = ? AND `user_password` = ?');
        
$query->bind_param('ss'$_POST['user_name'], md5($_POST['user_password']));
        
$query->execute();
        
$query->store_result();
        
$query->bind_result($user_id$user_level);

        
//Sind Benutzerdaten vorhanden und korrekt?
        
if($query->num_rows == 1)
        {
            
$query->fetch();

            
//Benutzerlevel korrekt?
            
if($user_level 0)
            {
                
$_SESSION['user_id'] = $user_id;
                
$_SESSION['user_level'] = $user_level;

                
header('location: intern.php');
                exit();
            }
            else
            {
                
$error 'Ihr Konto wurde noch nicht aktiviert!';
            }
        }
        else
        {
            
$error 'Ihre Anmeldedaten sind nicht korrekt. Bitte wiederholen Sie Ihre Eingabe.';
        }
    }
    else
    {
        
$error 'Bitte f&uuml;llen Sie alle Felder korrekt aus.';
    }
}
else
{
    
$error NULL;
    
$user_name NULL;
}

?>
<!DOCTYPE HTML>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Login</title>
</head>

<body>
<?php echo $error?>
<form action="login.php" method="post">
<table cellpadding="1" cellspacing="4">
    <tr>
        <td><strong>Username:</strong></td>
        <td><input type="text" name="user_name" value="<?php echo $user_name?>" required placeholder="Username" maxlength="255" /></td>
    </tr>
    <tr>
        <td><strong>Passwort:</strong></td>
        <td><input type="password" name="user_password" required placeholder="Passwort" maxlength="50" /></td>
    </tr>
    <tr>
        <td colspan="2"><input type="submit" name="send" value="Login" /></td>
    </tr>
</table>
</form>
<br><br><br>
<b>Statistik:<br>
<strong>Benutzer registriert:</strong> <?php echo $count[0]; ?><br />
<strong>Neuester Benutzer:</strong> <?php echo $user[0]; ?><br /><br /><hr />
</b>
</body>
</html>





Post wurde schon 1x editiert, das letzte mal am 21.10.2014 um 09:18 von peter88
17.10.2014, 15:19 Profil | PM | E-Mail  
DingsDaBums
Mitglied
Exzellenter User


Dabei seit: 12.09.2010
Herkunft: keine Angabe
Posts: 2496
      Zitat | Bearbeiten

@peter88

Du solltest vielleicht die Daten deiner Datenbank (wie z.B. das Passwort) besser aus dem Skript löschen


Schau mal bei meinem Projekt vorbei. Vielleicht ist das ja was für dich MyStartPanel - Deine persönliche Startseite mit deinen Favoriten
Auf der Suche nach einem guten Vokabeltrainer? Vokabeltrainer Cramfire - Schnell und effektiv Vokabeln lernen
20.10.2014, 20:28 Profil | PM | E-Mail  
peter88
Mitglied
Anfänger


Dabei seit: 09.01.2012
Herkunft: keine Angabe
Posts: 57
      Zitat | Bearbeiten

habs rausgenommen zufrieden? ist doch eh nur n bplace testspace.

hast sicher probiert dich mitem passwort hier einzuloggen lach.




hilft mir jetzt aber ned bei meiner frage weiter




Post wurde schon 1x editiert, das letzte mal am 21.10.2014 um 09:20 von peter88
21.10.2014, 09:19 Profil | PM | E-Mail  
DingsDaBums
Mitglied
Exzellenter User


Dabei seit: 12.09.2010
Herkunft: keine Angabe
Posts: 2496
      Zitat | Bearbeiten

Zitat:
Orginal von peter88
habs rausgenommen zufrieden? ist doch eh nur n bplace testspace.

hast sicher probiert dich mitem passwort hier einzuloggen lach.
[...]


Nö, interessiert mich ja auch nicht, wie wichtig diese Daten sind.
Nur werden so Daten selten später dann auf dem eigentlichen "live"-Server geändert und da in Datenbanken meist auch Daten anderer gespeichert werden (wie z.B. deren Passwort), sollte man dementsprechend auch verantwortungsvoll mit solchen Daten umgehen.

Zudem gibt es schon genug SPAM und Viren-Schleudern im Netz, nur weil die Admins eben keine sicheren Passwörter verwenden oder mit diesen so fahrlässig umgehen, wie z.B. in Skripten veröffentlichen...


Und dir würde sicher schneller geholfen werden, wenn dafür einen entsprechenden neuen Thread (mit Verweis auf diesen hier) aufmachen würdest.
Mal abgesehen davon, dass neue Beiträge in diesem Unterforum "Codeschnipsel" auf der Startseite nicht direkt unter "PHP&MySQL" angezeigt werden.



Zu deiner Frage:
 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
<?php
// Ein Array mit den entsprechenden "Übersetzungen" erstellen
// wo der Index gleich dem Level und der Inhalt gleich der "Übersetzung" ist
$levels = array(
   
=> 'User',
   
=> 'Moderator',
   
=> 'Admin'
);

// Und so dann ausgeben 
echo $levels[$_SESSION['user_level']];



Schau mal bei meinem Projekt vorbei. Vielleicht ist das ja was für dich MyStartPanel - Deine persönliche Startseite mit deinen Favoriten
Auf der Suche nach einem guten Vokabeltrainer? Vokabeltrainer Cramfire - Schnell und effektiv Vokabeln lernen

Post wurde schon 1x editiert, das letzte mal am 21.10.2014 um 12:41 von DingsDaBums
21.10.2014, 12:41 Profil | PM | E-Mail  
peter88
Mitglied
Anfänger


Dabei seit: 09.01.2012
Herkunft: keine Angabe
Posts: 57
      Zitat | Bearbeiten

alles klar danke für die hilfe. werd es die tage mal testen.

und danke für die erklärung wegen dem pw usw werd es nimmer machen.

EDIT:

danke es Funktioniert




Post wurde schon 1x editiert, das letzte mal am 22.10.2014 um 12:27 von peter88
21.10.2014, 12:55 Profil | PM | E-Mail  
Karamba
Mitglied
Neuling


Dabei seit: 12.10.2007
Herkunft: keine Angabe
Posts: 4
      Zitat | Bearbeiten

Auch ich habe das Script wie beschrieben eingesetzt. Ich habe das Problem, dass folgender Teil des scripts oben auf meiner Login-Seite steht:
"prepare('SELECT `user_id` FROM `user` WHERE `user` = ? AND `user_pass` = ?'); $query->bind_param('ss', $_POST['user'], md5($_POST['user_pass'])); $query->execute(); $query->store_result(); $query->bind_result($user_id); //Sind Benutzerdaten vorhanden und korrekt? if($query->num_rows == 1) { $query->fetch(); $_SESSION['user_id'] = $user_id; header('location: wellcome.php'); exit(); } else { $error = 'Ihre Anmeldedaten sind nicht korrekt. Bitte wiederholen Sie Ihre Eingabe.'; } } else { $error = 'Bitte füllen Sie alle Felder korrekt aus.'; } } else { $error = NULL; $user = NULL; } ?>
Nachtrag: Es fällt auf, dass die Zeilen oben erscheinen, ohne dass ich den LogIn Button gedrückt habe und ohne vom LogOut-Button zu kommen. Ich vermute, es hängt mit der Filterfunktion zusammen. Da es bei mir nur um Benutzer und Passwort geht, habe ich FILTER_VAR_USER gesetzt, was vermutlich so nicht geht.
Muss ich mysqli erst irgendwo aktivieren? Auch der LogIn nach Eingabe von Benutzername und Passwort zeigt keinerlei Reaktion.
Momentan habe ich die Site lokal laufen. Hat vielleicht jemand eine Idee?
Grüße von der Waterkant.
Karamba




Post wurde schon 1x editiert, das letzte mal am 22.07.2015 um 16:27 von Karamba
22.07.2015, 15:52 Profil | PM | E-Mail  
Seiten (4):  2  3  4 
PHP-Support.de » Programmierung » PHP & MySQL » Codeschnipsel » PHP Login Script mit Prepared-Statements, MySQLi und HTML5   

Neues Thema | Antworten   


Powered by Command Board 1.0 - Beta 2.0 © 2004-08 PHP-Einfach | Impressum | Datenschutz