[Openfirst-cvscommit] base/config auth.php,1.16,1.17 dbase.php,1.24,1.25 footers.php,1.12,1.13 globa
Brought to you by:
xtimg
From: Astronouth7303 <ast...@us...> - 2005-05-17 00:52:37
|
Update of /cvsroot/openfirst/base/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6300/config Modified Files: auth.php dbase.php footers.php globals.php headers.php style.css Log Message: fixes, login still doesn't work Index: auth.php =================================================================== RCS file: /cvsroot/openfirst/base/config/auth.php,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** auth.php 22 Mar 2005 22:22:35 -0000 1.16 --- auth.php 17 May 2005 00:52:23 -0000 1.17 *************** *** 33,43 **** // syntax: cryptpassword(password, encryption-type, salt); ! function cryptpassword ($password, $encryption = "md5", $salt="") { // Encrypt passwords using whatever algorithm is preferred. ! if ($encryption == "crc32") { return(crc32($password)); ! } elseif ($encryption == "sha1") { return(sha1($password)); ! } elseif ($encryption == "crypt") { return(crypt($password, $salt)); } else { --- 33,46 ---- // syntax: cryptpassword(password, encryption-type, salt); ! function cryptpassword ($password, $enctype = false, $salt="") { ! global $encryption; ! if ($enctype === false) $enctype = $encryption; ! // Encrypt passwords using whatever algorithm is preferred. ! if ($enctype == "crc32") { return(crc32($password)); ! } else if ($enctype == "sha1") { return(sha1($password)); ! } else if ($enctype == "crypt") { return(crypt($password, $salt)); } else { *************** *** 59,67 **** echo("<input name='referer' type='hidden' value='".$_SERVER["HTTP_REFERER"]."'/>"); } ! echo "<table width='200'> ! <tr> ! <th width='36%'> </th> ! <th width='64%'>Account Login</th> ! </tr> <tr> <td><div align='right'>Username:</div></td> --- 62,67 ---- echo("<input name='referer' type='hidden' value='".$_SERVER["HTTP_REFERER"]."'/>"); } ! echo "<table width='200' class='center' id='login'> ! <caption>Account Login</caption> <tr> <td><div align='right'>Username:</div></td> *************** *** 74,84 **** </tr> <tr> ! <td> </td> ! <td><input type=\"submit\" value=\"Login\" />"; ! if(!isset($GLOBALS["pass_save_disabled"])){ ! echo " <br /><input type=checkbox name=savepass id=savepass value=1 checked /><label for=savepass>Save Password</label>"; } echo("</td></tr> ! <tr><td> </td><td><a href=\"".$GLOBALS["basepath"]."/members/forgotten.php\">Forgot Password</a></td></tr> </table> </form><br /><br />"); --- 74,84 ---- </tr> <tr> ! <td colspan='2'><input type=\"submit\" value=\"Login\" />"; ! global $pass_save_disabled; ! if(!(isset($pass_save_disabled) && $pass_save_disabled)){ ! echo " <br /><input type=checkbox name=savepass id=savepass value=1 checked /><label for=savepass>Save Password</label>"; } echo("</td></tr> ! <tr><td colspan='2'><a href=\"".$GLOBALS["basepath"]."/members/forgotten.php\">Forgot Password</a></td></tr> </table> </form><br /><br />"); *************** *** 89,105 **** // they have, set variables indicating this. If they have not, make a // note of this so that components requiring them to log in are disabled. ! if((isset($_SESSION['authcode']))||(isset($_COOKIE["openFIRSTlogin"])&&!isset($pass_save_disabled))) { ! if(isset($_SESSION['authcode'])){ $authcode = $_SESSION['authcode']; ! }elseif(isset($_COOKIE["openFIRSTlogin"])&&$_COOKIE["openFIRSTlogin"]!=0){ $authcode = $_COOKIE["openFIRSTlogin"]; ! $_SESSION['authcode']=$authcode; //renew cookie ! setcookie("openFIRSTlogin",$authcode,time()+2592000,"/"); } else { ! $authcode=0; } $query = ofirst_dbquery("SELECT * FROM ofirst_members WHERE authcode='$authcode';"); ! if(ofirst_dberrno() == 0 && ofirst_dbnum_rows($query) == 1 && $authcode!=0 ) { $user = ofirst_dbfetch_object($query); } else { --- 89,110 ---- // they have, set variables indicating this. If they have not, make a // note of this so that components requiring them to log in are disabled. ! ! if ( (isset($_SESSION['authcode'])) || ! (isset($_COOKIE["openFIRSTlogin"]) && !$pass_save_disabled) ! ) { ! ! if (isset($_SESSION['authcode'])) { $authcode = $_SESSION['authcode']; ! } else if (isset($_COOKIE["openFIRSTlogin"]) && $_COOKIE["openFIRSTlogin"] != 0) { $authcode = $_COOKIE["openFIRSTlogin"]; ! $_SESSION['authcode'] = $authcode; //renew cookie ! setcookie("openFIRSTlogin", $authcode, time()+2592000, "/"); } else { ! $authcode = 0; } + $query = ofirst_dbquery("SELECT * FROM ofirst_members WHERE authcode='$authcode';"); ! if (ofirst_dberrno() == 0 && ofirst_dbnum_rows($query) == 1 && $authcode != 0 ) { $user = ofirst_dbfetch_object($query); } else { *************** *** 109,118 **** setcookie("openFIRSTlogin"," ",time()-3600,"/"); } ! if(isset($_POST["login"])){ $query = ofirst_dbquery("SELECT * FROM ofirst_members WHERE user='" . $_POST["login"] . "';"); ! if(ofirst_dberrno() == 0) { $user = ofirst_dbfetch_object($query); ! if(ofirst_dbnum_rows($query) == 1) { ! if(cryptpassword($_POST["password"], $encryption, $user->password) == $user->password) { session_register("authcode"); mt_srand(microtime() * 1000000); --- 114,123 ---- setcookie("openFIRSTlogin"," ",time()-3600,"/"); } ! if (isset($_POST["login"])){ $query = ofirst_dbquery("SELECT * FROM ofirst_members WHERE user='" . $_POST["login"] . "';"); ! if (ofirst_dberrno() == 0) { $user = ofirst_dbfetch_object($query); ! if (ofirst_dbnum_rows($query) == 1) { ! if (cryptpassword($_POST["password"], $encryption, $user->password) == $user->password) { session_register("authcode"); mt_srand(microtime() * 1000000); *************** *** 154,202 **** } - - if(ofirst_dberrno() != 0) { - // There was an error, check if it's because they didn't create the - // members table. - /* if(ofirst_dberrno() == 1146) { - echo("<p>Members table does not exist, therefore I am creating it.</p>"); - $query = ofirst_dbquery("CREATE TABLE ofirst_members ( - UNIQUE(user), - user CHAR(128), - firstname TINYTEXT, - lastname TINYTEXT, - lastseen TINYTEXT, - ip TINYTEXT, - password TEXT, - authcode TEXT, - membertype TINYTEXT, - division TINYTEXT, - year INTEGER, - email TEXT, - icq INTEGER, - aim TINYTEXT, - msn TINYTEXT, - yim TINYTEXT, - description TEXT, - signature TINYTEXT, - dateregistered TINYTEXT, - picturelocation TINYTEXT, - team INTEGER, - skills TEXT - );"); - if(ofirst_dberrno() == 0) { - // Insert a default user 'administrator' and set them to have - // administrative access and some password. - - $query = ofirst_dbquery("INSERT INTO ofirst_members (user, - membertype, password) VALUES('admin', 'administrator', '" . - cryptpassword("openfirst", $encryption) ."');"); - echo("<p>Members table has been created. Please login as <b>admin</b> using the password <b>openfirst</b> to set configuration options.</p>"); - showlogin(); - die(); - } else { - die(ofirst_dberror()); - } - }*/ - } if(isset($user->user)){ $query = "UPDATE ofirst_members SET lastseen='" . date("h:i:s M d, Y") . "' WHERE user='$user->user';"; --- 159,162 ---- *************** *** 204,211 **** unset($q); } - - /* This is here for legacy reasons, so as to make previous versions - * of certain modules function with the newer base modules. - */ - function membersmenu() { return(0); } ?> --- 164,166 ---- Index: globals.php =================================================================== RCS file: /cvsroot/openfirst/base/config/globals.php,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** globals.php 15 May 2005 22:18:21 -0000 1.11 --- globals.php 17 May 2005 00:52:23 -0000 1.12 *************** *** 57,60 **** --- 57,63 ---- require_once('dbase.php'); + require_once('auth.php'); + + require_once('sitesettings.php'); if(function_exists("ofirst_dbconnect") == false) { *************** *** 66,72 **** die('You really should upgrade PHP, seeing as you don't even have <a href="http://us2.php.net/manual/en/function.glob.php"><code>glob()</code></a>.'); } - - require_once('sitesettings.php'); - // Determine what module the user is viewing --- 69,72 ---- *************** *** 74,83 **** $currentmodule = substr($currentmodule, 1, strpos($currentmodule, '/', 2) - 1); - #FIXME: Use $fbasepath instead of getcwd() session_start(); - include('auth.php'); // Include the functions using glob(); foreach (glob("$fbasepath/config/functions/*.php") as $filename) { ! include($filename); } --- 74,81 ---- $currentmodule = substr($currentmodule, 1, strpos($currentmodule, '/', 2) - 1); session_start(); // Include the functions using glob(); foreach (glob("$fbasepath/config/functions/*.php") as $filename) { ! include_once($filename); } *************** *** 125,133 **** // Loop through the inclist and add them according to their paths foreach($inclist As $inc){ ! include("$fbasepath/$module->modulename/$inc"); } } else { // If there is only 1 include available then use this line to include it instead ! include("$fbasepath/$module->modulename/$module->includes"); } } --- 123,131 ---- // Loop through the inclist and add them according to their paths foreach($inclist As $inc){ ! include_once("$fbasepath/$module->modulename/$inc"); } } else { // If there is only 1 include available then use this line to include it instead ! include_once("$fbasepath/$module->modulename/$module->includes"); } } *************** *** 154,158 **** } ! if (!preg_match('/\A[a-zA-Z0-9]+\z/',session_id())) session_regenerate_id(); session_write_close(); --- 152,158 ---- } ! if (!preg_match('/\A[a-zA-Z0-9]+\z/',session_id())) { ! session_regenerate_id(); ! } session_write_close(); Index: headers.php =================================================================== RCS file: /cvsroot/openfirst/base/config/headers.php,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** headers.php 15 May 2005 22:17:31 -0000 1.24 --- headers.php 17 May 2005 00:52:23 -0000 1.25 *************** *** 19,28 **** <table class="nav1"> ! <tr> ! <td> <img src="<?php echo htmlentities($basepath); ?>/images/openfirst.png" alt="openFIRST Portal System" /> </td> </tr> <tr> ! <th id="topmenu" style="background-image: url('<?php echo htmlentities($basepath); ?>/images/back.gif');"> <?php if(ISSET($headers)){ --- 19,29 ---- <table class="nav1"> ! <tr id="toplogo"> ! <td> ! <img src="<?php echo htmlentities($basepath); ?>/images/openfirst.png" alt="openFIRST Portal System" /> </td> </tr> <tr> ! <th id="topmenu"> <?php if(ISSET($headers)){ Index: footers.php =================================================================== RCS file: /cvsroot/openfirst/base/config/footers.php,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** footers.php 14 Mar 2005 00:50:00 -0000 1.12 --- footers.php 17 May 2005 00:52:23 -0000 1.13 *************** *** 4,32 **** } ?> ! <hr width="80%" size="1px" style="border:1px" noshade> ! <table class="menu" width="100%" border="0" cellspacing="0" cellpadding="6"> ! <tr> ! <td class="menu" style="background=image: url('<?php echo("$basepath/images/"); ?>back-light.gif');"> ! <div> ! <div align="center">© Copyright 2002-2003 by <?php echo $title; ?>. ! All rights reserved.<?php if(isset($user->membertype)){if($user->membertype == "administrator"){ echo "<br><br>[ <a href='$basepath/config/index.php'>Administrator Options / Configuration Area</a> ]"; }} ?></div> ! </div> ! </td> ! </tr> ! <tr> ! <td class="menu"> ! <div> ! <div align="right"><a href= ! "http://openfirst.sourceforge.net"><img src="<?php echo("$basepath"); ?>/images/poweredby-small.png" ! width="177" height="30" border="0" alt="Powered by openFIRST Software - http://openfirst.sourceforge.net"></a><a href= ! "http://validator.w3.org/check?uri=http%3A//openfirst.sourceforge.net/"> ! <img src="<?php echo("$basepath"); ?>/images/w3c401.png" alt="Valid HTML 4.01" width="88" height="31" ! border="0"></a> </div> ! </div> ! </td> ! </tr> ! </table> ! ! <p> </p> ! </body> ! </html> --- 4,24 ---- } ?> ! <div id="footer"> ! <hr /> ! <div id="copyright" class="menu center"> ! © Copyright 2002-2003 by <?php echo $title; ?>. All rights reserved. ! </div> ! <?php ! if(isset($user->membertype) && $user->membertype == "administrator"){ ! echo "<div id=\"adiminlink\">[ <a href='".htmlentities($basepath)."/config/index.php'>Administrator Options / Configuration Area</a> ]</div>"; } ! ?> ! <div class="right menu"> ! <a class="logo" href="http://openfirst.sourceforge.net"> ! <img src="<?php echo htmlentities("$basepath"); ?>/images/poweredby-small.png" alt="Powered by openFIRST" /> ! </a> ! <a class="valid" href="http://validator.w3.org/check?uri=http%3A//openfirst.sourceforge.net/"> ! <img src="<?php echo htmlentities("$basepath"); ?>/images/w3c401.png" alt="Valid HTML 4.01" /> ! </a> ! </div> ! </div> ! </body></html> Index: dbase.php =================================================================== RCS file: /cvsroot/openfirst/base/config/dbase.php,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** dbase.php 16 May 2005 22:08:51 -0000 1.24 --- dbase.php 17 May 2005 00:52:23 -0000 1.25 *************** *** 285,291 **** ofirst_dbquery("CREATE DATABASE IF NOT EXISTS $sqldatabase;"); ofirst_select_db($sqldatabase); ! ofirst_dbquery("CREATE TABLE `ofirst_config` ( `modulename` varchar(25) NOT NULL default '', `label` VARCHAR(25), --- 285,293 ---- ofirst_dbquery("CREATE DATABASE IF NOT EXISTS $sqldatabase;"); + if (ofirst_dberror() != 0) return false; + ofirst_select_db($sqldatabase); ! $query = ofirst_dbquery("CREATE TABLE `ofirst_config` ( `modulename` varchar(25) NOT NULL default '', `label` VARCHAR(25), *************** *** 298,303 **** PRIMARY KEY (`modulename`), UNIQUE (`modulename`) - ) )"); /* copied from auth.php */ --- 300,305 ---- PRIMARY KEY (`modulename`), UNIQUE (`modulename`) )"); + if (ofirst_dberror() != 0) return false; /* copied from auth.php */ *************** *** 326,329 **** --- 328,333 ---- skills TEXT );"); + if (ofirst_dberror() != 0) return false; + if (ofirst_dberrno() == 0) { // Insert a default user 'administrator' and set them to have *************** *** 332,336 **** $query = ofirst_dbquery("INSERT INTO ofirst_members (user, membertype, password) VALUES('admin', 'administrator', '" . ! cryptpassword("openfirst", $encryption) ."');"); } /* End copy */ --- 336,341 ---- $query = ofirst_dbquery("INSERT INTO ofirst_members (user, membertype, password) VALUES('admin', 'administrator', '" . ! cryptpassword("openfirst") ."');"); ! if (ofirst_dberror() != 0) return false; } /* End copy */ Index: style.css =================================================================== RCS file: /cvsroot/openfirst/base/config/style.css,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** style.css 15 May 2005 23:46:19 -0000 1.4 --- style.css 17 May 2005 00:52:23 -0000 1.5 *************** *** 1,195 **** ! #adminmenu { ! color: white; ! } ! #adminmenu a:link { ! color: white; ! } ! #adminmenu a:visited { ! color: white; ! } ! #adminmenu a:active { ! color: white; ! } ! #adminmenu a:hover { ! color: white; ! } ! a:link { ! color: black; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: underline; ! } ! a:visited { ! color: black; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: underline; ! } ! a:active { ! color: black; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: underline; ! } ! a:hover { ! color: black; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: underline; ! } ! #topmenu { ! text-align: left; ! } ! #topmenu a:link { ! color: #cecece; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: none; ! } ! #topmenu a:visited { ! color: #bebebe; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: none; ! } ! #topmenu a:active { ! color: #cecece; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: none; ! } ! #topmenu a:hover { ! color: #bed8ff; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: none; ! } ! .nav1 { ! width:100%; ! border: none 0px; ! margin-left: -2px; ! margin-right: -2px; ! margin-bottom: 0; ! } ! .nav1 td, .nav1 th { ! margin: 0; ! padding: 6px; ! border: none 0px; ! } ! .nav1 tr { ! margin: 0px; ! padding: 2px; ! } ! .nav2 table { ! border-left:solid #999999 1px; ! border-right:solid #999999 1px; ! border-bottom:solid #999999 1px; ! margin-left:auto; ! margin-right:auto; ! } ! ! .center { ! margin-left:auto; ! margin-right:auto; ! text-align: center; ! } ! td { ! padding: 5px; ! } ! th { ! padding: 5px; ! } ! table.menu { ! border-left:0px; ! border-right:0px; ! border-bottom:0px; ! } ! td.menu { ! border-left:0px; ! border-right:0px; ! border-bottom:0px; ! } ! body { ! color: black; ! font-weight: bolder; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration:none; ! margin: 0px; ! padding: 2px; ! } ! td { ! color: black; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: none; ! } ! td.navigation { ! color: black; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: none; ! } ! th { ! background-color: #999999; ! color: #333333; ! background-image: url(../images/back-light.gif); ! } ! td.sub { ! background-color: #999999; ! color: #333333; ! background-image: url(../images/back-lighter.gif); ! } ! .menu.selected { ! color: red; ! text-decoration: underline; ! } ! ! .small { ! font-size:small; ! } ! fieldset { ! margin: 1em 1.5em; ! } ! LEGEND { font-size: 1.5em; font-weight: bold;} ! ! dl.setup dd { ! margin-left: 0; ! } ! dl.setup dd label { ! clear: left; ! font-weight: bold; ! width: 12em; ! float: left; ! text-align: right; ! padding-right: 1em; ! } ! dl.setup dt { ! clear: left; ! font-size: 0.8em; ! margin-left: 10em; ! /* margin-right: 200px; */ ! margin-bottom: 2em; ! } ! .error, .warning { ! color: red; ! } ! ul.plain { ! list-style: none; ! clear: both; ! margin-left: 12em; ! } ! dl.setup input:not([type=checkbox]) { ! width: 25em; ! } ! .bold { ! font-weight: bold; ! } ! .big { ! font-size: large; ! } ! --- 1,259 ---- ! #adminmenu { ! color: white; ! } ! #adminmenu a:link { ! color: white; ! } ! #adminmenu a:visited { ! color: white; ! } ! #adminmenu a:active { ! color: white; ! } ! #adminmenu a:hover { ! color: white; ! } ! a:link { ! color: black; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: underline; ! } ! a:visited { ! color: black; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: underline; ! } ! a:active { ! color: black; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: underline; ! } ! a:hover { ! color: black; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: underline; ! } ! #topmenu, caption { ! text-align: left; ! background-image: url(../images/back.gif); ! color: #cecece; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: none; ! } ! #topmenu a:link { ! color: #cecece; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: none; ! } ! #topmenu a:visited { ! color: #bebebe; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: none; ! } ! #topmenu a:active { ! color: #cecece; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: none; ! } ! #topmenu a:hover { ! color: #bed8ff; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: none; ! } ! #toplogo { ! text-align: left; ! } ! ! .nav1 { ! width:100%; ! border: none 0px; ! margin-left: -2px; ! margin-right: -2px; ! margin-bottom: 0; ! } ! .nav1 td, .nav1 th { ! margin: 0; ! padding: 6px; ! border: none 0px; ! } ! .nav1 tr { ! margin: 0px; ! padding: 2px; ! } ! ! .nav2 table { ! border-left:solid #999999 1px; ! border-right:solid #999999 1px; ! border-bottom:solid #999999 1px; ! margin-left:auto; ! margin-right:auto; ! } ! ! .center { ! margin-left: auto; ! margin-right: auto; ! text-align: center; ! } ! ! .right { ! margin-left: auto; ! margin-right: 0; ! text-align: right; ! } ! ! .left { ! margin-left: 0; ! margin-right: auto; ! text-align: left; ! } ! ! td { ! padding: 5px; ! } ! th { ! padding: 5px; ! } ! table.menu { ! border-left:0px; ! border-right:0px; ! border-bottom:0px; ! } ! td.menu { ! border-left:0px; ! border-right:0px; ! border-bottom:0px; ! } ! body { ! color: black; ! font-weight: bolder; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration:none; ! margin: 0px; ! padding: 2px; ! text-align: center; ! } ! td { ! color: black; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: none; ! } ! td.navigation { ! color: black; ! font-size: 12px; ! font-family: sans-serif; ! text-decoration: none; ! } ! th { ! background-color: #999999; ! color: #333333; ! background-image: url(../images/back-light.gif); ! } ! ! td.sub { ! background-color: #999999; ! color: #333333; ! background-image: url(../images/back-lighter.gif); ! } ! ! .menu.selected { ! color: red; ! text-decoration: underline; ! } ! ! .small { ! font-size:small; ! } ! ! fieldset { ! margin: 1em 1.5em; ! } ! ! LEGEND { ! font-size: 1.5em; ! font-weight: bold; ! } ! ! dl.setup { ! text-align: left; ! } ! dl.setup dd { ! margin-left: 0; ! } ! dl.setup dd label { ! clear: left; ! font-weight: bold; ! width: 12em; ! float: left; ! text-align: right; ! padding-right: 1em; ! } ! dl.setup dt { ! clear: left; ! font-size: 0.8em; ! margin-left: 10em; ! /* margin-right: 200px; */ ! margin-bottom: 2em; ! } ! .error, .warning { ! color: red; ! } ! ul.plain { ! list-style: none; ! clear: both; ! margin-left: 12em; ! } ! dl.setup input:not([type=checkbox]) { ! width: 25em; ! } ! bold { ! font-weight: bold; ! } ! big { ! font-size: large; ! } ! ! caption { ! text-align: center; ! font-size: medium; ! padding: .25em; ! font-weight: bold; ! } ! ! table.center caption { ! margin-left:auto; ! margin-right:auto; ! } ! ! hr { ! width: 80%; ! border: 1px; ! height: 1px; ! } ! ! #copyright { ! background=image: url(../images/back-light.gif); ! } ! ! #footer p { ! margin: 0; ! } ! ! .logo, .logo img, ! .valid, .valid img { ! border: 0; ! } |