kostenloser Webspace werbefrei: lima-city


CSS-Formatierung in PHP echo

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    yorecords

    Kostenloser Webspace von yorecords

    yorecords hat kostenlosen Webspace.

    Hallo.

    Ich habe Probleme bei der Formatierung von einem DIV in einem PHP-echo.. Eigentlich funktioniert eh alles soweit, nur das zentrieren komischerweise nicht.. Wenn ich die Seite durch PHP auseben lasse, sind die Divs (also genau genommen der Layer, der alles andere beinhaltet) einfach linksbündig ausgerichtet. er ist mit margin-left: auto; margin-right: auto; formatiert..
    Die betroffene Seite ist nicht online, aber sie ist gleich aufgebaut wie
    www.theyorecords.de
    , nur halt in einem PHP-echo.
    Weiß jemand wieso das so ist und was ch dagegen tun kann?
    danke im Voraus!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    yorecords schrieb:
    Weiß jemand wieso das so ist und was ch dagegen tun kann?
    Quellcode des
    echo()
    posten, eventuell noch die Ausgabe (also im Browser den Seitenquelltext an der Stelle).
  4. Autor dieses Themas

    yorecords

    Kostenloser Webspace von yorecords

    yorecords hat kostenlosen Webspace.

    hackyourlife schrieb:
    yorecords schrieb:
    Weiß jemand wieso das so ist und was ch dagegen tun kann?
    Quellcode des
    echo()
    posten, eventuell noch die Ausgabe (also im Browser den Seitenquelltext an der Stelle).


    Also das ist der Quelltext der vom Script ausgegeben wird:

    <html>
    <head>
    <link rel='icon' href='img/favicon.png' type='image/png'>
    <link rel='shortcut icon' href='img/favicon.png' type='image/png'> 
    
    <title>ACCESS DENIED</title>
    
    <link rel='stylesheet' type='text/css' href='css/divs.css'>
    <link rel='stylesheet' type='text/css' href='css/font.css'>
    
    <script type='text/javascript' src='/js/ga.js'></script>
    
    </head>
    
    <body>
    
    <div id='layer'>
    
    <div id='top'></div>
    
    <div id='sdlayer' style='color: #FF0000;'>
    
    <h1>ACCESS DENIED!!</h1>
    Invalid Code!
    
    </div>
    
    </div>
    
    </body>
    
    </html>


    Und hier die Divs:

    #layer {
    		width: 1100px;
    		height: 100%;
    		position: relative;
    		border-left: 3px solid #000000;
    		border-right: 3px solid #000000;
    		top: 0px;
    		margin-left: auto;
    		margin-right: auto;
    		background-color: #000000;
    		z-index: 1;
    	}
    	
    	#top {
    		width: 1100px;
    		height: 120px;
    		position: relative;
    		overflow: hidden;
    		border-left: 3px solid #000000;
    		top: 0px;
    		margin-left: auto;
    		margin-right: auto;
    		background-image: url(http://www.theyorecords.de/img/topbg.jpeg);
    		background-repeat: repeat;
    		z-index: 2;
    	}
    
    	#sdlayer {
    		width: 1100px;
    		height: auto;
    		border-left: 3px solid #000000;
    		position: absolute;
    		top: 120px;
    		left: 0px;
    		bottom: 0px;
    		margin: 0px;
    		padding: 0px;
    		background-color:#000000;
    		text-align: center;
    		overflow-x: hidden;
    		overflow-y: scroll;
    		scrollbar-base-color:#29342e;
    		scrollbar-3dlight-color:#242923;
    		scrollbar-arrow-color:#FFFFFF;
    		scrollbar-darkshadow-color:#000000;
    		scrollbar-face-color:#29342e;
    		scrollbar-shadow-color:#000000;
    		scrollbar-track-color:#4f6559;
    		z-index: 3;
    	}


    Komischerweise ist der sdlayer auch nur so hoch wie sein Inhalt, anstatt bis zum unteren Rand zu gehen. Das ist aber alles nur so wenn ich den Code über ein echo ausgebe...

    Und das ist das PHP-Script:

    <?php
    	$acc = "     // Anderer Quelltext */   ";
    	$den = "     // Der Quelltext der oben steht */     ";
    
    $code = $_POST["code"];
    $c001 = "AbCd123";
    
    if ($code == $c001)
    {
    echo $acc;
    }
    else
    {
    echo $den;
    }
    ?>


    (Und eine Seite davor wird dieser Code halt abgefragt.. Aber das tut ja nichts zur Sache.)

    Beitrag zuletzt geändert: 22.5.2012 23:28:46 von yorecords
  5. Hast du mal probiert, die Seite ohne Php auszugeben ? Vielleicht ist ein Fehler im Css oder so !
  6. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    yorecords schrieb:
    Weiß jemand wieso das so ist und was ch dagegen tun kann?
    Versuch mal nowdoc zu verwenden um den String zu laden, also so:
    <?php
    $acc = irgendwas;
    $den <<< 'EOT'
    <html>
    <head>
    <link rel='icon' href='img/favicon.png' type='image/png'>
    <link rel='shortcut icon' href='img/favicon.png' type='image/png'> 
    
    <title>ACCESS DENIED</title>
    
    <link rel='stylesheet' type='text/css' href='css/divs.css'>
    <link rel='stylesheet' type='text/css' href='css/font.css'>
    
    <script type='text/javascript' src='/js/ga.js'></script>
    
    </head>
    
    <body>
    
    <div id='layer'>
    
    <div id='top'></div>
    
    <div id='sdlayer' style='color: #FF0000;'>
    
    <h1>ACCESS DENIED!!</h1>
    Invalid Code!
    
    </div>
    
    </div>
    
    </body>
    
    </html>
    EOT;
    Wenn du es so machst kommt der HTML-Code ganz sicher richtig aus und wird nicht von PHP verändert.

    Ansonsten schau dir mal an, ob die Seite ohne PHP funktioniert, wenn du den HTML-Code als .html verwendest...

  7. Versuch mal nowdoc zu verwenden um den String zu laden, also so:
    <?php
    $acc = irgendwas;
    $den <<< 'EOT'
    ....
    EOT;


    Die nowdoc Syntax ist bei dir falsch : Es sollte heißen :
    <<<'EOD' ..... 'EOD'  /code]
    
    oder die andere Variante (Herodoc ?)
    
    [code]<<< EOD ... EOD


    Beitrag zuletzt geändert: 23.5.2012 10:19:05 von ohgspringe7l
  8. Also wenn ich das richtig sehe, versuchst du halt den Quelltext über Echo auszugeben. Problematisch kann da sein, dass vielleicht der Quellcode nicht richtig escaped ist. Dabei spielt es beispielsweise eine Rolle, ob du
    $code = '<html> [...]</html>';
    ist oder
    $code = "<html> [...] </html>";
    . Da das aus deinem Code nicht ersichtlich ist, kann man dazu leider wenig sagen. Möglich wäre beispielsweise, dass am Ende im Dokument etwas wie
    \'css/div.css\'
    steht. ( Wobei dann die CSS-Datei nicht richtig gefunden wird. )

    Ich persönlich umgehe sowas gerne, indem ich Fehlerseiten, etc. gerne auslager, also eine errdoc.php habe, in der am Ende dann nur der Statische Inhalt steht, welche ich dann ggf. inlcude. Damit hat man dann eine errdoc.php
    <?php
    /* Platz für zusätzlichen Stuff */ 
    ?>
    <html>
    <head>
    <link rel='icon' href='img/favicon.png' type='image/png'>
    <link rel='shortcut icon' href='img/favicon.png' type='image/png'> 
    
    <title>ACCESS DENIED</title>
    
    <link rel='stylesheet' type='text/css' href='css/divs.css'>
    <link rel='stylesheet' type='text/css' href='css/font.css'>
    
    <script type='text/javascript' src='/js/ga.js'></script>
    
    </head>
    
    <body>
    
    <div id='layer'>
    
    <div id='top'></div>
    
    <div id='sdlayer' style='color: #FF0000;'>
    
    <h1>ACCESS DENIED!!</h1>
    Invalid Code!
    
    </div>
    
    </div>
    
    </body>
    
    </html>
    welche dann im eigentlichen Dokument eingebunden wird:
    <?php
    $code = $_POST["code"];
    $c001 = "AbCd123";
    
    if ($code == $c001)
    {
    include("anderesdoc.php");
    }
    else
    {
    include("errdoc.php");
    }
    ?>
    Wenn du aber an der echo-Methode festhälst, solltest du prüfen, ob das Dokument wirklich richtig angezeigt wird ( Also den Quellcode im Browser prüfen ) oder halt die angesprochenen Nowdoc-Methode benutzen.
  9. kelserific schrieb:
    Also wenn ich das richtig sehe, versuchst du halt den Quelltext über Echo auszugeben. Problematisch kann da sein, dass vielleicht der Quellcode nicht richtig escaped ist. Dabei spielt es beispielsweise eine Rolle, ob du
    $code = '<html> [...]</html>';
    ist oder
    $code = "<html> [...] </html>";
    . Da das aus deinem Code nicht ersichtlich ist, kann man dazu leider wenig sagen.


    Er benutzt die "" Syntax . Das sient man bei der Variablen zuweisung : $acc = "..... "
  10. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    ohgspringe7l schrieb:
    Die nowdoc Syntax ist bei dir falsch : Es sollte heißen :
    <<<'EOD' ..... 'EOD'


    oder die andere Variante (Herodoc ?)

    <<< EOD ... EOD
    Nein, das was wirklich falsch ist ist, dass ich ein = vergessen hab... :-(
    So wie du das meinst ist es ungültig, das EOD muss in einer eigenen Zeile sein, es dürfen keine Zeichen davor und danach sein, nur der Strichpunkt am Ende.

    kelserific schrieb:
    Problematisch kann da sein, dass vielleicht der Quellcode nicht richtig escaped ist.
    Deshalb nowdoc, dort hast du das Problem nicht und kannst den HTML-Code in PHP einbetten.

    Und jetzt nochmal den Code ohne Fehler:
    <?php
    $acc = irgendwas;
    $den = <<< 'EOT'
    <html>
    <head>
    <link rel='icon' href='img/favicon.png' type='image/png'>
    <link rel='shortcut icon' href='img/favicon.png' type='image/png'> 
     
    <title>ACCESS DENIED</title>
     
    <link rel='stylesheet' type='text/css' href='css/divs.css'>
    <link rel='stylesheet' type='text/css' href='css/font.css'>
     
    <script type='text/javascript' src='/js/ga.js'></script>
     
    </head>
     
    <body>
     
    <div id='layer'>
     
    <div id='top'></div>
     
    <div id='sdlayer' style='color: #FF0000;'>
     
    <h1>ACCESS DENIED!!</h1>
    Invalid Code!
     
    </div>
     
    </div>
     
    </body>
     
    </html>
    EOT;
  11. Die Verbesserung bezog sich darauf , dass du meines Wissens nach <<<Eot gleich beenden musst, nicht einmal mit '' und einmal ohne !

    Beitrag zuletzt geändert: 23.5.2012 11:25:41 von ohgspringe7l
  12. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    ohgspringe7l schrieb:
    Die Verbesserung bezog sich darauf , dass du meines Wissens nach <<<Eot gleich beenden musst, nicht einmal mit '' und einmal ohne !
    Das hier:
    $var = <<< EOT
    irgendwas mit $variablen und \n-Sequenzen
    EOT;
    nennt sich Heredoc, es werden Variablen und Escape-Sequenzen ausgewertet.

    Hingegen hier:
    $var = <<< 'EOT'
    etwas ohne Auswertung
    EOT;
    nennt sich nowdoc, es werden Variablen und Escape-Sequenzen ignoriert. Das 'EOT' soll vermutlich andeuten, dass es sich so wie ein String in
    '
    verhält.

    ohgspringe7l schrieb:
    nicht einmal mit '' und einmal ohne !
    So wie ich es gerade beschrieben habe stimmt es. ;-)

    Jetzt ist nur noch die Frage, ob das dem TE hilft...
  13. hackyourlife schrieb:


    ohgspringe7l schrieb:
    nicht einmal mit '' und einmal ohne !
    So wie ich es gerade beschrieben habe stimmt es. ;-)


    Ja , ja ahst recht , hab es durcheinandergebracht .
  14. m******e

    yorecords schrieb:
    Ich habe Probleme bei der Formatierung von einem DIV in einem PHP-echo..
    Jaja.. dieses PHP-echo ist schon manchmal etwas eigenwillig ;)

    Mir half es stets, wenn ich beide Seiten im Browser aufrief, mir dann die Quelltexte aus dem Browser heraus *zack* in meinen Editor kopierte.

    Wenn es im direkten Vergleich dann Abweichungen gibt, prüfe ich, woran es liegt.

    Schon mal ausprobiert?
    Oftmals sind es nur Kleinigkeiten, die man nicht bedachte.

    LG,
    Menschle
  15. Autor dieses Themas

    yorecords

    Kostenloser Webspace von yorecords

    yorecords hat kostenlosen Webspace.

    Danke für eure Antworten!

    ohgspringe7l schrieb:
    Hast du mal probiert, die Seite ohne Php auszugeben ? Vielleicht ist ein Fehler im Css oder so !


    Ne, wie gesagt ohne PHP funktioniert es.


    hackyourlife schrieb:
    Versuch mal nowdoc zu verwenden um den String zu laden


    Das schaut schon mal gut aus, werd ich gleich morgen (später) versuchen.


    kelserific schrieb:
    Also wenn ich das richtig sehe, versuchst du halt den Quelltext über Echo auszugeben. Problematisch kann da sein, dass vielleicht der Quellcode nicht richtig escaped ist. Dabei spielt es beispielsweise eine Rolle, ob du
    $code = '<html> [...]</html>';
    ist oder
    $code = "<html> [...] </html>";
    . Da das aus deinem Code nicht ersichtlich ist, kann man dazu leider wenig sagen. Möglich wäre beispielsweise, dass am Ende im Dokument etwas wie
    \'css/div.css\'
    steht. ( Wobei dann die CSS-Datei nicht richtig gefunden wird. )

    Ich persönlich umgehe sowas gerne, indem ich Fehlerseiten, etc. gerne auslager, also eine errdoc.php habe, in der am Ende dann nur der Statische Inhalt steht, welche ich dann ggf. inlcude. Damit hat man dann eine errdoc.php

    Wenn du aber an der echo-Methode festhälst, solltest du prüfen, ob das Dokument wirklich richtig angezeigt wird ( Also den Quellcode im Browser prüfen ) oder halt die angesprochenen Nowdoc-Methode benutzen.


    Der HTML-Code den ich unten gepostet habe ist der, der vom Script ausgegeben wurde.
    Ich werd es aber zuest mal mit Nowdoc versuchen, und wenn das nicht hilft wird mir eh keine andere Möglichkeit bleiben als die Codes auszulagern.



    menschle schrieb:
    Jaja.. dieses PHP-echo ist schon manchmal etwas eigenwillig ;)

    Mir half es stets, wenn ich beide Seiten im Browser aufrief, mir dann die Quelltexte aus dem Browser heraus *zack* in meinen Editor kopierte.

    Wenn es im direkten Vergleich dann Abweichungen gibt, prüfe ich, woran es liegt.

    Schon mal ausprobiert?
    Oftmals sind es nur Kleinigkeiten, die man nicht bedachte.

    LG,
    Menschle


    Das einzige was da anders ist, sind eben die Anführungszeichen. In einem HTML-Dokument werden ja " " verwendet, und in PHP muss ich ' ' verwenden. Kann schon sein, dass es was damit zu tun hat, glaub ich aber eher nicht, da ja sonst viel mehr nicht funktionieren würde.
  16. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    yorecords schrieb:
    Das einzige was da anders ist, sind eben die Anführungszeichen. In einem HTML-Dokument werden ja " " verwendet, und in PHP muss ich ' ' verwenden.
    Du kannst aber in PHP genaosu ein
    "
    ausgeben:
    echo("Text mit \"Anführungszeichen\"");
    Allerdings wird das irgendwann zu viel Arbeit, deshalb verwendet man dann heredoc oder nowdoc.
  17. Autor dieses Themas

    yorecords

    Kostenloser Webspace von yorecords

    yorecords hat kostenlosen Webspace.

    hackyourlife schrieb:
    yorecords schrieb:
    Das einzige was da anders ist, sind eben die Anführungszeichen. In einem HTML-Dokument werden ja " " verwendet, und in PHP muss ich ' ' verwenden.
    Du kannst aber in PHP genaosu ein
    "
    ausgeben:
    echo("Text mit \"Anführungszeichen\"");
    Allerdings wird das irgendwann zu viel Arbeit, deshalb verwendet man dann heredoc oder nowdoc.


    Cool, gut zu wissen. Danke!

    Edit:
    Hab es jetzt mit Nowdoc versucht, hat aber leider nichts verändert.. Es ändert auch nichts wenn ich die Style-Angaben gleich in den Div-Tag schreibe..

    Edit 2:

    Hab den Fehler gefunden... Ich hab die Doctype-Angabe vergessen. Anscheinend funktioniert das Zentrieren mit margin-left: auto; margin-right: auto ohne Doctype nicht..

    Beitrag zuletzt geändert: 26.5.2012 1:42:33 von yorecords
  18. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!