jmrothermel Posted January 28, 2008 Share Posted January 28, 2008 Hi everyone, Im having a really hard time with this login script. It worked fine on the old servers - I moved servers and re-uploaded and now everytime I try to login to my site I get Fatal error: Cannot redeclare checkonline() (previously declared in /home/vchins/virtualchinchillas-www/functions.php:2) in /home/vchins/virtualchinchillas-www/functions.php on line 2 The code I am using for the login script is as follows: <? include("1header.php"); $username = addslashes($_POST['username']); $password = addslashes($_POST['password']); $authcode = addslashes($_POST['authcode']); $admincode = addslashes($_POST['admincode']); /*if ($admincode != "jmrothermel") {echo "<script>window.location='http://www.virtualchinchillas.com';</script>";}*/ if($username && $password && $authcode) { $check = mysql_num_rows(mysql_query("SELECT `username` FROM `members` WHERE `username`='$username' AND `password`='$password'")); if($check === 1) { $query = mysql_query("SELECT `validated` FROM `members` WHERE `username`='$username'"); extract(mysql_fetch_array($query)); switch ($validated) { case 0: //not validated echo "<script>window.location='validate.php?level=0&username=$username';</script>"; break; case 1: //validated if(setcookie("ipets",$username."||".$authcode,0)) { $numrows_total_members = mysql_query("select count(*) from `members`"); $counter_total_members = mysql_fetch_array($numrows_total_members); list ($isonline, $authcodeok, $counter_online) = checkonline($username, $authcode); switch (TRUE) { case ($isonline == 1 and $authcodeok == 1): //proceed echo "<script>window.location='1explore.php';</script>"; break; case ($isonline == 1 and $authcodeok == 0): //change info in serverdata.txt updateonline($username, $authcode); echo "<script>window.location='1explore.php';</script>"; break; case ($isonline == 0 and $authcodeok == 0): //log user in - insert info in serverdata.txt insertonline($username, $authcode); insertonlinetoday($username); echo "<script>window.location='1explore.php';</script>"; break; } } else { echo "Can't set cookie"; } break; case 2: //sent message echo "<script>window.location='validate.php?level=2&username=$username';</script>"; break; } } else { echo "Sorry, username/password mismatch!"; } } else { include('logheader.php'); $authcode = mt_rand(0, 100000); print "<h2>Login</h2><p><form action='1login.php' method='post'> Username<br><input type='text' name='username' size='20'><p> Password<br><input type='password' name='password size='20'><p> <!--Admin CODE<br><input type='text' name='admincode' size='20'><p>--> <input type='hidden' name='authcode' value='$authcode' /> <input type='submit' value=' Login '></form>"; } include("footer.php"); ?> Can anyone tell me what I might have wrong??? Im so confused ??? Quote Link to comment https://forums.phpfreaks.com/topic/88256-solved-help-with-login-script/ Share on other sites More sharing options...
cooldude832 Posted January 28, 2008 Share Posted January 28, 2008 well considering the error is in your functions.php file it be pretty hard to see things without looking at it. Quote Link to comment https://forums.phpfreaks.com/topic/88256-solved-help-with-login-script/#findComment-451591 Share on other sites More sharing options...
duclet Posted January 28, 2008 Share Posted January 28, 2008 Try changing all your include/require to include_once/require_once Quote Link to comment https://forums.phpfreaks.com/topic/88256-solved-help-with-login-script/#findComment-451592 Share on other sites More sharing options...
jmrothermel Posted January 28, 2008 Author Share Posted January 28, 2008 omg duh I didnt include the page causing the error. Here it is: <? function checkonline($username, $authcode) { $linha = file("serverdata.txt"); //username;authcode $totalonline = count($linha); //gets online users count $islogged = 0; $authcodeok = 0; for($i=0;$i<$totalonline;$i++) { //for each of the names in the file $vars = explode(";",$linha[$i]); if ($vars[0] === $username) { $islogged = 1; if ($vars[1] === $authcode) { $authcodeok = 1; } } } return array($islogged, $authcodeok, $totalonline); } function insertonlinetoday($username) { $linha = file("onlinetoday.txt", "r"); $today = date("Y-m-d"); $stripped = trim($linha[0], "\r\n"); if ($stripped == date("Y-m-d")) { //this is the correct date $f = fopen ("onlinetoday.txt", "a+",0); $txtstring = $username."\r\n"; fwrite($f,$txtstring,strlen($txtstring)); fclose($f); } else { //new day, unlink and start file over unlink("onlinetoday.txt"); $f = fopen ("onlinetoday.txt", "w+"); $txtstring = date("Y-m-d")."\r\n".$username."\r\n"; fwrite($f,$txtstring,strlen($txtstring)); fclose($f); } } function onlinetoday() { print "<table border=1 cellpadding=5 cellspacing=0><tr><td><center><b>Members who visited today</b></td></tr><tr><td></center> <img src='http://www.chinclub.net/update/smilies/smilie7.gif'> = Upgraded Member</td></tr><tr><td></center>"; $linha = file("onlinetoday.txt"); $linha2 = file("serverdata.txt"); $total = count($linha); $total2 = count($linha2); for ($i=1;$i<$total;$i++) { if (strlen(trim($linha[$i])) > 1) { //if is shown on both files, online img else, offline for ($j=0;$j<$total2;$j++) { $smalldata = explode(";",$linha2[$j]); if (trim($linha[$i]) == trim($smalldata[0])) { //match - prints user with online image print "<img src=online.gif><a href='http://www.virtualchinchillas.com/profile.php?action=profile&username="; echo trim($linha[$i])."'>".trim($linha[$i])."</a>"; break; } if ((trim($linha[$i]) != trim($smalldata[0])) and ($j == $total2 - 1)) { //no match, offline print "<img src=offline.gif><a href='http://www.virtualchinchillas.com/profile.php?action=profile&username="; echo trim($linha[$i])."'>".trim($linha[$i])."</a>"; } } //admin and upgrade piece below $sql = mysql_fetch_row(mysql_query("SELECT `upgrade`, `admin` FROM `members` WHERE `username`='".trim($linha[$i])."'")); if($sql[0] == 1) { print "<img src='http://www.chinclub.net/update/smilies/smilie7.gif'>"; } if($sql[1] == 1) { print "<b>ADMIN</b><img src='http://www.chinclub.net/update/smilies/smilie7.gif'>"; } } print "<br>"; } print "</center></td></tr></table>"; } function updateonline($username, $authcode) { $linha = file("serverdata.txt"); $total = count($linha); $fp = fopen("serverdata.txt","w+"); for ($i=0;$i<$total;$i++){ list($sd_user, $sd_authcode) = explode(";",$linha[$i]); if ($sd_user == $username){ $txtstring2 = $username.";".$authcode."\r\n"; fwrite($fp, $txtstring2, strlen($txtstring2)); } else { fwrite($fp,$linha[$i], strlen($linha[$i])); } } fclose($fp); } function removeonline($username, $authcode) { $linha = file("serverdata.txt"); $total = count($linha); for ($i=0;$i<$total;$i++){ list($sd_user, $sd_authcode) = explode(";",$linha[$i]); if ($sd_user == $username){ unset($linha[$i]); } if ($sd_user == "" or $sd_user == "\r\n"){ unset($linha[$i]); } } $fp = fopen("serverdata.txt","w+"); $txtstring2 .= implode("",$linha); fwrite($fp, $txtstring2, strlen($txtstring2)); fclose($fp); } function insertonline($username, $authcode) { $f = fopen ("serverdata.txt", "a+",0); $txtstring = $username.";".$authcode."\r\n"; fwrite($f,$txtstring,strlen($txtstring)); fclose($f); } function getusername() { $alldata = explode("||", $_COOKIE["ipets"]); return $alldata[0]; } function getauthcode() { $alldata2 = explode("||", $_COOKIE["ipets"]); return $alldata2[1]; } function validatenav() { $a = 0; //screwed up!!! if (isset($_COOKIE["ipets"])) { $linha = file("serverdata.txt"); //username;authcode $totalonline = count($linha); //gets online users count $alldata = explode("||", $_COOKIE["ipets"]); for($i=0;$i<$totalonline;$i++) { //for each of the names in the file $vardata = trim($linha[$i]); $newalldata = implode(";", $alldata); if ($vardata == $newalldata) { $a = 1; } } } return $a; } Quote Link to comment https://forums.phpfreaks.com/topic/88256-solved-help-with-login-script/#findComment-451600 Share on other sites More sharing options...
cooldude832 Posted January 28, 2008 Share Posted January 28, 2008 somehow some where you are redeclaring a function which you can't do that function checkonline (which I see being declared below) is being "created" so to speak when you include the functions file. If you retry to create any function with that exact name it produces the above stated error. Like duclet said require_once should fix this, but the issue I have is the document you should having the issue doesn't even reference said file so you must be hiding stuff making it hard for us to help you. Quote Link to comment https://forums.phpfreaks.com/topic/88256-solved-help-with-login-script/#findComment-451607 Share on other sites More sharing options...
jmrothermel Posted January 28, 2008 Author Share Posted January 28, 2008 See the problem is I took over the site from someone who was "so great with PHP" So now Im stuck trying to find where the error is occuring. Do you think it would be easier just to recreate the login script? Quote Link to comment https://forums.phpfreaks.com/topic/88256-solved-help-with-login-script/#findComment-451626 Share on other sites More sharing options...
laffin Posted January 28, 2008 Share Posted January 28, 2008 Look at the include('xxxx') statements in the files as said replace them with include_once('xxxx'); now look thru the files that were referenced in these includes and do the same thing. notice that the excrepts ya show us dun actually show the script that is causing the problem. Quote Link to comment https://forums.phpfreaks.com/topic/88256-solved-help-with-login-script/#findComment-451628 Share on other sites More sharing options...
cooldude832 Posted January 28, 2008 Share Posted January 28, 2008 See the problem is I took over the site from someone who was "so great with PHP" So now Im stuck trying to find where the error is occuring. Do you think it would be easier just to recreate the login script? No because the error is inside the function decelerations not this individual page odds are it is a reoccuring issue. Quote Link to comment https://forums.phpfreaks.com/topic/88256-solved-help-with-login-script/#findComment-451631 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.