W
wetge
Guest
Hallo,
Ich habe das sessionbasierte login tutorial dieser Seite an mein Projekt angepasst.
Bekomme es jedoch einfach nicht hin!!
Und nun bekomme ich nach einigen kleinen Veränderungen nicht einmal mehr meine Seite angezeigt, was ja bedeutet, dass es irgendwo einen Programmierfehler gibt.
Welchen ich leider nicht finde!
hier mal die relevanten Codes:
ShowLogin.php
CODE
<?php
session_start();
require_once ('licence/Database2.php');
require_once ('licence/Kunde.php');
require_once ('licence/Bestellung.php');
require_once ('licence/Lizenz.php');
require_once ('licence/Aktivierung.php');
require_once ('licence/Produkt.php');
include_once ('licence/sessionhelpers.inc.php');
function ShowLogin ($lang, $pageId, $IDRechnNr, $password)
{
// schaue, ob IDKunde und password gegeben sind und lösche Leerzeichen vor bzw. nach dem string
if (isset ( $_POST["login"] ) {
// Variablen umbennenen
$password = $_POST["password"];
// IDKunde aus Bestellung holen
$IDKunde = bGetIDKunde($_POST["IDRechnNr"]);
$userid = check_user( $IDKunde, $password );
if ( $userid ) {
login($userid);
}
else {
echo '<p>Ihr Passwort ist nicht korrekt!</p>';
}
}
if ( !loggend_in() ) {
include ("licence/login.inc");
}
else { // Passwort korrekt
// IDKunde aus Bestellung holen
$IDKunde = bGetIDKunde($_POST["IDRechnNr"]);
include ("licence/activation.inc");
}
}
?>
sessionhelpers.inc.php
ist eigentlich identisch, mit dem Unterschied, dass ich die Felder mit den Namen aus meiner db angepasst habe und die db über db2Open() am Anfang öffne.
CODE
<?php
/**
* @param string $name
* @param string $pass
* @return boolean
*/
$link = db2Open();
function check_user ( $name, $pass ) {
// magic quotes anpassen
if ( get_magic_quotes_gpc() ) {
$name = stripslashes($name);
$pass = stripslashes($pass);
}
// escapen von \x00, \n, \r, \, ', " und \x1a
$name = mysql_real_escape_string($name);
// escapen von % und _
$name = str_replace('%', '\%', $name);
$name = str_replace('_', '\_', $name);
$sql = 'SELECT ID FROM Kunde WHERE IDKunde = \'' . $name . '\' AND password = \'' . $pass . '\'';
if ( !$result = mysql_query($sql) ) {
exit(mysql_error());
}
if ( mysql_num_rows($result) == 1 ) {
$user = mysql_fetch_assoc($result);
return ( $user['ID'] );
} else {
return ( false );
}
}
/**
* @param int $userid
* @return void
*/
function login ( $userid ) {
$sql = 'UPDATE Kunde SET UserSession = \'' . session_id() . '\' WHERE ID = ' . ((int)$userid);
if ( !mysql_query($sql) ) {
exit(mysql_error());
}
}
/**
* @return boolean
*/
function logged_in () {
$sql = 'SELECT ID FROM Kunde WHERE UserSession = \'' . session_id() . '\'';
if ( !$result = mysql_query($sql) ) {
exit(mysql_error());
}
return (mysql_num_rows($result) == 1);
}
/**
* @return void
*/
function logout () {
$sql = 'UPDATE Kunde SET UserSession = NULL WHERE UserSession = \'' . session_id() . '\'';
if ( mysql_query($sql) ) {
exit(mysql_error());
}
}
db2Close();
?>
activation.inc
CODE
<?php
include_once('sessionhelpers.inc.php');
echo 'Sie sind ';
if ( !logged_in() ) {
echo 'nicht ';
}
echo 'eingeloggt.<p />';
if ( !logged_in() )
echo '<p><a href="login.php">Anmelden</a></p>';
}
else { ?>
<div align="left">
<h2>Sie haben sich erfolgreich angemeldet!</h2><br />
<b>Geben Sie bitte nun Ihren Aktivierungscode ein</b><br /><br />
<form method="post" action="licence/licencegen.php">
<input type="text" name="actkey" size="50" >
<br /><br />
<input type="submit" name="gen" value="Code generieren">
</form>
<a href="licence/logout.php">Logout</a>
</div>
<?php
}
?>
Wäre wirklich seeeeeeeeeeehr nett, wenn mir da jmd weiterhelfen könnte!
Ich habe das sessionbasierte login tutorial dieser Seite an mein Projekt angepasst.
Bekomme es jedoch einfach nicht hin!!
Und nun bekomme ich nach einigen kleinen Veränderungen nicht einmal mehr meine Seite angezeigt, was ja bedeutet, dass es irgendwo einen Programmierfehler gibt.
Welchen ich leider nicht finde!
hier mal die relevanten Codes:
ShowLogin.php
CODE
<?php
session_start();
require_once ('licence/Database2.php');
require_once ('licence/Kunde.php');
require_once ('licence/Bestellung.php');
require_once ('licence/Lizenz.php');
require_once ('licence/Aktivierung.php');
require_once ('licence/Produkt.php');
include_once ('licence/sessionhelpers.inc.php');
function ShowLogin ($lang, $pageId, $IDRechnNr, $password)
{
// schaue, ob IDKunde und password gegeben sind und lösche Leerzeichen vor bzw. nach dem string
if (isset ( $_POST["login"] ) {
// Variablen umbennenen
$password = $_POST["password"];
// IDKunde aus Bestellung holen
$IDKunde = bGetIDKunde($_POST["IDRechnNr"]);
$userid = check_user( $IDKunde, $password );
if ( $userid ) {
login($userid);
}
else {
echo '<p>Ihr Passwort ist nicht korrekt!</p>';
}
}
if ( !loggend_in() ) {
include ("licence/login.inc");
}
else { // Passwort korrekt
// IDKunde aus Bestellung holen
$IDKunde = bGetIDKunde($_POST["IDRechnNr"]);
include ("licence/activation.inc");
}
}
?>
sessionhelpers.inc.php
ist eigentlich identisch, mit dem Unterschied, dass ich die Felder mit den Namen aus meiner db angepasst habe und die db über db2Open() am Anfang öffne.
CODE
<?php
/**
* @param string $name
* @param string $pass
* @return boolean
*/
$link = db2Open();
function check_user ( $name, $pass ) {
// magic quotes anpassen
if ( get_magic_quotes_gpc() ) {
$name = stripslashes($name);
$pass = stripslashes($pass);
}
// escapen von \x00, \n, \r, \, ', " und \x1a
$name = mysql_real_escape_string($name);
// escapen von % und _
$name = str_replace('%', '\%', $name);
$name = str_replace('_', '\_', $name);
$sql = 'SELECT ID FROM Kunde WHERE IDKunde = \'' . $name . '\' AND password = \'' . $pass . '\'';
if ( !$result = mysql_query($sql) ) {
exit(mysql_error());
}
if ( mysql_num_rows($result) == 1 ) {
$user = mysql_fetch_assoc($result);
return ( $user['ID'] );
} else {
return ( false );
}
}
/**
* @param int $userid
* @return void
*/
function login ( $userid ) {
$sql = 'UPDATE Kunde SET UserSession = \'' . session_id() . '\' WHERE ID = ' . ((int)$userid);
if ( !mysql_query($sql) ) {
exit(mysql_error());
}
}
/**
* @return boolean
*/
function logged_in () {
$sql = 'SELECT ID FROM Kunde WHERE UserSession = \'' . session_id() . '\'';
if ( !$result = mysql_query($sql) ) {
exit(mysql_error());
}
return (mysql_num_rows($result) == 1);
}
/**
* @return void
*/
function logout () {
$sql = 'UPDATE Kunde SET UserSession = NULL WHERE UserSession = \'' . session_id() . '\'';
if ( mysql_query($sql) ) {
exit(mysql_error());
}
}
db2Close();
?>
activation.inc
CODE
<?php
include_once('sessionhelpers.inc.php');
echo 'Sie sind ';
if ( !logged_in() ) {
echo 'nicht ';
}
echo 'eingeloggt.<p />';
if ( !logged_in() )
echo '<p><a href="login.php">Anmelden</a></p>';
}
else { ?>
<div align="left">
<h2>Sie haben sich erfolgreich angemeldet!</h2><br />
<b>Geben Sie bitte nun Ihren Aktivierungscode ein</b><br /><br />
<form method="post" action="licence/licencegen.php">
<input type="text" name="actkey" size="50" >
<br /><br />
<input type="submit" name="gen" value="Code generieren">
</form>
<a href="licence/logout.php">Logout</a>
</div>
<?php
}
?>
Wäre wirklich seeeeeeeeeeehr nett, wenn mir da jmd weiterhelfen könnte!