pixelsoul Posted April 21, 2006 Share Posted April 21, 2006 Well I am a php n00b heh, and I wanted to make a login page that authenticated users from a MySql database. I was just wondering if you all could look at the code and tell me what might be wrong with it. I do not get any php errors but also nothing shows on the page from the function like the login fields. I know I probably missed one small part but I seemed to have hit a road block. I just need some help in understanding how to connect the dots. Here is the code[code]<?php session_start(); ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>User Login</title> </head> <body> <?php function login_form(){//function that when called outputs the login form echo "<form action=\"index.php\" method=\"POST\"><h3>System Login</h3>User Name: <input type=\"text\" name=\"user_name\"><br>Password : <input type=\"password\" name=\"password\"><br><input type=\"submit\" name=\"submit\" value=\"Login\"><br></form>"; }if (isset($_POST['username'])) { $inputusername=$_POST['username']; $inputpassword=$_POST['password']; $host="";//mysql host $user="";//mysql username $pass="";//mysql password for the username $database="";//name of the database $connection=mysql_connect($host, $user, $pass) or die(mysql_error());//connect to db $db=mysql_select_db($database, $connection) or die(mysql_error());//select database $sql = "SELECT password FROM users WHERE username='$inputusername'";//the query $result = mysql_query($sql) or die("Incorrect username - <a href=\"index.php\">try again</a>");//run the query, if it can't find a user output error message and link to try login again $row=mysql_fetch_array($result);//get an array from the row list($dbpassword)=$row;//get $dbpassword out of the array if ($dbpassword == $inputpassword) {//if the password they entered is correct for that username //Logged in $_SESSION['username'] = $username;//start session for user to allow access to protected pages echo "You are now logged in"; } else { echo "Incorrect password<br/>"; login_form(); } } ?> </body> </html> [/code]thanks for the help. Link to comment https://forums.phpfreaks.com/topic/8092-function-not-working-properly/ Share on other sites More sharing options...
Orio Posted April 22, 2006 Share Posted April 22, 2006 Why dont you try and do it this way:[code]<?php session_start(); ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>User Login</title> </head> <body> <?php function login_form(){//function that when called outputs the login form echo "<form action=\"index.php\" method=\"POST\"><h3>System Login</h3>User Name: <input type=\"text\" name=\"user_name\"><br>Password : <input type=\"password\" name=\"password\"><br><input type=\"submit\" name=\"submit\" value=\"Login\"><br></form>"; }if (isset($_POST['username'])) { $inputusername=$_POST['username']; $inputpassword=$_POST['password']; $host="";//mysql host $user="";//mysql username $pass="";//mysql password for the username $database="";//name of the database $connection=mysql_connect($host, $user, $pass) or die(mysql_error());//connect to db $db=mysql_select_db($database, $connection) or die(mysql_error());//select database $sql = "SELECT * FROM users WHERE username='$inputusername' AND password='$inputpassword'";//the query $result = mysql_query($sql) or die("Incorrect username - <a href=\"index.php\">try again</a>");//run the query, if it can't find a user output error message and link to try login again $rows=mysql_num_rows($result); if($rows==1){ //Logged in $_SESSION['username'] = $username;//start session for user to allow access to protected pages echo "You are now logged in"; } else { echo "Incorrect password<br/>"; login_form(); } } ?> </body> </html> [/code]Instead of what you did, this script checks if there's a row with a username and passwords, and if there's one, continue, else its wrong.Orio. Link to comment https://forums.phpfreaks.com/topic/8092-function-not-working-properly/#findComment-29567 Share on other sites More sharing options...
Barand Posted April 23, 2006 Share Posted April 23, 2006 Pass the variables to your function[code]function login_form($u,$p){ //function that when called outputs the login form echo "<form action=\"index.php\" method=\"POST\"> <h3>System Login</h3> User Name: <input type=\"text\" name=\"username\" value=\"$u\"><br> Password : <input type=\"password\" name=\"password\" value=\"$p\"><br> <input type=\"submit\" name=\"submit\" value=\"Login\"><br> </form>";}//call withlogin_form ($inputusername, $inputpassword);[/code] Link to comment https://forums.phpfreaks.com/topic/8092-function-not-working-properly/#findComment-29761 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.