Ok this is just a lil experiment by me to see if it could be done. This code could be built upon (or easily added into the likes of a forum etc) to give users control over the colours/text/layout basically anythign thats controled through CSS
anyways on with the code
first I set up a sql table called cu_css which has -
id [int, auto inc]
name [varchar 255]
css [text]
file [1] - index.php
File [2] - css.phpCode:<!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=iso-8859-1"> <title>Custom CSS</title> <link rel="stylesheet" href="css.php?id=<?php echo $_GET['id']; ?>" type="text/css" /> </head> <body> <h1>This is in H1 tags</h1> <br /> <h2>This is in H2 tags</h2> <br /> <p>This is in paragraph tags</p> <br /> <blockquote>This is in block quotes</blockquote> </body> </html>
File [3] - add_css.phpCode:<?php header("Content-Type: text/css"); //get required files require './inc/database.php'; require './inc/functions.php'; //get id from url $id = $_GET['id']; //check if id exsists if(!$id) { $id = "default"; } //make sure id only contains letters $check = isLetters($id); if(!$check) { $id = "default"; } //set up query $query = "select * from cu_css where name = '$id'"; //run query $result = mysql_query($query) or die( "Couldn't find CSS : ".mysql_error() ); //prepare to echo out css $row = mysql_fetch_array($result); echo $row['css']; ?>
File [4] - add_css_script.phpCode:<!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=iso-8859-1"> <title>Add CSS</title> </head> <body> <form name="form1" method="post" action="add_css_script.php"> <p> Name : <input name="name" type="text" id="name"> </p> <p>Css : <br> <textarea name="css" cols="50" rows="20" id="css"></textarea> </p> <p> <input type="submit" name="Submit" value="Submit"> <input type="reset" name="Reset" value="Reset"> </p> </form> </body> </html>
File [5] - ./inc/functions.phpCode:<?php //get required files require './inc/database.php'; require './inc/functions.php'; //get sent variables $name = $_POST['name']; $css = $_POST['css']; //check both exsist if(!$css || !$name) { echo "Please go back and complete both fields"; } else { $check = isLetters($name); if(!$check) { echo "Error name must only contain lower or uppercase letters"; die(); } else { //check if name exsists $query = "select * from cu_css where name = '$name'"; /* query the database */ $result = mysql_query($query); //name already exsists show error if (mysql_fetch_row($result)) { echo "That name is taken - try another"; } else { //remove any scripting $search = array ("'<script[^>]*?>.*?</script>'si", // Strip out javascript "'<[\/\!]*?[^<>]*?>'si", // Strip out HTML tags "'([\r\n])[\s]+'", // Strip out white space "'&(quot|#34);'i", // Replace HTML entities "'&(amp|#38);'i", "'&(lt|#60);'i", "'&(gt|#62);'i", "'&(nbsp|#160);'i", "'&(iexcl|#161);'i", "'&(cent|#162);'i", "'&(pound|#163);'i", "'&(copy|#169);'i", "'&#(\d+);'e"); // evaluate as php $replace = array ("", "", "\\1", "\"", "&", "<", ">", " ", chr(161), chr(162), chr(163), chr(169), "chr(\\1)"); //now lets apply it $css = preg_replace($search, $replace, $css); //right lets inset them into table $query = "INSERT INTO `cu_css` ( `id` , `name` , `css` ) VALUES ( '', '$name', '$css' )"; $result = mysql_query($query) or die( "Couldn't add CSS : ".mysql_error() ); echo "<SCRIPT LANGUAGE=\"JavaScript\">"; echo "window.location=\"index.php?id=$name\""; echo "</script>"; } } } ?>
File [6] - ./inc/database.phpCode:<?php //-------------------------------------------------------- // isLetters($element) // $element is string to be checked // returns FALSE if string contains anything other than letters // checks lower/uppercase //-------------------------------------------------------- function isLetters($element) { return !preg_match ("/[^A-z]/", $element); }
its not very pretty but it worksCode:<?php //setup database variables $user = ""; // your database username $pass = ""; // your database password $db = ""; // your database name //connect to mySQL server $link = @mysql_connect( "localhost", $user, $pass ); //if server can't be found then kill script if ( ! $link ) { die( "Couldn't connect to mySQL : ".mysql_error() ); } //select databse @mysql_select_db($db) //if database not found die or die ( "Couln't open $db: ".mysql_error() ); ?>
Basic principle is sound - and as i mentioned above should be easily adapted
you can find a version of it in my dev folder
to add a new css just go to add_css.php
comments?
v_Ln






Reply With Quote