Position:absolute

Status
Nicht offen für weitere Antworten.

Carrear

Erfahrenes Mitglied
Hi Leute,

ich wusste jetzt nicht genau ob ich des hier bei PHP oder CSS poste nsollte (je nachdem wo die Ursache des Problems liegt), aber ich denke mal dass ich beim CSS was falsch gemacht habe. Hier ertsmal der Code:

PHP:
echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
 echo "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n";
 echo "<head>\n";
 echo "<meta http-equiv=\"refresh\" content=\"5; URL=http://www.dusklounge.de/index.php\">\n";
 echo "</head>\n";
 echo "<body>\n";
 echo "<div style=\"position: absolute; width: 100%; height: 100%;\">\n";
 echo "<div style=\"position: absolute; left: 30%; top: 40%; width: 40%; height: 20%; padding: 4px; background-color: #333333; text-align: center;\">\n";
     die("<br/>Bitte geben Sie Ihre Benutzerdaten ein!\n</div>\n</div>\n</body>\n</html>");

Die CSS Angaben funktionieren alle, außer der Positionierung des inneren div tags (nur die vertikale). Bevor ich den ganzen HTML Körper (head mit angaben und body tags) drum gebaut hatte hats funktioniert. Aber dann ist das Dokument nicht valid und so eine Fuscherei will ich gar nicht erst anfangen ^^ Fällt euch im Code was auf, was das verursachen könnte?
 
Wieso gibst du den HTML-Quellcode mit PHP aus? Wieso schreibst du ihn nicht gleich als Klartext?
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="refresh" content="5; URL=http://www.dusklounge.de/index.php">
</head>
<body>
<div style="position: absolute; width: 100%; height: 100%;">
<div style="position: absolute; left: 30%; top: 40%; width: 40%; height: 20%; padding: 4px; background-color: #333333; text-align: center;">
<br/>Bitte geben Sie Ihre Benutzerdaten ein!
</div>
</div>
</body>
</html>
Übrigens ist ein Dokument ohne Titel auch ungültig. Und auch das leere Element „meta“ muss geschlossen werden.

Wie soll das Dokument denn nach deinen Vorstellungen dargestellt werden? Und warum benutzt du eigentlich XHTML?
 
Weil das ganze in einer php abfrage ist ^^ Ich habe keinen Plan wie es dargestellt werden soll.. ich habe gar keien ahnung vom html head -_- ich nehme immer den gleichen. XHTML? Was ist das?
 
Wenn du den gezeigten Code in ein bestehendes Dokument einbindest, dann gehört in deine Abfrage nur das, was zwischen <body> ... </body> notiert ist.
 
Mache ich ja nicht lol.... ICh glaube ich schicke euch lieber die ganze datei bevor ihr es noch mehr zerrupft ^^

PHP:
<?
include './include/connect.inc.php';
session_start();
if (isset ($_SESSION['logged_in']) AND $_SESSION['logged_in'] == "TRUE")
        {
 echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
 echo "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n";
 echo "<head>\n";
 echo "<meta http-equiv=\"refresh\" content=\"5; URL=http://www.dusklounge.de/index.php\">\n";
 echo "</head>\n";
 echo "<body>\n";
 echo "<div style=\"position: relative; width: 100%; height: 100%;\">\n";
 echo "<div style=\"position: absolute; left: 30%; top: 40% ;width: 40%; height: 20%; padding: 4px; background-color: #333333; text-align: center;\">\n";
 die ("<br/>Du bist schon eingeloggt.\n</div>\n</div>\n</body>\n</html>");
        }
if (trim($_POST['username']) == "" AND trim($_POST['passwort']) == "")
     {
 echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
 echo "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n";
 echo "<head>\n";
 echo "<meta http-equiv=\"refresh\" content=\"5; URL=http://www.dusklounge.de/index.php\">\n";
 echo "</head>\n";
 echo "<body>\n";
 echo "<div style=\"position: absolute; width: 100%; height: 100%;\">\n";
 echo "<div style=\"position: absolute; left: 30%; top: 40%; width: 40%; height: 20%; padding: 4px; background-color: #333333; text-align: center;\">\n";
     die("<br/>Bitte geben Sie Ihre Benutzerdaten ein!\n</div>\n</div>\n</body>\n</html>");
     }
$sql = "SELECT
  
  userID,
  username,
  passwort,
  Aktiviert
  
 FROM
  users
 WHERE
  
  username = '".$_POST['username']."'
  
 AND
  
  passwort = MD5('".$_POST['passwort']."')";
$sql_query = mysql_query($sql) OR die(mysql_error());
$sql_result = mysql_fetch_assoc($sql_query);

if(mysql_num_rows($sql_query) == 1)
 {
 if($sql_result['Aktiviert'] == "Ja")
  {
  $_SESSION['logged_in'] = "TRUE";
  $_SESSION['userID'] = $sql_result['userID'];
  $_SESSION['passwort'] = $sql_result['passwort'];
  echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
  echo "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n";
  echo "<head>\n";
  echo "<meta http-equiv=\"refresh\" content=\"5; URL=http://www.dusklounge.de/index.php\">\n";
  echo "</head>\n";
  echo "<body>\n";
  echo "<div style=\"position: relative; width: 100%; height: 100%;\">\n";
  echo "<div style=\"position: absolute; left: 30%; top: 40% ;width: 40%; height: 20%; padding: 4px; background-color: #333333; text-align: center\">\n";
  echo ("<br/>Du hast dich erfolgreich eingeloggt!\n</div>\n</div>\n</body>\n</html>");
  }
 else
  {
  echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
  echo "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n";
  echo "<head>\n";
  echo "<meta http-equiv=\"refresh\" content=\"5; URL=http://www.dusklounge.de/index.php\">\n";
  echo "</head>\n";
  echo "<body>\n";
  echo "<div style=\"position: relative; width: 100%; height: 100%;\">\n";
  echo "<div style=\"position: absolute; left: 30%; top: 40% ;width: 40%; height: 20%; padding: 4px; background-color: #333333; text-align: center\">\n";
  echo ("Sie haben ihre Registrierung noch nicht bestätigt.<br/>
   Nach ihrer Registrierung haben Sie eine EMail mit einem<br/>
   Aktivierungslink erhalten.<br/><br/>
   Bitte betätigen Sie diesen Link zur Bestätigung ihrer EMail Adresse.\n</div>\n</div>\n</body>\n</html>");
  } 
 }
else
 {
 echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
 echo "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n";
 echo "<head>\n";
 echo "<meta http-equiv=\"refresh\" content=\"5; URL=http://www.dusklounge.de/index.php\">\n";
 echo "</head>\n";
 echo "<body>\n";
 echo "<div style=\"position: relative; width: 100%; height: 100%;\">\n";
 echo "<div style=\"position: absolute; left: 30%; top: 40% ;width: 40%; height: 20%; padding: 4px; background-color: #333333; text-align: center\">\n";
 echo ("<br/>Ihre Benutzerdaten sind falsch.<br/> Bitte versuchen Sie es erneut.\n</div>\n</div>\n</body>\n</html>");
 } 

 
?>

Es ist ein eigenes PHP Dokument welches aber HTML ausgeben soll.
 
Wiederkehrende Teile, so wie etwa die Dokumenttypdeklaration und eigentlich alles weitere bis auf den Inhalt des body-Elements, kannst du aus den jeweiligen Zweigen der Kontrollstrukturen entfernen und als Allgemeines ausgeben.

PHP:
<?php

	include './include/connect.inc.php';
	session_start();
	header('Content-Type: text/html; charset=iso-8859-1');

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
	<meta http-equiv="refresh" content="5; URL=http://www.dusklounge.de/index.php">
</head>

<body>
<?php

	if (isset ($_SESSION['logged_in']) AND $_SESSION['logged_in'] == "TRUE") {
		echo '<p>Du bist schon eingeloggt.</p>';
	}
	if (trim($_POST['username']) == "" AND trim($_POST['passwort']) == "") {
		echo 'Bitte geben Sie Ihre Benutzerdaten ein!';
	}
	$query = '
		SELECT
		        `userID`,
		        `username`,
		        `passwort`,
		        `Aktiviert`
		  FROM
		        `users`
		  WHERE
		        `username` = "'.mysql_real_escape_string($_POST['username']).'"
		    AND `passwort` = "'.md5($_POST['passwort']).'"
		';
	$sql_query = mysql_query($sql) OR die(mysql_error());
	$sql_result = mysql_fetch_assoc($sql_query);

	if(mysql_num_rows($sql_query) == 1) {
		if($sql_result['Aktiviert'] == "Ja") {
			$_SESSION['logged_in'] = "TRUE";
			$_SESSION['userID'] = $sql_result['userID'];
			$_SESSION['passwort'] = $sql_result['passwort'];
			echo '<p>Du hast dich erfolgreich eingeloggt!</p>';
		} else {
			echo '<p>Sie haben ihre Registrierung noch nicht bestätigt.</p>';
			echo '<p>Nach ihrer Registrierung haben Sie eine E-Mail mit einem Aktivierungslink erhalten.</p>';
			echo '<p>Bitte betätigen Sie diesen Link zur Bestätigung ihrer E-Mail-Adresse.</p>';
		}
	} else {
		echo '<p>Ihre Benutzerdaten sind falsch.</p>';
		echo '<p>Bitte versuchen Sie es erneut.</p>';
	}

?>
</body>
</html>
 
Klaro, ich verlinke ja sowieso jedes mal auf die gleiche Seite ^^ ... da wäre ich jetzt mal wieder nicht von alleine drauf gekommen ^^ Danke.
 
Hum. Das ändert aber doch nichts an meinem problem. wie ihr seht ist außenrum ein div tag der für höhe und breite mit 100 % deklariert ist. Defakto setzt er es aber so um: ER passt die Größe dem Inhalt an -_- kann man nicht irgendwie einstellen, dass es eben so groß ist wie das Browserfenster (das können ja verschiedene größen sein)?
 
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test</title>
<script type="text/javascript">
<!--
//-->
</script>
<style type="text/css">
<!--
html,body,#div{height:100%;width:100%;margin:0;}
#div{background:red;position:absolute;}
-->
</style>
</head>
<body>
<div id="div">
  DIV
</div>
</body>
</html>
 
Status
Nicht offen für weitere Antworten.
Zurück