Hoi,
Ik probeer al een tijdje om in mijn css variabelen werkend te krijgen. En dan eigenlijk een background-image. Die waarde van die image wil ik nu dmv een session_start(); bepalen. Kan dit eigenlijk wel? Want als ik met sessions ga werken dan ziet hij mijn css niet meer.
Dus als ik op pagina 1 aangeef dat ik een engels plaatje wil dan moet dit dus in de css komen en wil ik een nederlands plaatje dan moet dit in de css komen etc.
Het enige wat ik tegenkom is:
header("Content-type: text/css");
$a = "/images/engels.jpg";
ok dat had ik idd ook gezien, maar het geheel werkt nog niet helaas.
De waarden van die $taal staan in een apart bestandje nl taal_nl.php of taal_en.php.
Ik zal even de code laten zien wat ik nu heb inmiddels. Misschien is het dan wat duidelijker?:
als je css niet meer werkt met die require, dan kan waarschijnlijk het bestand dat je wilt includen niet gevonden worden. Je css file wordt dan niet meer verder opgebouwd, resultaat: geen opmaak.
Hoe roep je het css bestand aan???
* Ik heb even wat geprobeerd zelf, en dit werkt *
HTML File:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="css.php?color=ffeedd" />
</head>
<body>
</body>
</html>
css.php
<?php
header('Content-type: text/css');
session_start();
if (!empty($_GET['color']))
$_SESSION['color'] = $_GET['color'];
?>
body {
background-color: #<?= $_SESSION['color']; ?>;
}
Als je nu de html pagina opent wordt krijgt de site achtergrondkleur #ffeedd, als je nu in dezelfde sessie de aanroep van de css aanpast naar href="css.php", blijft de achtergrondkleur #ffeedd
Deze manier van aanroepen is dus op zich goed, als nu ook het bestand dat je wilt includen bestaat (en geen fatal php errors bevat), zou het moeten werken
Maar met die require werkt het dus niet?
Dat voor beeldje wat je geeft werkt idd ook wel, maar als ik de variabelen uit een ander bestandje wil halen via require werkt mijn css niet meer.
Blijkbaar kun je geen require geven in dat css bestand?
en waarom zo moeilijk doen. maak je css een php, en met if-else statements kies je dan de kleur, dmv variablen *ik zelf doe dat vanuit de database maar w/e.*
@wesley: waarom moeilijk doen? misschien omdat franko die structuur gewoon zo wil hebben? Of omdat hij die variabelen in meerdere bestanden nodig heeft? enz. enz.
@Franko: je kunt gewoon een require uitvoeren vanuit je php file, totaal geen probleem. Maar als het bestand niet gevonden wordt zal je script stoppen als je de functie require() gebruikt. Ook als het bestand dat je include om wat voor reden dan ook een error bevat, zal het script stoppen.
Probeer bovenin je css.php file anders even je error_reporting aan te zetten, en dan de css file direct te openen via je browser. je zult dan waarschijnlijk wel kunnen zien waarop het fout gaat
voor je de css file aanroept moet natuurlijk wel de taal ingesteld zijn in de sessie... werk je vanuit een index.php, waarin dan weer de code staat om je css aan te roepen?
zet daar anders eens helemaal bovenin de volgende code:
<?php
session_start();
if (empty($_SESSION['taal']))
{
$_SESSION['taal'] = 'nl';
}
?>
ik werk vanuit de index.php. Daarin roep ik de css aan.
en bepaal ik de taal keuze nl:
<a href="index.php?taal=nl">NL</a>
<a href="index.php?taal=en">EN</a>
Ik heb nu dit bovenin de pagina staan:
<?PHP
error_reporting(E_ALL);
header("Content-Type: text/css");
session_start();
//$_SESSION['taal'] = $_GET['taal'];
//require("taal/taal_" . $_SESSION['taal'] . ".php");
if (empty($_SESSION['taal']))
{
$_SESSION['taal'] = 'nl';
}
?>
Wat hij nu verderop in de css aangeeft (op de plek van de variabele) is:
Undefined variable: taal