<?php
/* * LOGIN-FORM EXAMPLE FOR PTCFORMS.PHP CLASS * REMOVE COMMENT FROM LINE 43 FOR UI-PLUGINS */
### PARAMATERS FOR THE EXAMPLE ############### $redirect_page="http://www.google.com/"; // the landing page if login was successfull $user="test"; // login username $pass=md5("test1"); // login password ######################################### @session_start(); /* CHECK IF COOKIE IS SET FOR THE REMEMBER ME OPTION */ if(@$_COOKIE['cookname'] && @$_COOKIE['cookpass']) { $_POST['lg_username']=$_COOKIE['cookname']; $_POST['lg_password']=$_COOKIE['cookpass']; if($valid_login=check_login()){ $_SESSION['loggedIn']=true; } } if(@$_SESSION['loggedIn']){ header('Location: '.$redirect_page); exit(); }
$_SESSION['loggedIn']=false; /* INITIALIZE THE CLASS WITH SOME OPTIONS */ $options=array ( 'add_class_validator' => true, // adding js validation 'keep_values' => false, // remove posted values from the inputs 'labels_align' => 'right', // align labels right 'form_width' => '415px', // form width in pixels 'spacer_height' => '10px;' // spacer height between fields ); require_once('../PtcForm.php'); $form=new PtcForm($options); echo'<!DOCTYPE html><html><head>'; /* (OPTIONAL) INCLUDE JS FOR JQUERY VALIDATOR AND STYLES */ //require_once("ptcforms-ui-plugins.php"); /* MINIMAL CSS FOR THE EXAMPLE */ echo'<style> body{font:normal .85em "trebuchet ms",arial,sans-serif;color:#555;} #loginForm input[type=text], input[type=password]{width:237px;} .errMsg{color:red;} </style>'; /* ADDING A TEXT FIELD */ $form->addElement(array ( 'name' => 'lg_username', 'label' => 'Username:', 'validate' => 'required' )); /* ADDING A PASSWORD FIELD */ $form->addElement(array ( 'type' => 'password', 'name' => 'lg_password', 'label' => 'Password:', 'validate' => array('required','check_login') )); /* ADDING A CHECKBOX */ $checkbox=array ( 'type' => 'checkbox', 'name' => 'lg_keep_login', 'label' => 'Remember me', 'parentEl' => array('style'=>'text-align:right;') ); /* ADDING CHECKED AS ATTRIBUTE IF FORM WAS SENT */ if(isset($_POST['lg_keep_login'])){ $checkbox['attributes']=array('checked'=>true); } $form->addElement($checkbox);
/* ADDING A SUBMIT BUTTON */ $form->addElement(array ( 'type' => 'submit', 'name' => 'lg_login', 'value' => 'Login', 'parentEl' => array('style'=>'text-align:right;margin-right:5px;'), 'attributes' => array('style'=>false) // remove default style for this field only )); /* COMPOSITE FOR CUSTOM LAYOUTS */ $form->addElement(array ( 'type' => 'composite', 'name' => 'lg_login_box', 'values' => array('lg_keep_login','lg_login'), // add previously created fields 'attributes' => array('style'=>'width:265px;float:right;') // add some style attributes )); $err_msg=''; if(@$_POST['lg_login']) { /* VALIDATE THE FORM SERVER SIDE */ $validate=$form->validate(); if(!$validate['isValid']) // returns a bool(true/false) { $err_msg='<div class="errMsg" style="text-align:center;width:'.$options['form_width'].'"> Wrong user ID or password!</div><br>'; } else { $_SESSION['loggedIn']=true; if(@$_POST['lg_keep_login']) // working with the remember me option { setcookie("cookname",$user,time()+60*60*24*100, "/"); setcookie("cookpass",$pass,time()+60*60*24*100, "/"); } header('Location: '.$redirect_page); exit(); } } echo '</head><body>'; echo '<div style="text-align:center;width:'.$options['form_width'].'"><h1>Login Form</h1></div>'; echo $err_msg; /* FINALLY RENDER THE FORM */ $form->render(array('id'=>'loginForm')); echo'</body></html>'; /* CHECK IF USER CAN LOGIN, A CUSTOM FUNCTION ADDED TO THE SERVER SIDE VALIDATOR */ function check_login() { ### THE FOLLOWING LINES COULD BE REPLACED WITH A SQL QUERY ############ global $user,$pass; return ($_POST['lg_username']!=$user || @md5($_POST['lg_password'])!=$pass) ? false : true; ########################################################### } /* USE THIS FUNCTION IN THE HEADER OF THE PAGES IN THE PROTECTED AREA * TO CHECK IF USER HAS ACCESS */ /*function check_user() { if(!@$_SESSION['loggedIn']) { header('Location: login.php'); // replace login.php with the full path to the login page exit(); } }*/
|