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, 5403 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.

MfG 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 Update

Windows Update-Suche nach Win7 Neuinstallation wieder schneller

(2)

Erfahrungsbericht von the-buccaneer zum Thema Windows Update ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Hyper-V
gelöst Reiner Hyper- V Server oder lieber Rolle (22)

Frage von Winuser zum Thema Hyper-V ...

Exchange Server
gelöst Bestehende eMails autoamatisch weiterleiten (22)

Frage von metal-shot zum Thema Exchange Server ...

SAN, NAS, DAS
gelöst Synology Version 6.1 Probleme (18)

Frage von Hendrik2586 zum Thema SAN, NAS, DAS ...

Router & Routing
gelöst IP Kamera für drei unabhängige Netzwerke (16)

Frage von ProfessorZ zum Thema Router & Routing ...