Hét vraag- en antwoordplatform van Nederland

Css laden via mysql database en tonen op site, hoe doe ik dat?

Ik wil de CSS voor mijn site via de database laden, zodat ik hem in mijn cms kan aanpassen. Maar natuurlijk moet hij ook op de site getoond worden.

Welke code moet ik hiervoor gebruiken, zodat de CSS echt op de site getoond wordt?

Toegevoegd na 18 minuten:
Ik programmeer in php en gebruik phpmyadmin voor mijn sql databases

Verwijderde gebruiker
12 jaar geleden
848

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Het beste antwoord

In dat geval kun je beter de file zelf aanpassen, in plaats van het in een database te stoppen. Op deze manier belast je de server minder, en laad hij de CSS file sneller.
Je kunt een bestand aanpassen met de volgende code:

$filename = "cssBestand.css";
$cssContent = $_POST["css"];//Haal de ingevoerde data uit het form en stop het in een variabele.

if (is_writable($filename)) {
if (!$handle = fopen($filename, "w")) {
echo "Cannot open file ($filename)";
exit;
}
if (fwrite($handle, $cssContent ) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}
echo "Success, wrote ($cssContent ) to file ($filename)";
fclose($handle);

} else {
echo "The file $filename is not writable";
}
?>

Als je het toch uit een database wil halen, dan kun je dat op de zelfde manier doen als je normaal bestanden uit een database haalt:

$result = mysql_query("SELECT css FROM css WHERE css_id = 1;");
echo mysql_result($result, 0);
?>

En voor het opslaan:

mysql_query("UPDATE css SET css = "$opTeSlaanWaarde" WHERE css_id = 1;");
?>
(Lees meer...)
Verwijderde gebruiker
12 jaar geleden
Verwijderde gebruiker
12 jaar geleden
De eerste php code, moet ik die plaatsen op de pagina: cssaanpassen.php En volgens mij moet ik een textarea aanmaken met de naam css, toch?
Verwijderde gebruiker
12 jaar geleden
Correct. Je kan hem ook anders noemen, maar dan moet je css in $_POST["css"] vervangen door hetgeen je het wil noemen. Verder moet je zelf even kijken waar je het bestand neer wil zetten en hoe je hem wil noemen en dat kun je dan aanpassen bij $filename = "cssBestand.css"; Als je hem bijvoorbeeld op www.domein.nl/css/style.css wil hebben dan zet je dat zo neer: $filename = "/css/style.css";
Verwijderde gebruiker
12 jaar geleden
Oké bedankt :). Nog een kleine vraag, ik heb natuurlijk al een .css bestand, opent dat script mijn .css bestand, of maakt hij er een aan?
Verwijderde gebruiker
12 jaar geleden
Met de bovenstaande code overschrijft hij dat bestand, en als hij nog niet bestaat, dan maakt hij er een aan. Als je bijvoorbeeld bij het openen van de pagina de inhoud van het css bestand in de textarea wil stoppen dan kan dat met file_get_contents (http://php.net/manual/en/function.file-get-contents.php) $css= file_get_contents("/css/style.css");
echo "";
Verwijderde gebruiker
12 jaar geleden
Success, wrote ( ) to file (../css/site/style.css) Warning: file_get_contents(/css/style.css) [function.file-get-contents]: failed to open stream: No such file or directory in C:\xampp\htdocs\Portfolio - new\New Test version - css\oefentests\Untitled-2.php on line 19.. Hij heeft net mijn hele css verwijderd :(. Niet de pagina, wel alles wat er in stond.
Verwijderde gebruiker
12 jaar geleden
file_get_contents(/css/style.css) moet je even veranderen in file_get_contents(../css/site/style.css) En het lijkt erop dat je de inhoud van de textarea niet goed in de variabele stopt. $_POST["css"], zorg ervoor dat wat je tussen de aanhalingstekens hebt staan (in dit geval css) het zelfde is als wat je bij de name van de textarea hebt staan. ( )
Verwijderde gebruiker
12 jaar geleden
Ik heb alles precies hetzelfde gehouden: $filename = "../css/site/style.css";
$cssContent = $_POST["css"];//Haal de ingevoerde data uit het form en stop het in een variabele.
if (is_writable($filename)) {
if (!$handle = fopen($filename, "w")) {
echo "Cannot open file ($filename)";
exit;
}
if (fwrite($handle, $cssContent ) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}
echo "Success, wrote ($cssContent ) to file ($filename)";
fclose($handle);
} else {
echo "The file $filename is not writable";
} $cssContent= file_get_contents("../css/site/style.css");
echo ""; ?>
Verwijderde gebruiker
12 jaar geleden
Ah, je mist nog het 1 en ander. Nu word de code direct aangeroepen als je de pagina laad, en dan zit er nog niks in de $_POST["css"], waardoor hij hem opslaat, met niks erin. Verder mis je nog de form tags, waardoor je het bestand niet kan submitten. if (!empty($_POST["css"])) {//Als css niet leeg is (hij is ook leeg als de pagina voor de eerste keer laad)
$filename = "../css/site/style.css";
$cssContent = $_POST["css"]; //Haal de ingevoerde data uit het form en stop het in een variabele.
if (is_writable($filename)) {
if (!$handle = fopen($filename, "w")) {
echo "Cannot open file ($filename)";
exit;
}
if (fwrite($handle, $cssContent) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}
echo "Success, wrote ($cssContent ) to file ($filename)";
fclose($handle);
} else {
echo "The file $filename is not writable";
}
}
$cssContent = file_get_contents("../css/site/style.css");
?>


CSS CMS







Verwijderde gebruiker
12 jaar geleden
Aha, bedankt :). Nu werkt hij perfect. + 10

Weet jij het beter..?

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

0 / 5000
Gekozen afbeelding