Auto fill-in data (input field) from MySQL Database in PHP (PDO) -
this post contains:
- 3 php pages
- mysql table picture
- picture of form
as title says, need extract information from database.
so far have following:
index page <-- need login here personal code. (this 'session username' works @ contact page)
config page <-- used database access , all
contact page <-- in here auto fill-in users data.
database table consists of:
- username; email; realname (and other stuff don't need here)
so in contact page see following:
card number = username (this works)
auto fill-in: realname , email according username.
maybe possible extract info when logging in , storing these in post variable already? how?
database:
- table need use: 'members'
the info given user himself/herself = username
the info need auto fill-in = realname , email
picture of form.
the email should in session statement, can send confirmation email person, , realname should entered database.
these files running:
config.php:
<?php ob_start(); session_start(); //set timezone date_default_timezone_set('europe/brussels'); //database credentials define('dbhost','*****'); define('dbuser','*****'); define('dbpass','*****'); define('dbname','*****'); //application address define('dir','http://*****/'); define('siteemail','noreply@*****'); try { //create pdo connection $db = new pdo("mysql:host=".dbhost.";dbname=".dbname, dbuser, dbpass); $db->setattribute(pdo::attr_errmode, pdo::errmode_exception); } catch(pdoexception $e) { //show error echo '<p class="bg-danger">'.$e->getmessage().'</p>'; exit; } //include user class, pass in database connection include('classes/user.php'); include('classes/phpmailer/mail.php'); $user = new user($db); ?>
contact form:
<?php require('includes/config.php'); //if not logged in redirect login page if(!$user->is_logged_in()){ header('location: index.php'); } ?> <html> <head> <title>*****</title> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <!--[if lte ie 8]><script src="siteassets/assets/js/ie/shiv.js"></script><![endif]--> <link rel="stylesheet" href="siteassets/assets/css/main.css" /> <!--[if lte ie 8]><link rel="stylesheet" href="siteassets/assets/css/ie8.css" /><![endif]--> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> <script> $(document).ready(function(){ $('#next').keyup(calculate); $('#nextprice').keyup(calculate); $('#current').keyup(calculate); $('#currentprice').keyup(calculate); }); function calculate(e) { $('#total').val($('#next').val() * $('#nextprice').val() + $('#current').val() * $('#currentprice').val()); } </script> </head> <body class="landing"> <div id="page-wrapper"> <!-- header --> <header id="header" class="alt"> <nav id="nav"> <ul> <li> <a href="#" class="icon fa-angle-down">menu</a> <ul> <li><a href="home.php">current project</a></li> <li><a href="newproj.php">next projects</a></li> <li><a href="prev.php">previous projects</a></li> <li><a href="who.php">who we?</a></li> </ul> </li> <li><a href="contact.php" class="button">contact</a></li> <li><a href='logout.php'>logout</a></li> </ul> </nav> </header> <!-- banner --> <section id="banner"> <h2>*****</h2> <p>slogan.</p> <ul class="actions"> <li><a href="home.php" class="button">current project</a></li> <li><a href="newproj.php" class="button">next projects</a></li> <li><a href="prev.php" class="button">previous projects</a></li> <li><a href="who.php" class="button">who we?</a></li> <li><a href="contact.php" class="button special">contact</a></li> </ul> </section> <!-- main --> <section id="main" class="container 75%"> <div class="box"> <? if($_server['request_method']=="post") { if(strlen($_post['name2']) == 0) { $error_msg ="- please, provide name.<br>"; } if(!empty($error_msg)) { //een van de velden werd niet goed ingevuld echo "<b>your message can't send due following reason:</b> <br><br>"; echo $error_msg; echo "<br>click on <a href='javascript:history.back(1)'>go back</a> , provide name.<br><br>"; } else { $recipient = "*****"; $subject = "******"; $header = "from: " . $_post['uwemail'] . "\n"; $mail_body = "contact script werd op " . date("d-m-y") . " om " . date("h:i") . " uur uitgevoerd.\n"; $mail_body .= "*****:\n\n"; $mail_body .= "naam: " . $_post['name2'] . "\n"; $mail_body .= "met als kaartnummer: " . $_post['card2'] . "\n"; $mail_body .= "******: " . $_post['current2'] . "\n"; $mail_body .= "******: " . $_post['next2'] . "\n"; $mail_body .= "voor een totaal van: " . $_post['total2'] . " eur."; $mail_body .= "\n\n -- ****** --"; mail($recipient, $subject, $mail_body, $header); print "<b>important!</b>"; print "<br><br>*****."; print "<br><br>***** "; print $_post['total2']; print " *****"; print "<br><br>******."; print "<br><br>******"; } } else { ?> <form action="<? echo $_server['php_self']; ?>" method="post" name="contact"> <div class="row uniform 50%"> <div class="6u 12u(mobilep)"> personal card number <input type="text" name="card2" id="card" value="<?php echo $_session['username']; ?>" placeholder="card number" readonly/> </div> <div class="6u 12u(mobilep)"> please enter name. (mandatory) <input type="text" name="name2" id="name" value="" placeholder="your name" /> </div> </div> <div class="row uniform 50%"> <div class="6u 12u(mobilep)"> current project - smile <input type="text" name="current2" id="current" value="" placeholder="how many tickets like?" /> </div> <div class="6u 12u(mobilep)"> next project - sand <input type="text" name="next2" id="next" value="" placeholder="how many tickets like?" /> </div> </div> <div class="row uniform 50%"> <div class="6u 12u(mobilep)"> <input type="hidden" id="currentprice" value="10" /> </div> <div class="6u 12u(mobilep)"> <input type="hidden" id="nextprice" value="10" placeholder="" /> </div> </div> <div class="6u 12u(mobile)"> <input name="uwemail" placeholder="email" type="hidden" value="******"/> </div> <div class="6u 12u(mobilep)"> total price.(in eur) <input type="text" name="total2" id="total" value="" readonly/> </div> </div> <div class="row uniform"> <div class="12u"> <ul class="actions align-center"> <li><input type="submit" name="submit"value="place order"/></li> </ul> </div> </div> </form> <?php } ?> </div> </section> <!-- footer --> <footer id="footer"> <ul class="copyright"> <li>© *****. rights reserved.</li> </ul> </footer> </div> <!-- scripts --> <script src="siteassets/assets/js/jquery.min.js"></script> <script src="siteassets/assets/js/jquery.dropotron.min.js"></script> <script src="siteassets/assets/js/jquery.scrollgress.min.js"></script> <script src="siteassets/assets/js/skel.min.js"></script> <script src="siteassets/assets/js/util.js"></script> <!--[if lte ie 8]><script src="siteassets/assets/js/ie/respond.min.js"></script><![endif]--> <script src="siteassets/assets/js/main.js"></script> </body> </html>
index page (where have login)
<?php //include config require_once('includes/config.php'); //process login form if submitted if(isset($_post['submit'])){ $username = $_post['username']; $password = $_post['password']; if($user->login($username,$password)){ $_session['username'] = $username; header('location: home.php'); exit; } else { $error[] = 'wrong username or password or account has not been activated.'; } }//end if submit ?> <html> <head> <title>******</title> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <!--[if lte ie 8]><script src="assets/js/iv.js"></script><! [endif]--> <link rel="stylesheet" href="assets/css/main.css" /> <!--[if lte ie 9]><link rel="stylesheet" href="assets/css/ie9.css" /><![endif]--> <!--[if lte ie 8]><link rel="stylesheet" href="assets/css/ie8.css" /><![endif]--> <noscript><link rel="stylesheet" href="assets/css/noscript.css" /> </noscript> </head> <body class="is-loading"> <!-- wrapper --> <div id="wrapper"> <!-- main --> <section id="main"> <header> <h1>*****</h1> <h1><a style="color:#ffffff" href=''>coming soon.</a></h1> <div class="container"> <div class="row"> <div class="col-xs-12 col-sm-8 col-md-6 col-sm-offset-2 col-md-offset-3"> <form role="form" method="post" action="" autocomplete="off"> <h2>please login</h2> <hr> <?php //check errors if(isset($error)){ foreach($error $error){ echo '<p class="bg-danger">'.$error.'</p>'; } } if(isset($_get['action'])){ //check action switch ($_get['action']) { case 'active': echo "<h2 class='bg-success'>your account active may log in.</h2>"; break; case 'reset': echo "<h2 class='bg-success'>please contact new card.</h2>"; break; case 'resetaccount': echo "<h2 class='bg-success'>password changed, may login.</h2>"; break; } } ?> <div class="form-group"> <input type="text" name="username" id="username" class="form-control input-lg" placeholder="enter card number" value=" <?php if(isset($error)){ echo $_post['username']; } ?>" tabindex="1"> </div> <div class="form-group"> <input type="hidden" name="password" id="password" class="form-control input-lg" value="*****" tabindex="3" > </div> <br> <div class="row"> <div class="col-xs-6 col-md-6"><input type="submit" name="submit" value="login" class="btn btn-primary btn-block btn-lg" tabindex="5"></div> </div> <hr> <div class="row"> <div class="col-xs-9 col-sm-9 col-md-9"> <a style="color:#ffffff" href='*********'>lost card? contact us.</a> </div> </div> </form> </div> </div> </div> </header> </section> <!-- footer --> <footer id="footer"> <ul class="copyright"> <li>© ******</li> </ul> </footer> </div> <!-- scripts --> <!--[if lte ie 8]><script src="assets/js/respond.min.js"> </script><![endif]--> <script> if ('addeventlistener' in window) { window.addeventlistener('load', function() { document.body.classname = document.body.classname.replace(/\bis-loading\b/, ''); }); document.body.classname += (navigator.useragent.match(/(msie|rv:11\.0)/) ? ' is-ie' : ''); } </script> </body> </html>
i fixed problem.
in user.php file had prepared already, didn't understand why didn't work.
turned out simple error xd
<?php include('password.php'); class user extends password{ private $_db; function __construct($db){ parent::__construct(); $this->_db = $db; } private function get_user_hash($username){ try { $stmt = $this->_db->prepare('select password, username, memberid, realname, email members username = :username , active="yes" '); $stmt->execute(array('username' => $username)); return $stmt->fetch(); } catch(pdoexception $e) { echo '<p class="bg-danger">'.$e->getmessage().'</p>'; } } public function login($username,$password){ $row = $this->get_user_hash($username); if($this->password_verify($password,$row['password']) == 1){ $_session['loggedin'] = true; $_session['username'] = $row['username']; $_session['memberid'] = $row['memberid']; $_session['realname'] = $row['realname']; $_session['email'] = $row['email']; return true; } } public function logout(){ session_destroy(); } public function is_logged_in(){ if(isset($_session['loggedin']) && $_session['loggedin'] == true) { return true; } } } ?>
i forgot add realname , email line: (idiot me :d)
$stmt = $this->_db->prepare('select password, username, memberid, realname, email members username = :username , active="yes" ');
Comments
Post a Comment