Jump to content
xisto Community
FaLgoR

Login System Lets do it :)

Recommended Posts

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 by FaLgoR (see edit history)

Share this post


Link to post
Share on other sites

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

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

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

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

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 :rolleyes:)

 

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

You missed out the </form> near the end of admin.php


And 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 30
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 31

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 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 by cragllo (see edit history)

Share this post


Link to post
Share on other sites

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 :rolleyes:

Edited by cragllo (see edit history)

Share this post


Link to post
Share on other sites

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

thankyou very very much!!!!!! :rolleyes: 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

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

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.