Hallo Leute,
ich habe mich jetzt mal ein wenig mit PHP beschäftigt(HTML Grundlagen sind mir bekannt) und habe versucht
die Elemente eines auf PHP-Basierenden Login-System in eine in HTML geschriebene Website zu integrieren.
Ansehen könnt ihr euch das ganze hier:
Auf der Login-Seite hat das auch geklappt, das einloggen funktioniert(wenn auch am Anfang in der ersten Form immernoch was angezeigt wird was eigentlich nicht so sein soll.).
Allerdings klappt es nicht, das ich auf der zweiten Seite abfrage ob der User eingeloggt ist, denn nur dann soll er den Text sehen können.
Einen Rohbau nur in PHP, ohne Design, habe ich und dieser tut was er soll, wie gesagt die Integration des ganzen in HTML bereitet mir Probleme.
Login Form(Rohbau) sieht so aus:
<?php
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(filter_var($user_email, FILTER_VALIDATE_EMAIL) && !empty($user_password))
{
$query = $SQL->prepare('SELECT `user_id` FROM `user` WHERE `user_email` = ? AND `user_password` = ?');
$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: examples.html');
exit();
}
else
{
$error = 'Deine Anmeldedaten sind nicht korrekt. Bitte überpüfe deine Angaben!';
}
}
else
{
$error = 'Bitte alle Felder korrekt ausfüllen.';
}
}
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; ?>
<p align="center"><h1>Willkommen beim VPlan 1.0!</h1> <h2>Bitte logge dich ein!</h2></p>
<form action="login.php" method="post">
<table cellpadding="1" cellspacing="4">
<tr>
<td><strong>E-Mail-Adresse:</strong></td>
<td><input type="email" name="user_email" value="<?php echo $user_email; ?>" required="required" placeholder="E-Mail-Adresse" 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>
Alles anzeigen
Eingebaut in HTML habe ich das ganze so:
<!DOCTYPE HTML>
<html>
<head>
<title>VPlan 1.0</title>
<meta name="description" content="website description" />
<meta name="keywords" content="website keywords, website keywords" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="style/style.css" title="style" />
</head>
<body>
<div id="main">
<div id="header">
<div id="logo">
<div id="logo_text">
<!-- class="logo_colour", allows you to change the colour of the text -->
<h1><a href="index.html">VPlan<span class="logo_colour"> 1.0</span></a></h1>
<h2>Platzhalter für Beschreibungstext.</h2>
</div>
</div>
<div id="menubar">
<ul id="menu">
<!-- put class="selected" in the li tag for the selected page - to highlight which page you're on -->
<li class="selected"><a href="index.html">Login</a></li>
<li><a href="examples.html">Plan</a></li> <!-- Examples.html -->
</ul>
</div>
</div>
<div id="site_content">
<div class="sidebar">
<!-- Sidebar -->
</div>
<div id="content">
<!-- insert the page content here -->
<h1>Wilkommen beim VPlan!</h1>
<p>Design Template von <a href="http://www.html5webtemplates.co.uk">HTML5Webtemplates</a>.</p>
<br>
<?php echo $error; ?>
<form action="login.php" method="post">
<table cellpadding="1" cellspacing="4">
<tr>
<td><strong>E-Mail-Adresse:</strong></td>
<td><input type="email" name="user_email" value="<?php echo $user_email; ?>" required="required" placeholder="E-Mail-Adresse" 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>
<br>
</div>
</div>
<div id="footer">
Copyright © VPlan 1.0 | <a href="http://www.html5webtemplates.co.uk">Free CSS Templates</a>
</div>
</div>
</body>
</html>
Alles anzeigen
Um abzufragen ob ein User eingeloggt ist, verwende ich diese Abfrage:
<?php
session_start();
if(!isset($_SESSION['user_id']))
{
die('Du bist nicht angemeldet! Bitte Logge dich ein um diese Seite anzusehen! <a href="index.html">[Login]</a>');
}
?>
Wie kriege ich es nun hin, das die Seite den darunter stehenden Text in der HTML-Version nicht anzeigt? Weil ganz egal ob man eingeloggt ist oder nicht, der HTML Text der unter dieser Anfrage steht wird nicht angezeigt.
Hoffe das ist jetzt nicht zu durcheinander geschrieben, bei Verständnisfragen einfach hier drunter schreiben, gebe dann Erklärung und wäre über jede Hilfe dankbar!
LG
DasBrot