FaLgoR 0 Report post Posted January 9, 2005 (edited) First, let's do register.php: <? include("conn.php"); // create a file with all the database connections if($do_register){ // if the submit button were clicked if((!$name) || (!$email) || (!$age) || (!$login) || (!$password) || (!$password2)){ print "You can't let any fields in blank.\n"; // if the user did not put some field exit; } $name = stripslashes($name); $email = stripslashes($email); $age = stripslashes($age); $login = stripslashes($login); $password = stripslashes($password); $password2 = stripslashes($password2); // this is for security reasons if($password != $password2){ // if passwords didn't match print "The password and the confirmation are not the same!\n"; exit; } $password = md5($password); mysql_query("INSERT INTO table (name,email,age,login,password) VALUES ('$name','$email',$age,'$login','$password')") or die (mysql_error()); print "Done!\n"; // if its okay, show this message exit; } // close the first "if" ?> <form action="register.php" method="post"> Name: <input type="text" name="name"><br> Email: <input type="text" name="email"><br> Age: <input type="text" name="age"><br> Login: <input type="text" name="login"><br> Password: <input type="password" name="password"><br> Password Again: <input type="password" name="password2"><br> <input type="submit" name="do_register" value="Sumbit"> </form> And now, login.php: <? include("conn.php"); if($do_login){ $login = stripslashes($login); // VERY IMPORTANT FOR SECURITY OF YOUR DATABASE DON'T ERASE IT $passwd = stripslashes($passwd); // VERY IMPORTANT FOR SECURITY OF YOUR DATABASE DON'T ERASE IT $check = mysql_query("SELECT * FROM table WHERE login='$login' LIMIT 1;"); $user = mysql_fetch_array($check); if($user[password] == md5($passwd)){ // if the writed password and the db password are the same... setcookie("login","$login",time()+360000); setcookie("pass","$passwd",time()+360000); // ...set the cookies... header("Location: userspage.php"); // ...and redirect to restrict page }else{ print "Login or password incorrects!\n"; exit; } } ?> <form action="login.php" method="post"> Login: <input type="text" name="login"><br> Passwd: <input type="password" name="passwd"> <input type="submit" name="do_login" value="Log-in!"> </form> And finally, userspage.php: <? if(isset($HTTP_COOKIE_VARS["login"])){ ?> Page contents here <? }else{ ?> This page is restrict for registered users only! <? } ?> Here we are, its a very simple login sistem and you can put more things if u want. Maybe latelly I make an administration page and put here to. If u found any problems with this code, tell me and I'll fix! \_ -------------------- Edit ------------------------- Field password2 was in type="text". Changed by type="password". Field "login" was name="name". This litle mistake caused very much problems! Sumbit button was wrong. I write type="sumbit". Change by type="submit". Edited January 13, 2005 by FaLgoR (see edit history) Share this post Link to post Share on other sites
mizako 0 Report post Posted January 9, 2005 Really nice FaLgor.I was asking myself for a long time how could i set a login system with php and you give the clue. Somethings about your script:- What is exactly conn.php and why is it necessary in register.php? Share this post Link to post Share on other sites
cragllo 0 Report post Posted January 9, 2005 WOW! that is just what I was looking for... Thank you, I know you must be fed up of me asking you things all the time, But there are a few more pages tat would be a good idea.. profile.php to view each members profile it would be something like profile.php?id=2 Also edit.php do thst they can chnage thier info... (excluding their username, they must request for this to happen) Share this post Link to post Share on other sites
FaLgoR 0 Report post Posted January 9, 2005 hehehe, I start this topic because I saw you were needing it :rolleyes:Latelly I'll try to complete this topic by posting an administration page, where you can see the members, edit, delete and send them e-mails. Oh, yes, and a page where the members can see their profiles and edit it, just wait a bit Share this post Link to post Share on other sites
cragllo 0 Report post Posted January 9, 2005 Ok, I will, thanks,You are the best thing since PHP itself! Share this post Link to post Share on other sites
FaLgoR 0 Report post Posted January 10, 2005 mizako conn.php is the file with all the connection setings. Ex.<?$host = 'localhost';$user = 'root';$pass = 'pass';$dbname = 'members';mysql_connect($host,$user,$pass);mysql_select_db($dbname);?>So, when you in include this file on your pages, it will do the connection with the database. If would you have to put this code on all your pages, you would lose loads of time, so using includes() will does your work easilly. Share this post Link to post Share on other sites
FaLgoR 0 Report post Posted January 10, 2005 Now, let's complete our login sistem. First, lets make an page which will verify if the logged member is an admin. Oh yes, and you will have to put one more columns on the member's table, "level", and put "Member" as the default value. verify.php: <? include("conn.php"); // include page with the database connection $cookie = $HTTP_COOKIE_VARS; // to reduce the var's name ) if($cookie[login] && $cookie[pass]){ $login = $cookie[login]; $pass = $cookie[pass]; $usrquery = mysql_query("SELECT * FROM members WHERE nick='$login' AND password='$pass';") or die (mysql_error()); // search for the user $user = mysql_fetch_array($usrquery); if($user[level] != 'Admin') header("Location: notfound.htm"); // if the user is not an admin, redirect to an error page } ?> admin.php: <? include("verify.php"); // it will verify if the user is an admin ?> <!-- Here, the table with all the members --> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <form method="post" action="members.php"> <table width="100%" border="0" cellspacing="3" cellpadding="0"> <tr bgcolor="#333333"> <th width="6%" class="header"><font size="1">Editar</font></th> <th width="1%" class="header"><font size="1">ID</font></th> <th width="24%" class="header"><font size="1">Name</font></th> <th width="13%" class="header"><font size="1">Age</font></th> <th width="40%" class="header"><font size="1">E-Mail</font></th> <th width="11%" class="header"><font size="1">Details...</font></th> </tr> <? $query = mysql_query("SELECT * FROM members ORDER BY id;"); if(!mysql_fetch_array($query)) // If there is no members print "<tr><td align=\"center\" colspan=\"7\"><font color=\"#FFFFFF\" size=\"2\"><b>Sorry, there is no members registered.</b></font></td></tr>\n"; // Show you a message while($profiles = mysql_fetch_array($query)) { ?> <tr bgcolor="#666666"> <td> <div align="center"><input type="checkbox" name="id[]" value="<?=$profiles[id]?>"></div></td> <td> <div align="center"><?=$profiles[id]?></div></td> <td> <div align="center"><?=$profiles[name]?></div></td> <td> <div align="center"><?=$profiles[age]?></div></td> <td> <div align="center"><?=$profiles?></div></td> <td> <div align="center"><a href="profiles.php?op=edit&id=<?=$profiles[id]?>" target="_blank">More info...</a></div></td> </tr> <? } ?> </table> </td> </tr> </table> </form> Done, now, profiles.php (used to see and edit member information): <? include("verify.php"); // always put this page, or everybody would have access to this page function Update (&$member, $table, $data) { global $id; $items = explode(" ",$data); $update = ""; $i = 0; while ($tmp = $items[$i++]) { $data = $member[$tmp]; if (is_numeric($data)) $update .= "$tmp=$data"; else { sqlQuotes($data); $update .= "$tmp='$data'"; } if ($items[$i]) $update .= ","; } mysql_query("UPDATE $table SET $update WHERE id=$member[id];"); } // this function is really nice!! switch($op){ case 'edit': // if you're trying to edit/see info $profile = mysql_fetch_array(mysql_query("SELECT * FROM members WHERE id=$id;")); // save the user informations on an variable ?> <!-- now, lets show an table --> <form action="profiles.php?op=doedit&memberid=<?=$profile[id]?>" method="post"> <table width="100%" border="0" cellspacing="3" cellpadding="0"> <tr> <td width="25%"><font color="#FFFFFF">ID</font></td> <td width="75%"><input name="id" type="text" id="id" value="<?=$profile[id]?>" size="2"></td> </tr> <tr> <td><font color="#FFFFFF">Name</font></td> <td><input name="name" type="text" id="nome" value="<?=$profile[name]?>" maxlength="32"></td> </tr> <tr> <td><font color="#FFFFFF">Age</font></td> <td><input name="age" type="text" value="<?=$profile[age]?>" maxlength="32"></td> </tr> <tr> <td><font color="#FFFFFF">Country</font></td> <td><input name="country" type="text" id="estado" value="<?=$profile[country]?>" size="2" maxlength="2"></td> </tr> <tr> <td><font color="#FFFFFF">City</font></td> <td><input name="city" type="text" id="cidade" value="<?=$profile[city]?>"></td> </tr> <tr> <td><font color="#FFFFFF">ICQ</font></td> <td><input name="icq" type="text" id="icq" value="<?=$profile[icq]?>"></td> </tr> <tr> <td height="22"><font color="#FFFFFF">MSN</font></td> <td><input name="msn" type="text" id="msn" value="<?=$profile[msn]?>"></td> </tr> <tr> <td><font color="#FFFFFF">HP</font></td> <td><input name="hp" type="text" id="hp" value="<?=$profile[hp]?>" size="40"></td> </tr> <tr> <td><font color="#FFFFFF">E-mail</font></td> <td><input name="email" type="text" id="email" value="<?=$profile?>" maxlength="60"></td> </tr> <tr> <td colspan="2"> </td> </tr> <tr> <td colspan="2"><div align="center"> <input type="submit" value="Save"> <input type="reset" value="Reset"> </div></td> </tr> </table> </form> <? break; case 'doedit': if(!$memberid) return; $profile[name] = $name; $profile[age] = $age; $profile[country] = $country; $profile[city] = $city; $profile[icq] = $icq; $profile[msn] = $msn; $profile[hp] = $hp; $profile = $email; Update($profile,"members","name age country city icq msn hp email"); mysql_query("UPDATE members SET id=$id WHERE id=$memberid;"); // update user's id EndNow("Details saved!<br><br><a href=\"admin.php\">Back</a>"); break; } ?> Done ! I did not tested this script, so, if there is something wrong tell me. But I think it will give you some idea that how to do an administration page! Next post I'll show you how to do an page where the members can change their details (but I think, after saw this post, you will not have problems to do it). I hope I have helped you all! =D Share this post Link to post Share on other sites
cragllo 0 Report post Posted January 10, 2005 (edited) You missed out the </form> near the end of admin.phpAnd I added aim (AOL instant messenger) to profiles.php and also added the other fields to the database...EDIT: error in login.php Warning: Cannot modify header information - headers already sent by (output started at /home/cragllo/public_html/new/login.php:8) in /home/cragllo/public_html/new/login.php on line 30Warning: Cannot modify header information - headers already sent by (output started at /home/cragllo/public_html/new/login.php:8) in /home/cragllo/public_html/new/login.php on line 31Warning: Cannot modify header information - headers already sent by (output started at /home/cragllo/public_html/new/login.php:8) in /home/cragllo/public_html/new/login.php on line 33 code on those lines: 29 to 39 if($check){ // if $check is true...[/br]setcookie("login","$login",time()+360000);[br]setcookie("pass","$passwd",time()+360000);[/br]// ...set the cookies...[br]header("Location: userspage.php"); // ...and redirect to restrict page[/br]}else{[br]print "Login or password incorrects!\n";[/br]exit;[br]}[/br]}?> Edited January 10, 2005 by cragllo (see edit history) Share this post Link to post Share on other sites
FaLgoR 0 Report post Posted January 11, 2005 please, copy line 8 here to. Share this post Link to post Share on other sites
cragllo 0 Report post Posted January 11, 2005 (edited) lines 5-10 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">[/br]<link href="../style.css" rel="stylesheet" type="text/css">[br]<title>SPONK INDUSTRIES - LOGIN</title>[/br]<style type="text/css">[br]<!--[/br].style1 { Is there any way to stop Dreamweaver MX 2004 putting in styles automatically, all the font sizes are pixels now Edited January 11, 2005 by cragllo (see edit history) Share this post Link to post Share on other sites
odomike 0 Report post Posted January 11, 2005 Exactly what I have been looking for. Thanks for all those codes FalGor. I have been thinking of how I am going to insert a login code in my homepage but that have really given me a hell of a hard work and I have not been able to make it out yet.Thanks man. Share this post Link to post Share on other sites
krap 0 Report post Posted January 11, 2005 thankyou very very much!!!!!! i have been looking for a script like that for ages.but since i am new to php could somebody tell me the names of the databases and tables etc i would need to make. i would really appreciate it! thanks!! Share this post Link to post Share on other sites
cragllo 0 Report post Posted January 11, 2005 maye ba a data base calles login and a table called members, with to following fields:id bigint auto_incrementnameemailagecountrycityicqmsnhploginpasswordlevel default value: Member Share this post Link to post Share on other sites
krap 0 Report post Posted January 12, 2005 thanks. now i have another prob.. what is wrong with my registration page?http://forums.xisto.com/no_longer_exists/ i put things in but it says i shouldnt leave any blank... please help thanks Share this post Link to post Share on other sites
FaLgoR 0 Report post Posted January 12, 2005 if you want an page where the members can view and edit their account details, just copy profiles.php of the administration page, erase the line including verify.php and put this code in the place where the include was:include("conn.php"); // include page with the database connection$cookie = $HTTP_COOKIE_VARS; // to reduce the var's nameif($cookie[login] && $cookie[pass]){$login = $cookie[login];$pass = $cookie[pass];if(!isset($cookie["login"])) header("Location: denied.htm"); // if the user is not logged in, redirect to an error page}that's all, if you think I've forgot some important thing here, tell me and I'll try to make it! =]\_ Share this post Link to post Share on other sites