Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Warum gehen die Variablen in der PHP CSS nicht?

Frage Entwicklung CSS

Mitglied: Jeeroy

Jeeroy (Level 1) - Jetzt verbinden

02.08.2011, aktualisiert 15:36 Uhr, 5350 Aufrufe, 10 Kommentare

Hey ich probiere eine php Datei zu erstellen, die als CSS Datei genommen wird, doch treten da dauernd Fehler auf.

Wichtig ist für mich, dass ich die Farben später aus der SQL Datenbank rauslesen kann, sodass ich sie in einem Backend immer ändern kann.
Deswegen wollte ich PHP in meiner CSS Datei haben, also eine PHP Datei, die als CSS Datei dient.

Eingelesen wird sie so und natürlich im <head> Bereich:
01.
<link rel="stylesheet" type="text/css" href="<? echo $pfad_css_long; ?>style.php" />
Meine style.php sieht derzeitig so aus:

01.
<?php 
02.
header("Content-type: text/css"); 
03.
$header_bgcolor = "#000"
04.
?> 
05.
06.
body { 
07.
            background-color: #eee; 
08.
09.
 
10.
 
11.
 
12.
.header { 
13.
            background-color: #555; 
14.
            border: 1px solid #000000; 
15.
16.
 
17.
		 
18.
.navi { 
19.
            background-color: <? echo $header_bgcolor; ?>; 
20.
            border: 1px solid #000000; 
21.
22.
 
Die CSS ist noch sehr kurz, zum testen.
Warum in Zeile 5 ein } ist....
Komischerweise wird dann der erste Abschnitt
01.
body { 
02.
            background-color: #eee; 
03.
}
auch mit Berücksichtigt, habe ich in Zeile 5 das } nicht, startet er erst nach body { }.

In Zeile 19 übernimmt er nicht die Farbe aus der Variable (#000), sondern lässt es weiß.

Ich versteh das nicht, habe schon viel im Internet geguckt und die haben das da genau so???

Bitte um Hilfe
Mitglied: ganymed
02.08.2011 um 16:31 Uhr
Hallo,

meiner bescheidenen Meinung nach wird deine style.php überhaupt durch den PHP Parser verarbeitet.
Der zweite Fehler aus meiner Sicht ist, dass du versuchst einen header zu senden.
Dieser ist bereits gesendet und zwar in deiner html Datei vor dem öffnenden <html> also lange vor dem einbinden deines stylesheets.

Was du aber machen kannst ist folgendes.

index.php
01.
<html> 
02.
<head>... 
03.
<?php include 'style.php';?> 
04.
...
style.php
01.
<style type="text/css"> 
02.
<!-- 
03.
... 
04.
.navi { 
05.
          background-color: <? echo $header_bgcolor; ?>;  
06.
          border: 1px solid #000000;  
07.
}  
08.
... 
09.
--> 
10.
</style>
Was ich jetzt noch nicht aufgenommen habe ist das füllen der Variable $header_bgcolor. Dafür stehn die ...
Bitte warten ..
Mitglied: Jeeroy
02.08.2011 um 16:38 Uhr
Hmm, ich habe gerade in diesem Augenblick rausbekommen, dass wenn ich in meiner verlinkung, also:

01.
<link rel="stylesheet" type="text/css" href="<? echo $pfad_css_long; ?>style.php" />
einfach das PhP wegnehme sprich:
01.
<link rel="stylesheet" type="text/css" href="css/style.php" />
Dann funktioniert es,...

Ich habe es überall so gelesen, dass es so mit den headern gemacht wird.
Bitte warten ..
Mitglied: Valume91
02.08.2011 um 16:46 Uhr
Moin Jeeroy

Wo hast du den das so gesehen?
Belehrt mich eines besseren aber so sieht das für mich schaurig aus (php datei so einzubinden; css in der php datei).
Deshalb hier mein Vorschlag:

1. Definiere dein CSS in der PHP Datei mit den HTML Style Tags (Wie das geht hier )
2. Binde die PHP Datei anschliessen per include ein.
In deinem Fall:
01.
<?php 
02.
include $pfad_css_long. 'style.php'
03.
?>
So ist es dir auch möglich an stelle der Farbe eine Variable einzusetzten.
Eventuell funktioniert es auch noch einfacher.

Ich hoffe dir behilflich gewesen zu sein.

Mit freundlichen Grüßen Valume
Bitte warten ..
Mitglied: Valume91
02.08.2011 um 16:49 Uhr
Hopala, Beitrag von ganymed war noch nicht das als ich zu schreiben begonnen habe ;)
Bitte warten ..
Mitglied: ganymed
02.08.2011 um 17:01 Uhr
Hab mal google gefragt und siehe da auch ich habe links dazu gefunden und somit was dazu gelernt.
href="css/style.php" soll wohl so funktionieren.
Ich selbst habe das noch nie so gemacht, weiß aber mit Sicherheit, dass meine angedeutete Lösung funktioniert.
Einzige Idee die ich jetzt noch habe ist, dass in deiner Variable $pfad_css_long nicht das drin steht was du dort erwartest.
Bitte warten ..
Mitglied: ganymed
02.08.2011 um 17:04 Uhr
Hallo Valume,
macht ja nichts mir geht das auch oft so.
Bitte warten ..
Mitglied: dog
02.08.2011 um 18:23 Uhr
Dieser ist bereits gesendet und zwar in deiner html Datei vor dem öffnenden <html> also lange vor dem einbinden deines stylesheets.

Bitte was?!

Der TO bindet die CSS-Datei über HTML-Links ein, dass sind zwei völlig verschiedene Requests!


<?php include 'style.php';?>

genauso die "Lösung" von Valume91

Nein, niemals!
Das würde das Stylesheet direkt ins HTML einbetten und das ist ein riesiger Performance-Fehler.

Es gibt übrigens für jeden Browser mittlerweile tolle Debug-Tools...
Bitte warten ..
Mitglied: Jeeroy
03.08.2011 um 07:52 Uhr
Guten Morgen,

@dog: Was für Debug-Tools könntest du empfehlen?

@Valume91 & ganymed: Hier steht das ganz gut Beschrieben:

http://www.webmasterpro.de/coding/article/php-in-css-dss-dynamic-style- ...


Trotzdem verwundert mich das sehr, dass es zu Problemen führte wenn ich
01.
<link rel="stylesheet" type="text/css" href="<? echo $pfad_css_long; ?>style.php" />
genommen habe.
Ich habe die Variable $pfad_css_long mal ausgeben lassen und sie beinhaltet:

D:/xampp/xampp/htdocs/minimax/mx_wcms/css/

Außerdem funktionierte die CSS ja zum Teil, Border und Farben wurden erkennt nur halt keine Variablen und es wurde erst ab der ersten } gearbeitet.

Mit dem Link funktioniert alles gut:
01.
<link rel="stylesheet" type="text/css" href="css/style.php" />

Liebe Grüße
Bitte warten ..
Mitglied: ganymed
03.08.2011 um 08:45 Uhr
Hallo,

eigentlich müsste da doch „http://localhost/minimax/mx_wcms/css/" “ , „./css/“ oder css/ verwendet werden.
Bitte warten ..
Mitglied: Jeeroy
03.08.2011 um 09:00 Uhr
*hehe

Da hast du wohl recht.
Da habe ich nicht bei der Pfadvergabe aufgepasst, danke ;)!

Stunden suchen wegen eines kleinen dummen Fehlers...
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...