ERLEDIGT
JA
JA
ANTWORTEN
12
12
ZUGRIFFE
556
556
EMPFEHLEN
-
20.05.05 23:13 #1
- Registriert seit
- Mar 2005
- Beiträge
- 18
Hallo,
ich habe folgendes Problem und weiß nicht mehr weiter...
auf meiner homepage habe ich einige seiten, die nur bestimmten usern zugänglich sein sollen. Hat sich ein user einmal eingeloggt, so kann er während seiner Sitzung sämtliche -- auch geschützte Seiten -- öffnen. Auf jeder Seite habe ich daher in einem iframe ein loginscript:
login.php:
nachdem login wird intern.php aufgerufen:PHP-Code:<?php
// Session starten
session_start ();
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)) {
$GLOBALS['PrevUrl'] = $accesscheck;
session_register('PrevUrl');
}
// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("localhost", "root", "");
if (!mysql_select_db ("LoginSystem", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT ".
"Id, Nachname ".
"FROM ".
"benutzerdaten ".
"WHERE ".
"(Nickname like '".$_REQUEST["name"]."') AND ".
"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
// Benutzerdaten in ein Array auslesen.
$data = mysql_fetch_array ($result);
// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["Id"];
$_SESSION["user_nachname"] = $data["Nachname"];
header ("Location: intern.php");
}
else
{
header ("Location: formular.php?fehler=1");
}
?>
bzw formular.php:PHP-Code:<link rel="stylesheet" type="text/css" media='screen' href="../html/style.css" />
<style type="text/css">
<!--
table
{
font-size:100%;
width:98%;
font-weight: normal;
border-spacing: 0px 0px;
}
img {
border: 0px solid #326B5A;
}
-->
</style>
</head>
<body>
<div id="box_right">
<div id='frame'>
<div align="left">
<form action="../php/login.php" method="post" id="login">
<table border="0" cellpadding="1" cellspacing="0" width="168">
<tbody><tr>
<td bgcolor="#D1EEEA"><img src="../imgs/login.gif" border="0" height="23" width="168"><br>
<table bgcolor="white" border="0" cellpadding="4" cellspacing="0" width="168">
<tbody><tr>
<td colspan="2"><span><font color="#707070">BenutzerId: <?php echo $_SESSION["user_id"]; ?><br>
Nachname: <?php echo $_SESSION["user_nachname"]; ?></font></span></td>
</tr>
</tbody>
</table>
<table bgcolor="white" border="0" cellpadding="3" cellspacing="0" width="168">
<tbody>
<tr>
<td width="60"><br></td>
<td><div align="right"><a href="logout.php"><img src="../imgs/logout_bt.gif" alt="Ausloggen" border="0" height="21" vspace="4" width="67"> </a></div></td>
</tr>
</tbody>
</table>
</table>
</div>
</div>
</div>
</body>
</html>
PHP-Code:<?php session_start (); ?>
<html>
<head>
<title>Login</title>
<link rel="stylesheet" type="text/css" media='screen' href="../html/style.css" />
<style type="text/css">
<!--
table
{
font-size:100%;
width:98%;
font-weight: normal;
border-spacing: 0px 0px;
}
img {
border: 0px solid #326B5A;
}
-->
</style>
</head>
<body <font color="#FF0000"></font>
<div id="error">
<div id='frame'>
<?php
if (isset ($_REQUEST["fehler"]))
{
echo "Die Zugangsdaten waren ungültig.";
}
?>
</div>
</div>
<div id="box_right">
<div id='frame'>
<div align="left">
<form action="../php/login.php" method="post" id="login">
<table border="0" cellpadding="1" cellspacing="0" width="168">
<tbody><tr>
<td bgcolor="#D1EEEA"><img src="../imgs/login.gif" border="0" height="23" width="168"><br>
<table bgcolor="white" border="0" cellpadding="4" cellspacing="0" width="168">
<tbody><tr>
<td colspan="2"><span><font color="#707070">Bitte loggen Sie sich hier mit Ihrem Benutzernamen und Kennwort ein ...</font></span></td>
</tr>
</tbody></table>
<table bgcolor="white" border="0" cellpadding="3" cellspacing="0" width="168">
<tbody><tr>
<td valign="top" width="60"><span> <b>Name</b></span></td>
<td><div align="right"><input class="wst_input" name="name" size="8" type="text"></div></td>
</tr>
<tr>
<td valign="top" width="60"><span> <b>Passwort</b></span></td>
<td><div align="right"><input class="wst_input" name="pwd" size="8" type="password"></div></td>
</tr>
<tr>
<td width="60"><br></td>
<td><div align="right"><input src="../imgs/login_bt.gif" alt="Einloggen" title="Einloggen" border="0" height="21" type="image" vspace="4" width="67"></div></td>
</tr>
</tbody></table>
<img src="../imgs/trenner.gif" border="0" height="9" width="165"><br>
<table bgcolor="white" border="0" cellpadding="4" cellspacing="0" width="168">
<tbody><tr>
<td colspan="2"><span>Haben Sie noch keinen Benutzernamen?
Dann können Sie <b><a target="_top" href="./getpass.php">hier </a></b> ihr Passwort anfordern.</span></td>
</tr>
</tbody></table></td>
</tr>
</tbody></table>
</form>
</div>
</div>
</div>
</body>
</html>
Der Vollständigkeit halber hier die Datei checkuser.php:
Da auf jeder Seite die Datei login.php vorkommt (damit man sich auf jeder Seite einloggen kann) möchte ich nun eine Abfrage realisieren, mit der entschiednen wird ob die login.php im iFrame verwendet wird, also der user noch nicht eingeloggt ist, oder ob formular.php verwendet wird falls der user bereits eingeloggt ist.PHP-Code:<?php
session_start ();
if (!isset ($_SESSION["user_id"]))
{
header ("Location: formular.php");
}
?>
Leider habe ich keine Ahnung wie ich das umsetzen soll. Bitte helft mir, ich verzweifle langsam. Ist denn meine Idee eigentlich umständlich, und falls ja, geht das ncoh simpler?
Vielen Dank schon mal im Voraus,
AndreasGeändert von andrassberlin (20.05.05 um 23:18 Uhr)
-
An der Stelle wo Du das iFrame definierst musst Du Ueberpruefen ob die UserID in der Session steht und kannst anhand dessen entscheiden was dargestellt werden soll.
PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
21.05.05 10:44 #3
- Registriert seit
- Mar 2005
- Beiträge
- 18
Guten morgen...
wie sieht die denn aus, bin nicht der Experte in php. Anscheinend habe ich mich da auch etwas übernommen mit. Also ich stelle mir das so vor:
aber das dunktioniert nicht. Anscheinend habe ich einige Syntaxfehler gemacht. Kann mir bitte noch jemand helfen? Danke schonmal...PHP-Code:<?php
if($_SESSION['user_id']) {
header ('Location: ./home/php/intern.php');
} else {
header ('Location: ./home/php/formular.php');
}
?>
AndreasGeändert von andrassberlin (22.05.05 um 02:08 Uhr)
-
21.05.05 18:10 #4
- Registriert seit
- Mar 2005
- Beiträge
- 18
noch jemand da, der etwas Musse hat mit zu helfen...
Andreas
-
Hallo.
Hast du auf dieser Seite session_start() stehen, auf der du die Abfrage machst?Gruß fanste
Benutze bitte immer die passende Highlight-Tags.(z.B: für PHP [php] [/php] Allgemein: [highlight=SCRIPTSPRACHE]Code[/highlight] )
Problem gelöst? Dann markiere das Thema bitte als erledigt!
Beachte bitte die Netiquette. Insbesondere Punkt 15.
-
21.05.05 18:15 #6
- Registriert seit
- Jan 2004
- Ort
- Paderborn
- Beiträge
- 1.210
Wenn ich das richtig verstehe, willst du das Login Formular einblenden wenn der User nicht eingelogged ist und ausblenden, wenn er eingelogged ist.
PHP-Code:if(isset($_SESSION['user_id'])) {
// Formular anzeigen
} else {
echo "Sie sind eingelogged!";
}
-
22.05.05 02:18 #7
- Registriert seit
- Mar 2005
- Beiträge
- 18
Also wenn ich den php-code:
einbinde, bekomme ich diese Fehlermeldung:PHP-Code:<?php
if($_SESSION['user_id']) {
header ('Location: ./home/php/intern.php');
} else {
header ('Location: ./home/php/formular.php');
}
?>
Warning: Cannot modify header information - headers already sent by (output started at C:\apache\xampp\htdocs\AKTUELL\header.php:9) in C:\apache\xampp\htdocs\AKTUELL\home\index.html on line 20
In Zeile 20(index.html) steht:Wenn ich diesen Code einbinde:PHP-Code:header ('Location: formular.php');
dann erhalte ich auch wenn ich nicht eingeloggt bin: Sie sind eingelogged!PHP-Code:if(isset($_SESSION['user_id'])) {
// Formular anzeigen
} else {
echo "Sie sind eingelogged!";
}
Und ja, auf der Seite habe ichstehen. Wo liegt der Fehler?PHP-Code:session_start();
Andreas
-
du darfst vor header keine Ausgabe machen. Probiers mal so:
dann müsste es eigentlich gehen.PHP-Code:<?php
ob_start();
if($_SESSION['user_id']) {
header ('Location: ./home/php/intern.php');
} else {
header ('Location: ./home/php/formular.php');
}
flush();
?>Gruß fanste
Benutze bitte immer die passende Highlight-Tags.(z.B: für PHP [php] [/php] Allgemein: [highlight=SCRIPTSPRACHE]Code[/highlight] )
Problem gelöst? Dann markiere das Thema bitte als erledigt!
Beachte bitte die Netiquette. Insbesondere Punkt 15.
-
22.05.05 11:47 #9
- Registriert seit
- Mar 2005
- Beiträge
- 18
Hi fanste,
hab Deinen Post jetzt mal umgesetzt, jedoch ohne Erfolg.
Code :1
[b]Warning[/b]: Cannot modify header information - headers already sent by (output started at C:\apache\xampp\htdocs\AKTUELL\header.php:9) in [b]C:\apache\xampp\htdocs\AKTUELL\home\index.html[/b] on line [b]21[/b]
Mein seite setzt sich so zusammen:
index.php (wird als erstes aufgerufen)
in header.php wird lediglich das menu und ein counter dargestellt.PHP-Code:<?
if(ereg("http",$site)) { die("Keine externen Seiten erlaubt"); }
if(ereg("www",$site)) { die("Keine externen Seiten erlaubt"); }
if(ereg("://",$site)) { die("Keine externen Seiten erlaubt"); }
if(ereg("uname",$site)) { die("Keine externen Seiten erlaubt"); }
include("header.php");
if(!$site) { $site = "home/index.html"; }
include("$site");
include("footer.php");
?>
index.html:
sieht so aus.PHP-Code:<!-- CONTENT -->
<div id='content'>
<h2> Willkommen auf B.A.H. - online!</h2>
<div class="welcome">
<p> Die 1987 gegründete B.A.H. ist ein Zusammenschluss selbstständiger Landesverbände. Eigenständige und starke Landesverbände können die Interessen der Mitglieder vor Ort am besten vertreten.</p>
<p>Die B.A.H. organisiert den Informationsaustausch zwischen den Landesverbänden und vertritt die gemeinsam abgestimmten Ziele auf Bundesebene gegenüber Kranken- und Pflegekassen, Politik und Behörden. </p>
<p><img border="1" bordercolor="#326B5A" src="./home/imgs/Haende.jpg" align="right"></p>
</div>
</div> <!-- end content -->
<div id='box_right'>
<!-- LOG IN -->
<?php
ob_start();
if($_SESSION['user_id']) {
header ('Location: ./home/php/intern.php');
} else {
header ('Location: ./home/php/formular.php');
}
flush();
?>
<iframe scrolling="no" align="left" frameborder="0" width="180" height="250" src="./home/php/login.php"></iframe>
<!-- end LOGIN -->
</div>
und zu guter letzt wird die footer.php einbezogen:
Die index.html wird über das menue mit anderen html-seiten ausgetauscht. und jedesmal soll entschieden werden, ob der user bereits angemeldet ist oder nicht.PHP-Code:<!-- FOOTER -->
<div id='footer'>© Copyright 2005, <a href="mailto:andreasworch@web.de">Andreas Worch</a> All rights reserved.
</div> <!-- end FOOTER -->
</div> <!--end CONTAINER -->
</div>
Was muss ich ändern?
Kann ich hier im Forum zum besseren Verständnis eigentlich Verzeichnisse hochladen?
AndreasGeändert von andrassberlin (22.05.05 um 12:12 Uhr)
-
schreib die index.htm mal um. du machst da ja trotzdem schon eine ausgabe. in HTML. schreib mal am Anfang der seite
wenn das auch nicht klappt schreib den HTML Code mal als echo in der code. alsoPHP-Code:<?
ob_start();
?>
//HTML CODE
<?php
if($_SESSION['user_id']) {
header ('Location: ./home/php/intern.php');
} else {
header ('Location: ./home/php/formular.php');
}
?>
//HTML CODE
<?
flush();
?>
vll klappts so! Wenn auch dass nicht klappt, kannst du immernoch das header durch einen meta refresh ersetzen.PHP-Code:<?
ob_start();
echo "HTML CODE";
usw...
if($_SESSION['user_id']) {
header ('Location: ./home/php/intern.php');
} else {
header ('Location: ./home/php/formular.php');
}
echo "HTML CODE";
flush();
?>
Wobei ich gerade sehe, dass du die Seite includest. Allerdings schon vor der index.htm.
Dadurch wird auch wieder eine Ausgabe gemacht, z.b. durch das menü. Ich glaube, in dem Fall ist der meta refresh die bessere Lösung.Geändert von fanste (22.05.05 um 12:43 Uhr)
Gruß fanste
Benutze bitte immer die passende Highlight-Tags.(z.B: für PHP [php] [/php] Allgemein: [highlight=SCRIPTSPRACHE]Code[/highlight] )
Problem gelöst? Dann markiere das Thema bitte als erledigt!
Beachte bitte die Netiquette. Insbesondere Punkt 15.
-
22.05.05 12:58 #11
- Registriert seit
- Mar 2005
- Beiträge
- 18
hey, vielen Dank für die Antwort, habs gerade ausprobiert, allerdings wieder ohne Erfolg. Wie geht das mit dem Metarefresh? Hab ich bisher noch nicht genutzt.
Danke Dir schon mal,
Andreas
-
Das ist der meta refresh Tag.
<meta http-equiv="refresh" content="0;URL=<? echo $site; ?>">
statt $site musst du dann halt die Variable reinschreiben, in der der Pfad zur Seite steht, oder Seite direct hinters = schreiben. bei content gibst du die wartezeit in sec an, du weiterleitest.Gruß fanste
Benutze bitte immer die passende Highlight-Tags.(z.B: für PHP [php] [/php] Allgemein: [highlight=SCRIPTSPRACHE]Code[/highlight] )
Problem gelöst? Dann markiere das Thema bitte als erledigt!
Beachte bitte die Netiquette. Insbesondere Punkt 15.
-
22.05.05 14:40 #13
- Registriert seit
- Mar 2005
- Beiträge
- 18
danke, werd ich gleich mal ausprobieren.
Andreas
Ähnliche Themen
-
Problem mit Login
Von proloser im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 18.07.09, 18:23 -
Login-Problem
Von hueggy im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 26.11.07, 19:10 -
Problem bei Eigenem Login Bereich zu Typo3 Login bereich
Von Gunah im Forum PHPAntworten: 2Letzter Beitrag: 08.10.07, 11:38 -
Problem mit Login
Von server im Forum PHPAntworten: 4Letzter Beitrag: 05.02.05, 21:03 -
Problem mit Login
Von ulf123 im Forum PHPAntworten: 4Letzter Beitrag: 29.10.04, 01:05





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren