PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche dringend Hilfe bei Smarty Login System



m4aimer
31.10.2008, 07:24
Bin dabei ne neue Seite zu schreiben nix großes. Habe schonmal eine Seite gehabt die nach diesem Smarty System aufgebaut war da hats auch geklappt. Also da ist am Anfang eine kleine Box in der Mitte wo mein seine Email eingibt und Passwort. Logindaten greifen auf MySQL DB zurück.

Wenn man falsche Login Daten eingibt kommt schon ein Fehler das ist ja gewollt.

Wenn man die richtigen Login Daten eingibt wird man weitergeleitet auf die index2.php auf der noch mit einer IF-Abfrage überprüft wird ob man eingeloggt ist und dann den Inhalt der Seite ausgibt.

Jedoch werde ich bei richtigem Login auf die Seite weitergeleitet und da steht dann kein Inhalt sondern meine Nachricht für "Sie sind nicht eingeloggt"

Denke dass diese $_SESSION["user_eingeloggt"] = 1; Variable nicht richtig übergeben wird. Hier mal der Code zur:

login.php


<?php

// Überprüfung, ob das Formular bereits abgeschickt worden ist
if(isset($_POST['btn_login']))
{
// Aufbauen der Datenbankverbindung
include("../config/connect.php");

// Passwort nach MD5 verschlüsseln
$passwort = md5($_POST['edt_user_passwort']);

// tblUser nach dem Benutzer durchsuchen
$sql = "SELECT ID_User, User_Recht
FROM tblUser
WHERE User_EMail = '".$_POST['edt_user_email']."' AND User_Passwort = '".$passwort."' AND User_Aktiviert = 1";

// Ausführen der SQL-Anweisung und ggf. einloggen des Benutzer
$result = mysql_query($sql) or die(mysql_error());

if(mysql_num_rows($result) == 1)
{
// Registrieren der User ID und des Status eingeloggt in die Session-Variable
$user = mysql_fetch_assoc($result);
$_SESSION['user_id'] = $user['ID_User'];
$_SESSION['user_recht'] = $user['User_Recht'];
$_SESSION["user_eingeloggt"] = 1;
}

else
{
$message = "Sie haben eine falsche E-Mail Adresse oder ein falsches Kennwort eingegeben. Bitte geben Sie
Ihre Daten erneut ein und beachten Sie dabei die Groß-/Kleinschreibung. Falls Sie Ihr
Benutzerkonto erst vor kurzem erstellt haben, kann es sein, das es nocht nicht freigeschaltet
worden ist. Sollten Sie noch kein Benutzerkonto besitzen, können Sie sich unter
<a href = \"./index.php?menu=register\">Registrierung</a> am System registrieren.";
}

// Verbindung trennen
mysql_close();
}

// Darstellen des Anmeldeformulars
if(isset($_SESSION['user_eingeloggt']) != 1)
{
$smarty->display('login.tpl');
if(isset($message))
{
$smarty->assign('message', $message);
$smarty->display('message.tpl');
}
}
else
{
echo "<script type = \"text/javascript\">
window.location.href = \"../index2.php?menu=start&content=start\";
</script>";
}
?>


und hier der code von der index2.php auf die man weitergeleitet wird (bei richtiger eingaben - siehe ende login.php)

index2.php


<?
session_start();

include "config/db.inc.php";

// Smarty einbinden
define('SMARTY_DIR', '/users/******/www/smarty/');
require_once(SMARTY_DIR . 'Smarty.class.php');
$smarty = new Smarty();
?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>


<title>Startseite</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" type="text/css" href="stylesheets/print.css" media="print">
<link rel="stylesheet" type="text/css" href="stylesheets/main.css" media="screen">
<link rel="stylesheet" type="text/css" href="stylesheets/ddlevelsmenu-base.css">
<link rel="stylesheet" type="text/css" href="stylesheets/ddlevelsmenu-topbar.css">
<link rel="stylesheet" type="text/css" href="stylesheets/ddlevelsmenu-sidebar.css">

<script type="text/javascript" src="stylesheets/ddlevelsmenu.js">

<!--
function popup(name,einstellungen)
{
window.open('',name,einstellungen);
}
-->
</script>
</head>

<body scroll="no">


<table cellspacing="5" cellpadding="0" style="width: 100%; border-bottom: #FF0080 solid 7px;">
<tr>

<td style="border-right: #FF0080 solid 1px">
images/logo.gif
</td>

<td>images/header.jpg</td>

</tr>
</table>


<div id="topmenu">
<?php
if(isset($_SESSION['user_eingeloggt']) == 1)
{
include "topmenu.php";
}
?>
</div>

<div id="infofeld">
<?php
if(isset($_SESSION['user_eingeloggt']) == 1)
{
include "infofeld.php";
}
?>
</div>

<div id="content" align="center">
<?php

if(isset($_SESSION['user_eingeloggt']) == 1){
switch($_GET['content'])
{
case "verwaltung":
include "sections/verwaltung/index.php";
break;
case "sonstiges":
include "sections/sonstiges/index.php";
break;
case "kontakt":
include "sections/kontakt/index.php";
break;
case "help": $smarty->display("help.tpl");
break;
case "impressum": $smarty->display("impressum.tpl");
break;
default:
echo "Startseite";
break;
}
}

else{
$smarty->assign('message', $message_eingeloggt);
$smarty->display('message.tpl');
}
?>
</div>

</body>
</html>



Hoffe mir kann jemand helfen. Schonmal Danke im voraus für eure Mühen.

MfG m4aimer

Added after 151 hours 10 minutes:

omg ...

ok ich habs gelöst kann geclosed werden.
hab einfach ein:


session_start();

in der login.php verplant und ewig innerhalb des codes nachm fehler gesucht

[CLOSED]