Guten Morgen!
Für eine Website habe ich einen internen Loginbereich mit PHP und SQL-Anbindung geschaffen. Momentan bereitet mir die Ausgabe des HTML Gerüsts und die Ausgabe der Variablen Kopfzerbrechen. Bekomme es einfach nicht zum Laufen und bin am Verzweifeln, da ich nicht weiß, woran es liegt... Hier der Code der 'internen' Seite:
Datei: intern.php
Zur Erklärung: Als erstes wird der Login-Status abgefragt (das klappt soweit auch). Wenn positiv, dann wird zur SQL DB connected (die Verbindung passt, hier kann auch nicht der Fehler liegen). Anschließend werden die abgefragten Werte in einem Array gespeichert, die einzelnen Array-Teile wollte ich in Variablen packen, die ich dann im folgenden HTML-Code ausgeben möchte - macht das von der Logik Sinn?
Probleme:
- Die Variablen, die ich oben definiert und im <body> eingesetzt habe, werden nicht ausgegeben
- Entferne ich "echo "{$user['id']}";" erfolgt als Ausgabe eine leere Seite
- Lasse ich "echo "{$user['id']}";" drin, wird es natürlich vor der HTML-Seite ausgegeben, aber die Seite wird immerhin ausgegeben
Ich habe auch schon probiert, das komplette HTML-Gerüst an gleicher Stelle wie "echo "{$user['id']}";" mit einem echo ausgeben zu lassen -> leere Seite.
Bin mit meinem Latein am Ende... kann mir jemand helfen?
Viele Grüße
Für eine Website habe ich einen internen Loginbereich mit PHP und SQL-Anbindung geschaffen. Momentan bereitet mir die Ausgabe des HTML Gerüsts und die Ausgabe der Variablen Kopfzerbrechen. Bekomme es einfach nicht zum Laufen und bin am Verzweifeln, da ich nicht weiß, woran es liegt... Hier der Code der 'internen' Seite:
Datei: intern.php
PHP-Code:
<?php
require_once("functions.php");
require_once("db_config.php");
session_start();
if (logged_in() == true) {
$logout = '<a href="logout.php" title="Logout"><div id="login-button"><img src="img/icon-login.png" alt="Logout"><h2>Logout</h2></div></a>';
} else {
$logout = '';
}
if (logged_in() == false) {
redirect_to("index.php?login=false");
} else {
if (isset($_GET['id']) && $_GET['id'] != "") {
$id = $_GET['id'];
} else {
$id = $_SESSION['user_id'];
}
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if ($mysqli->connect_errno) {
echo "<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>";
exit();
}
$sql = "SELECT * FROM users WHERE id = {$id} LIMIT 1";
if ($result = $mysqli->query($sql)) {
$user = $result->fetch_array();
} else {
echo "<p>MySQL error no {$mysqli->errno} : {$mysqli->error}</p>";
exit();
}
if ($result->num_rows == 1) {
echo "{$user['id']}";
$username = "{$user['username']}";
$first_name = "{$user['first_name']}";
$last_name = "{$user['last_name']}";
$video = "{$user['video']}";
$text = "{$user['text']}";
} else {
$error = 'Error';
}
}
?>
<html lang="de">
<head>
...
</head>
<body>
<? $first_name ?><? $last_name ?><? $video ?><? $text ?>
</body>
</html>
Probleme:
- Die Variablen, die ich oben definiert und im <body> eingesetzt habe, werden nicht ausgegeben
- Entferne ich "echo "{$user['id']}";" erfolgt als Ausgabe eine leere Seite
- Lasse ich "echo "{$user['id']}";" drin, wird es natürlich vor der HTML-Seite ausgegeben, aber die Seite wird immerhin ausgegeben
Ich habe auch schon probiert, das komplette HTML-Gerüst an gleicher Stelle wie "echo "{$user['id']}";" mit einem echo ausgeben zu lassen -> leere Seite.
Bin mit meinem Latein am Ende... kann mir jemand helfen?
Viele Grüße
Kommentar