Jump to content


Photo

First time .php tryng to creat simple login/register page


  • Please log in to reply
14 replies to this topic

#1 farkewie

farkewie
  • Members
  • PipPipPip
  • Advanced Member
  • 265 posts
  • LocationQueensland Australia

Posted 27 October 2006 - 04:24 PM

Ok...

I have created a small sight with a heap of photos of my friends and i out and about so everyone can see them (friends) not just the person who has the camera.

What i want is my index page to be a login/register page where the user can either log in with existing details or click register enter a certain amount of details eg: first name, last name and email pick a username and password

The e-mail gets sent to me me@mysite.com using my SMTP server mail.mysite.com i click a link and they get the confirmation email saying hey you good to go.

I install a gallery on my server (using the web interface) and that has the exact feature i want except is uses its upload feature where i just want it give people access to my pages.

Ive never worked with this sort of thing a point into he right direction with the easiest instructions would be appreciated

Thanks

Tyron


#2 jwk811

jwk811
  • Members
  • PipPipPip
  • Advanced Member
  • 714 posts

Posted 27 October 2006 - 04:27 PM

heres a complete membership tutorial which is what you are looking for http://www.phpfreaks...orials/40/0.php

#3 farkewie

farkewie
  • Members
  • PipPipPip
  • Advanced Member
  • 265 posts
  • LocationQueensland Australia

Posted 28 October 2006 - 03:39 AM

ok thanks heaps it should get me started only one question with  the phpadmin, i have downloaded and unziped it in my local machine i will ftp it  on to the server  do i put it in to its own dir or extract it  directly in to /public_html? ie;

www.mysite.com/public_html/phpadmin\(here)?

or

www.mysite.com/public.html/(here)?

thanks heaps for your help  im kind of strugleing with the learn as you go thing....

#4 jwk811

jwk811
  • Members
  • PipPipPip
  • Advanced Member
  • 714 posts

Posted 28 October 2006 - 03:15 PM

im not sure about that.. mine came with the hosting and domain i got.. anyone else know? and whos heaps? lol

#5 farkewie

farkewie
  • Members
  • PipPipPip
  • Advanced Member
  • 265 posts
  • LocationQueensland Australia

Posted 28 October 2006 - 04:36 PM

Ok.. found it after hours of playing trying to install it.

had a lot of trouble trying follow that tut though i have all the files i just dont know how to put them together to create a  web log in out of it..

is there anything i can install on to the server that covers it? i have found one but it just seems to allow users to register without me activating them?



#6 jwk811

jwk811
  • Members
  • PipPipPip
  • Advanced Member
  • 714 posts

Posted 29 October 2006 - 04:33 AM

feel free to email me with the problems you're having and i will try to help you out.. ive been through that whole thing with the membership and just a couple days ago i got it all to work just fine..

#7 farkewie

farkewie
  • Members
  • PipPipPip
  • Advanced Member
  • 265 posts
  • LocationQueensland Australia

Posted 29 October 2006 - 04:48 PM

hey thanks heaps for your help so far. i became i bit smarter.. i downloaded the php help.chm think its my new best friend.

i have everything working except for my login form. i have a very basic page so far and when i put in the username and password  it just comes back to the same page saying "Please enter ALL of the information!"

im not sure what im doing wrong? here is the code for the login page. (sorry about the size)


<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Tyspics - login</title>
<style type="text/css">
<!--
body {
	background-color: #0099FF;
}
.style1 {font-family: Georgia, "Times New Roman", Times, serif}
-->
</style></head>

<body>
<form action="checkuser.php" method="post">
  <table width="974" height="272" border="0" align="center">
    <tr>
      <td width="360">&nbsp;</td>
      <td width="305" height="41"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="200" height="75" hspace="50%" align="middle">
        <param name="movie" value="FLASH/logo.swf" />
        <param name="quality" value="high" />
        <embed src="FLASH/logo.swf" width="200" height="75" hspace="50%" align="middle" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>
      </object></td>
      <td width="295" rowspan="4">&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td height="38">Username:
	  <? echo $username; ?>
      <input type="text" name="textfield" /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>Password:
	  <? echo $password; ?>
      <input type="password" name="textfield2" /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td height="36" align="center"><input type="submit" name="Submit" value="Submit" /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td height="38"><div align="center">
        <h2><span class="style1"><a href="join_form.html">Register</a></span></h2>
      </div></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </table>
</form>
</body>
</html>




#8 farkewie

farkewie
  • Members
  • PipPipPip
  • Advanced Member
  • 265 posts
  • LocationQueensland Australia

Posted 30 October 2006 - 01:26 PM

ok so i now have that fixed it was this little piece here

<input type="password" name="textarea" />


it should have been..


<input type="password" name="password" />

but now i have the pages up but it is not authenticating me? and when it kicks me back to the login page it is displaying info about my table. feel free to go and give it a try let me know what you tink it is?

www.tyspics.com

#9 jwk811

jwk811
  • Members
  • PipPipPip
  • Advanced Member
  • 714 posts

Posted 30 October 2006 - 10:05 PM

how you doin so far? where are you at?

#10 farkewie

farkewie
  • Members
  • PipPipPip
  • Advanced Member
  • 265 posts
  • LocationQueensland Australia

Posted 31 October 2006 - 02:44 AM

getting there but im still stuck on the same thing.. i can register but i cant log in i put username and password in the text fields but when i press submitit comes back to the login page and says up the top left hand side
You could not be logged in! Either the username and password do not match or you have not validated your membership!
Please try again!


and next to the username box it echo's my username and above the password it shows the md5 hash??
same thin happens when i try the recover password function? feel free to go register and see what i mean.. <a href="http://tyspics.com/>here</a> thanks for all your help so far. never even looked at php before this but im starting to understand it i bit now.

i think it has something to do with my checkuser.php ill post the code because ive been staring at it for a day now and i just cant work it out.


<? 
/* Check User Script */ 
session_start();  // Start Session 

include 'db.php'; 
// Conver to simple variables 
$username = $_POST['username']; 
$password = $_POST['password']; 

if((!$username) || (!$password)){ 
    echo "Please enter ALL of the information! <br />"; 
    include 'login_form.html'; 
    exit(); 
} 
// Remove HTML (if any)

$Username = strip_tags("$Username");

$Password = strip_tags("$Password");

// Convert password to md5 hash 
$password = md5($password); 

// check if the user info validates the db 
$sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'"); 
$login_check = mysql_num_rows($sql); 

if($login_check > 0){ 
    while($row = mysql_fetch_array($sql)){ 
    foreach( $row AS $key => $val ){ 
        $$key = stripslashes( $val ); 
    } 
        // Register some session variables! 
        session_register('first_name'); 
        $_SESSION['first_name'] = $first_name; 
        session_register('last_name'); 
        $_SESSION['last_name'] = $last_name; 
        session_register('email_address'); 
        $_SESSION['email_address'] = $email_address; 
        session_register('special_user'); 
        $_SESSION['user_level'] = $user_level; 
         
        mysql_query("UPDATE users SET last_login=now() WHERE userid='$userid'"); 
         
        header("Location: login_success.php"); 
    } 
} else { 
    echo "You could not be logged in! Either the username and password do not match or you have not validated your membership!<br /> 
    Please try again!<br />"; 
    include 'login_form.html'; 
} 
?> 

thanks

#11 farkewie

farkewie
  • Members
  • PipPipPip
  • Advanced Member
  • 265 posts
  • LocationQueensland Australia

Posted 31 October 2006 - 03:33 PM

hey scrap that one too..lol i found a much better fix. ill post in case someone else has  my problems.
My was in the
$password = md5($password); 
just would not convert so i deleted it  removed 
the code in the register.php about create random password. and adjusted the code to allow the user to create a password now all i have to do is workout how to have a confirm password field and make it do an error check and also have the activate email sent to me where i click a link it activates the account and sends them an email with there user name password and link to site....(getting there).

oh i forgot the recover password still doesn't work when you press submit it just displays the email you types on the page next to the texfield.?? infact i think it does that when you enter the wrong paassword when logging in to??

thanks heaps for your help jwk811

#12 jwk811

jwk811
  • Members
  • PipPipPip
  • Advanced Member
  • 714 posts

Posted 01 November 2006 - 02:27 AM

you'll still have to do the md5($password); thing when the user creats the password.. the whole point of it is so its safe and cant be viewed by people.. i had a problem with that same thing and im wondering if its the same problem.. the md5 thing changes the db password into a 32 letter/numbers. You might have a space in that row for only 25 characters where it should be set to at least 32.. i think you should do it this way instead of having the user chose their own cause now as you said the recover password thing isnt working.. let me know if this was the problem.. and if you're still having trouble or not

#13 farkewie

farkewie
  • Members
  • PipPipPip
  • Advanced Member
  • 265 posts
  • LocationQueensland Australia

Posted 01 November 2006 - 02:51 AM

yeah thanks but i really want users to beable to choose there password so they can remember it.

i have got that so far now i am just trying to adjust the mailing so that i am the one that activates the membership.

i just did a test so i may have it now. but im still getting the problem of detailes  being made visible when there are user input errors:

screen shot: http://www.tyspics.com/screenshot.html

and the recover password function doesn't bring back errors anymore  but it sends and email to whatever email address you put in there but doesn't show the password? ill go back to that one soon i mainly just want to iron the bugs out of this register and activate.

#14 jwk811

jwk811
  • Members
  • PipPipPip
  • Advanced Member
  • 714 posts

Posted 01 November 2006 - 08:07 PM

if you give me some code and you tell me what you want to happen ill try and fix it up to do so

#15 farkewie

farkewie
  • Members
  • PipPipPip
  • Advanced Member
  • 265 posts
  • LocationQueensland Australia

Posted 02 November 2006 - 06:22 AM

Ok what im trying to do is this:


user registers-->i receive email with there name, email and username also a link to activate them. i click the link it activates them and sends them an email with there username and password that they chose and a link to login.  below are my code samples.

register.php (this bit seems to work it enters them in to the data base and sends me a link to activate]
<?php

include 'db.php'; 

// Define post fields into simple variables 
$first_name = $_POST['first_name']; 
$last_name = $_POST['last_name']; 
$email_address = $_POST['email_address']; 
$username = $_POST['username']; 
$password = $_POST['password'];
$info = $_POST['info']; 


/* Let's strip some slashes in case the user entered 
any escaped characters. */ 

$first_name = stripslashes($first_name); 
$last_name = stripslashes($last_name); 
$email_address = stripslashes($email_address); 
$username = stripslashes($username); 
$info = stripslashes($info); 
$password = stripslashes($password); 


/* Do some error checking on the form posted fields */ 

if((!$first_name) || (!$last_name) || (!$email_address) || (!$username)){ 
    echo 'You did not submit the following required information! <br />'; 
    if(!$first_name){ 
        echo "First Name is a required field. Please enter it below.<br />"; 
    } 
    if(!$last_name){ 
        echo "Last Name is a required field. Please enter it below.<br />"; 
    } 
    if(!$email_address){ 
        echo "Email Address is a required field. Please enter it below.<br />"; 
    } 
    if(!$username){ 
        echo "Desired Username is a required field. Please enter it below.<br />"; 
    } 
    include 'join_form.html'; // Show the form again! 
    /* End the error checking and if everything is ok, we'll move on to 
     creating the user account */ 
    exit(); // if the error checking has failed, we'll exit the script! 
} 
     
/* Let's do some checking and ensure that the user's email address or username 
 does not exist in the database */ 
  
 $sql_email_check = mysql_query("SELECT email_address FROM users  
             WHERE email_address='$email_address'"); 
 $sql_username_check = mysql_query("SELECT username FROM users  
             WHERE username='$username'"); 
  
 $email_check = mysql_num_rows($sql_email_check); 
 $username_check = mysql_num_rows($sql_username_check); 
  
 if(($email_check > 0) || ($username_check > 0)){ 
     echo "Please fix the following errors: <br />"; 
     if($email_check > 0){ 
         echo "<strong>Your email address has already been used by another member  
         in our database. Please submit a different Email address!<br />"; 
         unset($email_address); 
     } 
     if($username_check > 0){ 
         echo "The username you have selected has already been used by another member  
          in our database. Please choose a different Username!<br />"; 
         unset($username); 
     } 
     include 'join_form.html'; // Show the form again! 
     exit();  // exit the script so that we do not create this account! 
 } 
  
/* Everything has passed both error checks that we have done. 
It's time to create the account! */ 

/* Random Password generator.  
http://www.phpfreaks.com/quickcode/Random_Password_Generator/56.php 

We'll generate a random password for the 
user and encrypt it, email it and then enter it into the db. 
*/ 





$db_password = ($password); 

// Enter info into the Database. 
$info2 = htmlspecialchars($info); 
$sql = mysql_query("INSERT INTO users (first_name, last_name,  
        email_address, username, password, info, signup_date) 
        VALUES('$first_name', '$last_name', '$email_address',  
        '$username', '$db_password', '$info2', now())")  
        or die (mysql_error()); 

if(!$sql){ 
    echo 'There has been an error creating your account. Please contact the webmaster.'; 
} else { 
    $userid = mysql_insert_id(); 

//----------------------------------
$to = "tyron@tyspics.com"; /* change this! */
$subject = "Registration at tyspics.com'"; /* change this! */
$recipientSubject = "Registration at tyspics.com"; /* change this! */
$receiptMessage = "Thank you ".$firstName." Your account will be ready to go when i get home\n\n"
            ."--------CONTACT--------\n"
            ."First Name: ".$first_Name."\n"
            ."Last Name: ".$last_Name."\n"
            ."E-mail: ".$email_address."\n"
			."username: ".$username."\n"
			."To activate your membership,  
    please click here: http://www.tyspics.com/activate.php?id=$userid&code=$db_password";
mail($to, $recipientSubject, $receiptMessage);

}
include 'login_form.html';
?>

activate.php this aslo seems to work.. its activates them in the database

<?php
/* Account activation script */ 

// Get database connection 
include 'db.php'; 

// Create variables from URL. 

$userid = $_REQUEST['id']; 
$code = $_REQUEST['code']; 

$sql = mysql_query("UPDATE users SET activated='1' WHERE userid='$userid' AND password='$code'"); 

$sql_doublecheck = mysql_query("SELECT * FROM users WHERE userid='$userid' AND password='$code' AND activated='1'"); 
$doublecheck = mysql_num_rows($sql_doublecheck); 

if($doublecheck == 0){ 
    echo "<strong><font color=red>Your account could not be activated!</font></strong>"; 
} elseif ($doublecheck > 0) { 
    echo "<strong>Your account has been activated!</strong> You may login below!<br />"; 
    include 'mail.php'; 
 
}
?>

and then the one that just wont play.. mail.php (supposed to send user an email.

<?php
// Get database connection 
include 'db.php'; 

    $subject = "Your Membership at Tyspics.com"; 
    $message = "Dear $first_name $last_name, 
    OI! i'll get you a password when i get home. 
     
    You are two steps away from logging in and accessing our exclusive members area. 
     

     
    Once you activate your memebership, you will be able to login 
    with the following information: 
    Username: $username 
    Password: $password
     
    Thanks! 
    The Webmaster 
     
    This is an automated response, please do not reply!"; 
     
    mail($email_address, $subject, $message,  
        "From: tyspics Webmaster<tyron@tyspics.com>\n 
        X-Mailer: PHP/" . phpversion()); 
    echo 'Your membership information has been mailed to your email address!  
    Please check it and follow the directions!'; 


?> 

after all that the mail doesn't work but i don't get any errors so i have a feeling that its just not getting the email address properly. just a hunch???

Thank you




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users