Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] PHP innerhalb von CSS wird nicht umgesetzt

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] PHP innerhalb von CSS wird nicht umgesetzt

    Hi,

    folgender Aufbau klappt:

    index.php
    Code:
    <link rel="stylesheet" type="text/css" href="/template/style2.inc.php" />
    style2.inc.php
    Code:
    <?php 
    header('Content-type: text/css');
    	$logo_abstand_links = '100';
    	$logo_abstand_oben	= '200';
    ?>
    	.logo {
    	  text-align: left;
    	  position: absolute;
    	  left: <?php echo $logo_abstand_links;?>px;
    	  top: <?php echo $logo_abstand_oben;?>px;
    Die Daten sollen nun aber aus der Datenbank geholt werden.
    style2.inc.php
    Code:
    <?php 
    header('Content-type: text/css');
    ?>
    	.logo {
    	  text-align: left;
    	  position: absolute;
    	  left: <?php print $Cfg->get('logo_abstand_links');?>px;
    	  top: <?php print $Cfg->get('logo_abstand_oben');?>px;
    bzw.:
    style2.inc.php
    Code:
    <?php 
    header('Content-type: text/css');
    	$logo_abstand_links = $Cfg->get('logo_abstand_links');
    	$logo_abstand_oben	= $Cfg->get('logo_abstand_oben');
    ?>
    	.logo {
    	  text-align: left;
    	  position: absolute;
    	  left: <?php echo $logo_abstand_links;?>px;
    	  top: <?php echo $logo_abstand_oben;?>px;
    Schaue ich mir den Quellcode an, wird .logo nicht ausgegeben.
    Firebug sagt innerhalb " <link rel="stylesheet" ... "
    Code:
    Das Laden des Quelltexts ist fehlgeschlagen:: http://URL.com/template/style2.inc.php
    Einer eine Idee, warum das nicht klappen will ?



    Nachtrag: Jetzt bitte nicht fragen, ob denn $Cfg->get() überhaupt geht.
    Denn das müßte ich mit ja beantworten... allerdings wurde das andere includiert.

    index.php
    Code:
    <?php include ROOT_URL . '/template/style.inc.php'; ?>
    style.inc.php
    Code:
    <style type="text/css">
    	
    	.logo {
    	  text-align: left;
    	  position: absolute;
    	  left: <?php print $Cfg->get('logo_abstand_links');?>px;
    	  top: <?php print $Cfg->get('logo_abstand_oben');?>px;
                   }
    Falls jetzt jm. fragen sollte, warum ich Variante II (die per include) nicht verwende:

    Dort habe ich das "Problem", das mir der gesamte CSS inhalt innerhalb des Quelltextes angezeigt wird => da es reichlich CSS ist, ist der Quelli übermäßig lang. Ein Suchen macht da nicht wirklich spaß.


    Für ein paar Ideen oder Erklärungen warum das so ist => mein Dank wird dir ewig hinterher schleichen ^^

  • #2
    Was anderes als Debugging fällt mir dazu jetzt auch nicht ein. Was passiert wenn du die style2.inc.phpdirekt aufrufst?

    Aber mal was Anderes: Wozu willst du überhaupt den Abstand des Logos derart beeinflussen. Dazu fielen mir eher Größenangaben in % oder em ein. Wozu benötigst du überhaupt eine absolute Positionierung des Logos?
    [URL]http://hallophp.de[/URL]

    Kommentar


    • #3
      Zitat von Asipak Beitrag anzeigen
      Was passiert wenn du die style2.inc.phpdirekt aufrufst?
      PHP-Code:
      <?php 
       error_reporting
      (E_ALL);
       
      ini_set("display_errors"1); 
      echo 
      '1';
      header('Content-type: text/css');
          
      $logo_abstand_links '100';
          
      $logo_abstand_oben    $Cfg->get('logo_abstand_oben');
          echo 
      '2';
      ?>
          .logo {
            text-align: left;
            position: absolute;
            left: <?php echo $logo_abstand_links;?>px;
            top: <?php echo $logo_abstand_oben;?>px;

      Code:
      1
      Notice: Undefined variable: Cfg in /srv/www/htdocs/xxxxx/html/template/style2.inc.php on line 7
      
      Fatal error: Call to a member function get() on a non-object in /srv/www/htdocs/xxx/html/template/style2.inc.php on line 7
      Was aber logisch ist. Denn ich rufe die datei ja jetzt alleine auf.
      Normalerweise wird diese ja von der index.php aufgerufen. Durch den direkten Aufruf stehen gewisse Variablen nicht zur Verfügung.

      Würde jetzt auch massig arbeit machen, die ganzen Funktionen in die Datei zu verfrachten.

      Aber mal was Anderes: Wozu willst du überhaupt den Abstand des Logos derart beeinflussen. Dazu fielen mir eher Größenangaben in % oder em ein. Wozu benötigst du überhaupt eine absolute Positionierung des Logos?
      Kunde kann selbst bestimmen, wo das Logo angezeigt werden soll. Eine Art CMS-Baukasten.... ohne das Kunde HTML/PHP etc. beherschen muß.
      Aber das geht dann doch ein bissel zu weit, das im Detail zu erklären. Hab euch etliches im .logo weggeschnitten um das posting gering zu halten

      Kommentar


      • #4
        Baust du auch eine Verbindung zu der Datenbank auf ?

        Kommentar


        • #5
          Zitat von md5() Beitrag anzeigen
          Baust du auch eine Verbindung zu der Datenbank auf ?
          lol???


          @TE
          Nein es ist nicht logisch!
          Deine index.php bindet die CSS Datei ein.
          Da du aber über INLCUDE arbeitest, kommt das alles in den Quelltext der index.php und dort hat IMHO der Header von dir nichts verloren.
          Den brauchst du nur, wenn du die Datei über
          Code:
          <link rel="stylesheet" type="text/css" ...
          einbindest.


          Edit: OK beim 4. Mal durchlesen ist mir erst nicht klar was nicht klappt.
          Falls du es über <link machen willst, musst du natürlich deine unzähligen Variablen und Klassen natürlich auch in der CSS Datei initialisieren.
          Was du nicht machen musst, wenn du es per include machst.

          Grund:

          Falls die "PHP Datei als CSS Datei angesprochen wird, fehlen ihr ja die unzähligen Variablen die von der Index.php zur Verfüfung gestellt werde

          Kommentar


          • #6
            Zitat von ragtek Beitrag anzeigen
            Falls die "PHP Datei als CSS Datei angesprochen wird, fehlen ihr ja die unzähligen Variablen die von der Index.php zur Verfüfung gestellt werde
            <= DAS war der Grund => gelöst

            (Beim genaueren Überlegen eigendlich logisch. Wäre reichlich dumm, wenn alle gesetzten Variablen in CSS auch zur Verfügung stehen. Hab nun alle Datein erneut innerhalb CSS includiert = dann standen diese auch zur Verfügung und dann klappte alles)

            Kommentar


            • #7
              "Alle Dateien" hört sich etwas komisch an

              IMHO ist es am elegantesten, wenn du nur EINE Datei hast, die all die global benötigten Sachen ausführt.
              Und nur diese bindest du dann in jedes "Hauptskript" ein.
              Aber da es erledigt ist, bitte auch den Thread als "erledigt markieren"

              Kommentar

              Lädt...
              X