Scripts

Uitgebreide login en registratie met database

Zat een door deze forum heen te kijken, en ik zag niet zo'n script. Dit is niet letterlijk kopiëren en plakken. Je moet alles echt in je eigen gegevens zetten. Om duidelijke te maken waar, heb ik het in comments gezet. Het is geschreven in PDO, geen Mysql/Mysqli dus. (Een upload fout, het begint bij pdo.php)

loginPDO.php
<?php  
					   
//DATABASE CONNECTIE, VERANDER NAAR EIGEN GEGEVENS
session_start();  
$host = "localhost";
$username = "root";
$password = "root";  
$database = "paneel";  
$message = "";  
					   
try  {  
	$connect = new PDO("mysql:host=$host; dbname=$database", $username, $password);  
    $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
					
	$username = $_POST["username"];
					
	 //VERANDER NAAAR EIGEN POST NAME 
		 if(empty($_POST["username"]) || empty($_POST["password"]))  {  
         	echo 'All fields required';  
         }
			
          else {
			  //QUERY EN ARRAY REGEL 27 NAAR EIGEN GEGEVENS VERANDEREN
             $query = "SELECT * FROM Gebruikers WHERE username = :username AND password = :password";  
              $statement = $connect->prepare($query);  
              $statement->execute(  
                 array(  
                   'username'     =>     $_POST["username"],  
                   'password'     =>     $_POST["password"]  
                     ));  
                $count = $statement->rowCount();
			  
                if($count > 0)  
                {  
					//LEIDT NAAR DE JUISTE PAGINA
					header("Refresh:0; url=veilig.php");
					//END
                }  
                else {  
                   echo 'Wrong data'; 
                }  
			}  
		}   

catch(PDOException $error)  {  
	$message = $error->getMessage();  
} 
					   
//SESSION CODE'S, NIET NODIG MAAR HANDIG. ALS JE DIT NIET GEBRUIKT, WERKEN SOMMIGE DINGEN NIET
$username = $_POST['username'];
session_start();
$_SESSION['username'] = $username;

?>
pdo.php
<?php

//ALS GEBRUIKER INGELODS IS, LEIDT HIJ NAAR DE VEILIGE PAGINA

	session_start();

		if(isset($_SESSION['username'])) {
			header("Refresh:0; url=veilig.php");
		}

		else {
			
		}

?>

<!DOCTYPE html>
<html>
    <head>
        <title>PDO login and Registration</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
		<!---INSERT--->
		<h1>Insert</h1>
		
<?php
//REGISTRATIE PHP CODES
if(isset($_POST['insert']))
{
    try {

        //DATABASE CONNECTIE, HIER VERANDER JE NAAR JE EIGEN GEGEVENS

        $pdoConnect = new PDO("mysql:host=localhost;dbname=paneel","root","root");
    } catch (PDOException $exc) {
        echo $exc->getMessage();
        exit();
    }

    //DIT ZIJN DE VARIABLEN. ALLEEN MAAR $_POST[], KIJK DUS NAAR DE FORM NAAM EN VERANDER EVENTUEEL
    $ID = $_POST['ID'];
    $username = $_POST['username'];
	$password = $_POST['password'];
    $email = $_POST['email'];
    
    //PDO QUERY, `Gebruikers` NAAR JE EIGEN TABEL VERANDEREN EN DE WAARDE EVENTUEEL OOK.

    $pdoQuery = "INSERT INTO `Gebruikers`(`ID`, `username`, `password`, `email`) VALUES (:ID,:username,:password,:email)";
    
    $pdoResult = $pdoConnect->prepare($pdoQuery);
    
    $pdoExec = $pdoResult->execute(array(":ID"=>$ID,":username"=>$username,":password"=>$password,":email"=>$email,));
    
       //KIJKT OF JE GEREGISTREERD BENT
	
    	if($pdoExec) {
        	echo 'Data Inserted';
			header("Refresh:5; url=pdo.php");
    	}
		
		else {
        	echo 'Data Not Inserted';
    	}
	}

		?>
		<!--FORM VOOR REGISTRATIE-->
        <form action="" method="post">
            <input type="text" name="ID" required placeholder="ID"><br><br>
            <input type="text" name="username" required placeholder="username"><br><br>
			<input type="text" name="password" required placeholder="password"><br><br>
            <input type="text" name="email" required placeholder="email"><br><br>
            <input type="submit" name="insert" value="Insert Data">
        </form>
		<!--LOGIN, VERANDER NAAR EIGEN GEGEVENS--->
		<h1>LOGIN</h1>
		           <div class="container" style="width:500px;"> 
                <h3 align="">PHP Login Script using PDO</h3><br /> 

				<form action="" method="post">  
                     <label>username</label>  
                     <input type="text" name="username" class="form-control" />  
                     <br />  
                     <label>password</label>  
                     <input type="password" name="password" class="form-control" />  
                     <br />  
                     <input type="submit" name="login" value="Login" />  
                </form>  
					   <?php
					   //LEIDT JE NAAR DE CHECK VOOR GEGEVENS
					   if(isset($_POST['login'])){
					   include("loginPDO.php");
						   }
					   ?>
           </div>  
           <br />
    </body>
</html>
veilig.php
<?php
//Controleert of gebruiker is ingelogd met Session
session_start();
if(isset($_SESSION['username'])) {
}

else {
	header("Refresh:0; url=pdo.php");
}

$username = $_SESSION['username'];
//Echo de gebruikersnaam
include("connection.php"); //HIER DE DATABASE CONNECTIE OMDAT JOUW DATABASE GEGEVENS GAAT VERSCHILLEN MAAKT HET NIET UIT DAT IK HET VERBORGEN HEB. ZORG ER DUS ALLEEN VOOR DAT JE CONNECTIE HIER HEBT STAAN.

	$pdoResult = $pdoConnect->query("SELECT * FROM gebruikers WHERE username = '$username'");//VERANDER DE QUERY NAAR EIGEN GEGEVENS

foreach ($pdoResult as $row) { //HET HOEFT NIET PERSÉ row[1] TE ZIJN.
	echo "Welcome " . $row[1] . "! Let erop om de functies (zoals promoties etc.) niet op deze pagina in te voeren, maar bij de profiel van een gebruiker. <br />";
}
?>

<style>
	body {background-color: rgba(167,167,167,1.00); font-family: arial;}
</style>

<div>
	<a href="logout.php">Klik here to logout</a> <!--LEIDT NAAR UITLOG PAGINA-->
</div>
logout.php
<?php

session_start();

session_destroy();

header("Refresh:0; url=pdo.php"); //PDO.PHP LEIDEN NAAR DE HOMEPAGINA

?>

Reacties

0
Nog geen reacties.