daredavil07
Journeyman
heto, complete and 100% working (and kasama na rin yung password encryption).
Ikaw na lang maglagay ng validation sa form.
ITO YUNG database TABLE structure ko (dinagdag ko lang yung First Name and Last Name, pampaganda)
Code:CREATE TABLE `users` ( `id` int(11) NOT NULL, `firstname` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `lastname` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `username` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `encrypted_password` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `privilege` tinyint(1) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ITO YUNG login in page (isang FORM para sa login, at isang FORM para sa creation ng new user)
Filename ko lang "index.php"
Code:<?php session_start(); /** * Database connection */ define('SERVER', "localhost"); define('USERNAME', "root"); define('PASSWORD', "root"); define('DATABASE', "crud_db"); $connection = new mysqli(SERVER,USERNAME,PASSWORD,DATABASE); if($connection->connect_error){ die("Connection failed: " . $conn->connect_error); } else { $_GLOBALS['dbcon'] = $connection; //optional style echo "Connected successfully"; } /** end of database connection **/ /** * This code will insert a new user into the database * Take note of the password_hash (it encrypt password before storing to database) */ if(isset($_POST['createuser'])){ $firstName = $_POST['firstname']; $lastName = $_POST['lastname']; $username = $_POST['username']; $password = $_POST['password']; //encryption option 1 (PHP 5.5) $password = password_hash($password,PASSWORD_DEFAULT); //encryption option 2 (PHP 5.5) //$password = password_hash($password,PASSWORD_BCRYPT, ['cost'] => 10); $query = "INSERT INTO users (firstname,lastname,username,encrypted_password) "; $query .= "VALUES ('$firstName','$lastName','$username','$password')"; $result = mysqli_query($connection,$query); } /** end of user creation/insertion **/ /** * Logging in prompt * To test. */ if(isset($_POST['login'])){ $username = $_POST['username']; $password = $_POST['password']; $query = "SELECT * FROM users WHERE username='$username' "; $result = mysqli_query($connection, $query); if($result){ while($row=mysqli_fetch_assoc($result)){ if( password_verify($password,$row['encrypted_password']) ){ $_SESSION['username'] = $row['username']; $_SESSION['privilege'] = $row['privilege']; header("Location: main.php"); } } } } ?> <!DOCTYPE html> <html> <head> <title>Login page</title> </head> <body> <p>Log in:</p> <form action="index.php" method="POST"> USERNAME:<input type="text" name="username"> <br> PASSWORD:<input type="password" name="password"> <br> <input type="submit" name="login"> </form> <br><br> <p>Create User:</p> <form action="index.php" method="POST"> First Name<input type="text" name="firstname"> <br> Last Name<input type="text" name="lastname"> <br> Username<input type="text" name="username"> <br> Password:<input type="password" name="password"> <br> <input type="submit" name="createuser"> </form> </body> </html>
ITO NAMAN yung redirection page KUNG valid yung user name ang password (header location page)
Para lang ma-test kung nakukuha niya yung username and rights from database.
Filename ko "main.php"
Code:<?php session_start(); echo 'Welcome, ' . $_SESSION['username']; echo '<br>'; echo 'You have level '. $_SESSION['privilege'] . ' rights.'; ?> <!DOCTYPE html> <html> <head> <title></title> </head> <body> </body> </html>
***TAKE NOTE: session_start() needs to be ALWAYS on the very top of the code. Siya lagi yung unang unang code. Kung hindi, hindi gagana ang session.
***Ikaw na lang maglagay ng validation sa HTML form at saka sa php code.
***INVITATION KO SA LAHAT****
JOIN "SeriouslyJava" group kung gusto matuto ng Java Object Oriented Programming...lalo na kung nangangamote kayo sa Java.![]()
Hi Sir codyscott , sinubukan ko rin po ito sir..medyo na lula lang ako..
Ito lang po muna ginamit ko para masubukan lang yung session rights:
Login Page:
Code:
<html>
<body>
<form method="post" action="#">
<strong>Username: </strong><input type="text" id="user" name="user" placeholder="Enter here.."/><br>
<strong>Password: </strong><input type="password" id="pass" name="pass" placeholder="Enter here.."/><br><br>
<input type="submit" id="submit" name="submit" value="Login" class="button"/>
</form>
</div>
<?php
session_start();
$conn = mysqli_connect("localhost", "root", "", "account");
if (mysqli_connect_errno())
{
echo "Failed connecting to database: " . mysqli_connect_error();
}
if(isset($_POST['submit'])){
$user = $_POST['user'];
$pass = $_POST['pass'];
$query = "SELECT * FROM log WHERE user='$user' ";
$result = mysqli_query($conn, $query);
if($result){
while($row=mysqli_fetch_assoc($result)){
if( password_verify($pass,$row['pass']) ){
$_SESSION['user'] = $row['user'];
$_SESSION['rights'] = $row['rights'];
header("Location: main.php");
}
}
}
}
?>
</body>
</html>
main.php
Code:
<?php
session_start();
error_reporting(0);
$rights=$_SESSION['rights'];
$user=$_SESSION['user'];
//if($user==true){
?>
<!DOCTYPE html>
<html>
<body>
<strong style="color: blue;">Username: </strong><?php echo $_SESSION['user']; ?></br>
<strong style="color: blue;">Rights: </strong><?php echo $_SESSION['rights']; ?>
</body>
</html>
Ano kaya problema nito Sir.


