ich habe zu meinem Problem schon gegooglt und leider nichts gefunden. Entweder scheine nur ich dieses Problem zu haben oder ich bin die einzige, die sich daran stört.
Die ersten PHP-Dateien, die ich erstellt hatte, waren vom Aufbau her wie folgt gegliedert:
-SESSION Start
- PHP-Code (keine Ausgabe von Inhalt per Echo, sondern Speichern in Variablen)
- HTML-Head
- HTML-Body mit html-Code und der Ausgaben der Variablen aus dem PHP-Script
Also, nach dem schönen EVA-Prinzip.
Dabei ist mir aufgefallen, dass bei manchen PHP-Dateien (vorwiegend bei denen, die Daten aus Formularen verarbeitet haben) der in der CSS-Datei eingestellte Abstand zwischen dem Bildschirmrand und dem Inhalt der Seite größer war, als bei den anderen.
Sehr deutlich wurde es jetzt, nachdem ich das PHP-Script des Login (vorher willkommen.php) in die gleiche Datei geschoben habe, wie das Login Formular.
Beim aufrufen der Seite beträgt der Abstand zwischen Bildschirmrand und Inhalt, wie in der css eingestellt 10px. Nachdem das Formular versendet ist und damit das PHP-Script durchlaufen wird (Login ist jedes Mal erfolgreich, als kein Fehler), verändert sich der Abstand und ist plötzlich (geschätzt) 50px breit.
Wie geht das denn?
Kann und darf PHP das Design aus der CSS Datei beeinflussen? Oder habe ich einen Fehler im Script, der mit einem error_reporting nicht angezeigt wird? Hier mal das Script:
- Code: Select all
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>LogIn</title>
<meta name="author" content="Regina Jost">
<meta name="copyright" content="Regina Jost">
<meta name="description" content="Durmstrang - Deine Harry-Potter-Fanseite! Werde Schüler am Institut für Zauberei, sammle Hauspunkte, löse Rätsel und bestehe das ein oder andere Abenteuer.">
<meta name="keywords" content="Harry, Potter, Durmstrang, Zauberschule, Zauberer, Hexe, Viktor, Krum, Igor, Karkaroff, Quidditch, Zauberstab, Gregorowitsch, Schiff">
<meta name="page-topic" content="Spiel">
<meta name="page-type" content="Private Homepage ">
<meta name="audience" content="Kinder, Jugendliche, Fans, Schüler, Studenten">
<meta name="robots" content="index, follow">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" type="text/css" href="../style.css">
</head>
<body>
<div id="Navigation">
<?php
include("../menu.php");
?>
</div>
<div id="Info">
<?php
include("../infobox.php");
?>
</div>
<div id="Inhalt" align="center">
<h1>LogIn</h1>
<img src="trittein.gif" alt="">
<p>Wenn Du bereits Schüler im Institut für Zauberei bist, kannst Du Dich hier mit Deinem Nickname und Passwort
einloggen.</p>
<br>
<?php
error_reporting(E_ALL);
if (isset($_GET["logout"]) AND !empty($_GET["logout"]))
{
$status = 'Auf Wiedersehen. <img src="wiedersehen.gif" alt=""> Bis zum nächsten Mal.';
}
else
{
$status = "";
}
if(empty($_POST["gesendet"]))
{
$output ="";
}
else
{
if(empty($_POST["passwort"]))
{
$error = "Du hast vergessen Dein Passwort anzugeben.";
}
else if(empty($_POST["benutzername"]))
{
$error = "Du hast vergessen Deinen Benutzernamen einzugeben.";
}
else
{
include("../connect.php");
if(!$verbindung OR !mysql_select_db("homepage"))
{
$error = "Deine Anmeldung ist leider fehlgeschlagen. Sollte die Anmeldung nochmals fehlschlagen sende
mir bitte eine E-Mail:
<br>
<br><b><a href=\"mailto:mail@potionmaster.de\">mail@potionmaster.de</a></b>";
}
else
{
$abfrage = "SELECT profil.datum, profil.galleonen, profil.punkte, rustleoaks.benutzername, rustleoaks.passwort, rustleoaks.login1, abenteuer.hinweis FROM profil JOIN rustleoaks
ON profil.benutzername='" . mysql_real_escape_string($_POST["benutzername"]) . "' AND rustleoaks.benutzername='" . mysql_real_escape_string($_POST["benutzername"]) . "'
JOIN abenteuer ON rustleoaks.benutzername='" . mysql_real_escape_string($_POST["benutzername"]) . "' AND abenteuer.benutzername='" . mysql_real_escape_string($_POST["benutzername"]) . "'";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
$kontostand=$row->galleonen;
$punktestand=$row->punkte;
$_SESSION["hinweis"]=$row->hinweis;
$datum = date("Y-m-d");
$passwort = md5($_POST["passwort"]);
if(!$_POST["benutzername"] AND !$passwort)
{
$error = 'Tut mir leid,<br>
aber <a href="anmeldung.php">Der magische Spiegel</a> hat Dich noch keinem Haus zugeteilt.';
}
else
{
if($row->passwort != $passwort)
{
$error = "Dein Benutzername und/oder Dein Passwort ist falsch.";
}
else
{
$_SESSION["username"] = $_POST["benutzername"];
if($row->login1==0)
{
$galleonen1=20;
}
else
{
$galleonen1=0;
}
if($row->datum < $datum)
{
$galleonen2=1;
$punkteneu=3;
$output = "Hallo <b>".htmlspecialchars($_SESSION['username'])."</b>, schön das Du da bist!
<br>Du erhältst 1 Galleone und 3 Punkte.";
}
else
{
$galleonen2=0;
$punkteneu=0;
$output = "Hallo <b>".htmlspecialchars($_SESSION['username'])."</b>, schön das Du da bist!";
}
$ergebnis=$galleonen1+$galleonen2;
$galleonen=$kontostand+$ergebnis;
$punkte=$punktestand+$punkteneu;
$tstamp = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
$datum = date("Y-m-d", $tstamp);
$aendern = "UPDATE profil Set galleonen='" . mysql_real_escape_string($galleonen) . "', datum='" . mysql_real_escape_string($datum) . "',
punkte='" . mysql_real_escape_string($punkte) . "' WHERE benutzername='" . mysql_real_escape_string($_SESSION["username"]) . "'";
$update = mysql_query($aendern);
$aendern = "UPDATE rustleoaks Set login1=1, online=1 WHERE benutzername='" . mysql_real_escape_string($_SESSION["username"]) . "'";
$update = mysql_query($aendern);
mysql_close ($verbindung);
// schließen der noch offenen else Befehle
}
}
}
}
}
?>
<?php
if (!empty($error))
{
echo '<div class="error"><p>'.$error.'</p></div>';
}
else
{
echo $output;
echo $status;
}
?>
<form action="login.php" method="post">
<table border="0" cellspacing="0" cellpadding="2" style="border: 3px double #101010; background-color: #666666;">
<tr>
<td>Benutzername:</td>
<td><input type="text" name="benutzername" size="24" maxlength="50"></td>
</tr>
<tr>
<td>Passwort:</td>
<td><input type="password" name="passwort" size="24" maxlength="50"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="gesendet" value="Absenden"></td>
</tr>
</table>
</form>
<br>
<p>Falls nicht, musst Du zuerst zur Anmeldung,<br>damit der <a href="anmeldung.php">Der magische Spiegel</a> Dich
Deinem Haus zuteilen kann.<br>
<br>
Du hast Dein Passwort vergessen? <a href="vergessen.php">Hier</a> findest Du Hilfe!</p>
</div>
</body>
</html>
Bitte nicht wundern, dass PHP jetzt in den HTML-Code eingebettet ist. Der Fehler, falls es einer ist, tritt an dieser Stelle auch noch auf, sticht aber nicht so sehr ins Auge.
Kann man diese "Veränderung" der Seite irgendwie beheben oder braucht der PHP-Code bei der Ausführung einfach mehr "Platz"?
Ansonsten funktioniert alles einwandfrei und es wird mir keine Fehlermeldung angezeigt. Datei ist in ANSI as UTF8 (also UTF8 ohne BOM) gespeichert.
Für Hilfe oder Erklärungen wäre ich sehr dankbar.
Liebe Grüße
Poison