صفحه لاگین یکی از امکانات هر وبسایت کاربر محوری است. ساخت صفحه لاگین و ثبت نام با php بسیار آسان است . در این آموزش ، به شما نشان می دهیم چطور یک سیستم لاگین را توسط php و mysql ایجاد کنید.
اسکریپت php ما ثبت نام کاربر و ورود را با استفاده از mysql و سئشن های php ایجاد کرده است. همچنین ، اعتبارسنجی ورودی های کاربر در هنگام ثبت نام و لاگین از طریق سرور-ساید انجام می شود.
قبل از اینکه آموزش را شروع کنیم ، نگاهی به فایل های سیستم لاگین میاندازیم
User.php
– مدیریت کار های مربوط به دیتابیسUserAccount.php
– مدیریت ثبت نام ، ورود ، خروج با درخواست های کلاس UserIndex.php
– نمایش فرم لاگین / اطلاعات کاربرRegistration.php
– نمایش فرم ثبت نامStyle.css
– استایل دهی به فرم ثبت نام و لاگین
ساخت جداول دیتابیس
یک جدول برای ذخیره اطلاعات کاربران نیاز داریم. کد sql زیر یک جدول users با ستون های مورد نیاز ایجاد می کند.
1 2 3 4 5 6 7 8 9 10 11 12 |
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `first_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `last_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `email` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `password` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `phone` varchar(15) COLLATE utf8_unicode_ci NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` enum('1','0') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; |
کلاس User (user.php)
کلاس User همه کار های مربوط به دیتابیس را مدیریت می کند .
که شامل ۳ متد __construct()
، getRows()
و insert()
است . تابع __construct() برای اتصال به دیتابیس استفاده می شود . تابع getRows() برای خواندن اطلاعات کاربران از دیتابیس و تابع insert() برای اضافه کردن اطلاعات کاربران به دیتابیس هنگام ثبت نام استفاده شده است. حتما مقادیر $dbHost,$dbusername,$dbPassword,$dbName
را برای اتصال به دیتابیس تغییر بدید.
برای کپی صحیح و کامل کدها ، دابل کلیک کرده تا وارد محیط سفید و کپی شوید در غیر اینصورت امکان دارد اجرای کدها با مشکل روبرو شود
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
<?php /* * User Class * This class is used for database related (connect, fetch, and insert) operations * @author netparadis.com * @url http://www.netparadis.com */ class User{ private $dbHost = "localhost"; private $dbUsername = "root"; private $dbPassword = ""; private $dbName = "netparadis"; private $userTbl = "users"; public function __construct(){ if(!isset($this->db)){ // Connect to the database $conn = new mysqli($this->dbHost, $this->dbUsername, $this->dbPassword, $this->dbName); if($conn->connect_error){ die("Failed to connect with MySQL: " . $conn->connect_error); }else{ $this->db = $conn; } } } /* * Returns rows from the database based on the conditions * @param string name of the table * @param array select, where, order_by, limit and return_type conditions */ public function getRows($conditions = array()){ $sql = 'SELECT '; $sql .= array_key_exists("select",$conditions)?$conditions['select']:'*'; $sql .= ' FROM '.$this->userTbl; if(array_key_exists("where",$conditions)){ $sql .= ' WHERE '; $i = 0; foreach($conditions['where'] as $key => $value){ $pre = ($i > 0)?' AND ':''; $sql .= $pre.$key." = '".$value."'"; $i++; } } if(array_key_exists("order_by",$conditions)){ $sql .= ' ORDER BY '.$conditions['order_by']; } if(array_key_exists("start",$conditions) && array_key_exists("limit",$conditions)){ $sql .= ' LIMIT '.$conditions['start'].','.$conditions['limit']; }elseif(!array_key_exists("start",$conditions) && array_key_exists("limit",$conditions)){ $sql .= ' LIMIT '.$conditions['limit']; } $result = $this->db->query($sql); if(array_key_exists("return_type",$conditions) && $conditions['return_type'] != 'all'){ switch($conditions['return_type']){ case 'count': $data = $result->num_rows; break; case 'single': $data = $result->fetch_assoc(); break; default: $data = ''; } }else{ if($result->num_rows > 0){ while($row = $result->fetch_assoc()){ $data[] = $row; } } } return !empty($data)?$data:false; } /* * Insert data into the database * @param string name of the table * @param array the data for inserting into the table */ public function insert($data){ if(!empty($data) && is_array($data)){ $columns = ''; $values = ''; $i = 0; if(!array_key_exists('created',$data)){ $data['created'] = date("Y-m-d H:i:s"); } if(!array_key_exists('modified',$data)){ $data['modified'] = date("Y-m-d H:i:s"); } foreach($data as $key=>$val){ $pre = ($i > 0)?', ':''; $columns .= $pre.$key; $values .= $pre."'".$val."'"; $i++; } $query = "INSERT INTO ".$this->userTbl." (".$columns.") VALUES (".$values.")"; $insert = $this->db->query($query); return $insert?$this->db->insert_id:false; }else{ return false; } } } |
userAccount.php
این فایل درخواست ثبت نام ، لاگین و خروج (logout) از index.php و registration.php را کنترل می کند . کلاس User برای قرار دادن اطلاعات کاربران در جدول users استفاده می شود. همچنین ، Session ها برا لاگین نگه داشتن کاربر در سیستم به کار می رود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
<?php //start session session_start(); //load and initialize user class include 'user.php'; $user = new User(); if(isset($_POST['signupSubmit'])){ //check whether user details are empty if(!empty($_POST['first_name']) && !empty($_POST['last_name']) && !empty($_POST['email']) && !empty($_POST['phone']) && !empty($_POST['password']) && !empty($_POST['confirm_password'])){ //password and confirm password comparison if($_POST['password'] !== $_POST['confirm_password']){ $sessData['status']['type'] = 'error'; $sessData['status']['msg'] = 'Confirm password must match with the password.'; }else{ //check whether user exists in the database $prevCon['where'] = array('email'=>$_POST['email']); $prevCon['return_type'] = 'count'; $prevUser = $user->getRows($prevCon); if($prevUser > 0){ $sessData['status']['type'] = 'error'; $sessData['status']['msg'] = 'Email already exists, please use another email.'; }else{ //insert user data in the database $userData = array( 'first_name' => $_POST['first_name'], 'last_name' => $_POST['last_name'], 'email' => $_POST['email'], 'password' => md5($_POST['password']), 'phone' => $_POST['phone'] ); $insert = $user->insert($userData); //set status based on data insert if($insert){ $sessData['status']['type'] = 'success'; $sessData['status']['msg'] = 'You have registered successfully, log in with your credentials.'; }else{ $sessData['status']['type'] = 'error'; $sessData['status']['msg'] = 'Some problem occurred, please try again.'; } } } }else{ $sessData['status']['type'] = 'error'; $sessData['status']['msg'] = 'All fields are mandatory, please fill all the fields.'; } //store signup status into the session $_SESSION['sessData'] = $sessData; $redirectURL = ($sessData['status']['type'] == 'success')?'index.php':'registration.php'; //redirect to the home/registration page header("Location:".$redirectURL); }elseif(isset($_POST['loginSubmit'])){ //check whether login details are empty if(!empty($_POST['email']) && !empty($_POST['password'])){ //get user data from user class $conditions['where'] = array( 'email' => $_POST['email'], 'password' => md5($_POST['password']), 'status' => '1' ); $conditions['return_type'] = 'single'; $userData = $user->getRows($conditions); //set user data and status based on login credentials if($userData){ $sessData['userLoggedIn'] = TRUE; $sessData['userID'] = $userData['id']; $sessData['status']['type'] = 'success'; $sessData['status']['msg'] = 'Welcome '.$userData['first_name'].'!'; }else{ $sessData['status']['type'] = 'error'; $sessData['status']['msg'] = 'Wrong email or password, please try again.'; } }else{ $sessData['status']['type'] = 'error'; $sessData['status']['msg'] = 'Enter email and password.'; } //store login status into the session $_SESSION['sessData'] = $sessData; //redirect to the home page header("Location:index.php"); }elseif(!empty($_REQUEST['logoutSubmit'])){ //remove session data unset($_SESSION['sessData']); session_destroy(); //store logout status into the ession $sessData['status']['type'] = 'success'; $sessData['status']['msg'] = 'You have logout successfully from your account.'; $_SESSION['sessData'] = $sessData; //redirect to the home page header("Location:index.php"); }else{ //redirect to the home page header("Location:index.php"); } |
فرم لاگین و اطلاعات کاربر (index.php)
در ابتدا فایل index.php یک صفحه لاگین و لینک ثبت نام را نشان می دهد . بعد از لاگین ، آی دی کاربر از طریق سئشن قابل دسترس و اطلاعات کاربر از طریق کلاس User نمایش داده می شود .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<?php session_start(); $sessData = !empty($_SESSION['sessData'])?$_SESSION['sessData']:''; if(!empty($sessData['status']['msg'])){ $statusMsg = $sessData['status']['msg']; $statusMsgType = $sessData['status']['type']; unset($_SESSION['sessData']['status']); } ?> <div class="container"> <?php if(!empty($sessData['userLoggedIn']) && !empty($sessData['userID'])){ include 'user.php'; $user = new User(); $conditions['where'] = array( 'id' => $sessData['userID'], ); $conditions['return_type'] = 'single'; $userData = $user->getRows($conditions); ?> <h2>Welcome <?php echo $userData['first_name']; ?>!</h2> <a href="userAccount.php?logoutSubmit=1" class="logout">Logout</a> <div class="regisFrm"> <p><b>Name: </b><?php echo $userData['first_name'].' '.$userData['last_name']; ?></p> <p><b>Email: </b><?php echo $userData['email']; ?></p> <p><b>Phone: </b><?php echo $userData['phone']; ?></p> </div> <?php }else{ ?> <h2>Login to Your Account</h2> <?php echo !empty($statusMsg)?'<p class="'.$statusMsgType.'">'.$statusMsg.'</p>':''; ?> <div class="regisFrm"> <form action="userAccount.php" method="post"> <input type="email" name="email" placeholder="EMAIL" required=""> <input type="password" name="password" placeholder="PASSWORD" required=""> <div class="send-button"> <input type="submit" name="loginSubmit" value="LOGIN"> </div> </form> <p>Don't have an account? <a href="registration.php">Register</a></p> </div> <?php } ?> </div> |
فرم ثبت نام (registration.php)
فایل حاوی فرم html ثبت نام و یک action به فایل userAccount.php است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<?php session_start(); $sessData = !empty($_SESSION['sessData'])?$_SESSION['sessData']:''; if(!empty($sessData['status']['msg'])){ $statusMsg = $sessData['status']['msg']; $statusMsgType = $sessData['status']['type']; unset($_SESSION['sessData']['status']); } ?> <div class="container"> <h2>Create a New Account</h2> <?php echo !empty($statusMsg)?'<p class="'.$statusMsgType.'">'.$statusMsg.'</p>':''; ?> <div class="regisFrm"> <form action="userAccount.php" method="post"> <input type="text" name="first_name" placeholder="FIRST NAME" required=""> <input type="text" name="last_name" placeholder="LAST NAME" required=""> <input type="email" name="email" placeholder="EMAIL" required=""> <input type="text" name="phone" placeholder="PHONE NUMBER" required=""> <input type="password" name="password" placeholder="PASSWORD" required=""> <input type="password" name="confirm_password" placeholder="CONFIRM PASSWORD" required=""> <div class="send-button"> <input type="submit" name="signupSubmit" value="CREATE ACCOUNT"> </div> </form> </div> </div> |
کد CSS
برای استایل دهی به به فرم لاگین و ثبت نام استفاده شده است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
.container { width: 40%; margin: 0 auto; background-color: #f7f7f7; color: #757575; font-family: 'Raleway', sans-serif; text-align: left; padding: 30px; } h2 { font-size: 30px; font-weight: 600; margin-bottom: 10px; } .container p { font-size: 18px; font-weight: 500; margin-bottom: 20px; } .regisFrm input[type="text"], .regisFrm input[type="email"], .regisFrm input[type="password"] { width: 94.5%; padding: 10px; margin: 10px 0; outline: none; color: #000; font-weight: 500; font-family: 'Roboto', sans-serif; } .send-button { text-align: center; margin-top: 20px; } .send-button input[type="submit"] { padding: 10px 0; width: 60%; font-family: 'Roboto', sans-serif; font-size: 18px; font-weight: 500; border: none; outline: none; color: #FFF; background-color: #2196F3; cursor: pointer; } .send-button input[type="submit"]:hover { background-color: #055d54; } a.logout{float: right;} p.success{color:#34A853;} p.error{color:#EA4335;} |
جمع بندی
امیدواریم از راهنمایی مرحله به مرحله و مثال اسکریپت ساخت صفحه لاگین و ثبت نام با php لذت برده باشید . شما به راحتی می توانید فرم ثبت نام و لاگین با php و mysql را در زمان بسیار کم پیاده کنید . همچنین با استفاده از آموزش “ساخت سیستم فراموشی رمزعبور با php” می توانید امکانات دیگه ای به صفحه لاگین خود اضافه کنید
برای دانلود پروژه کامل ساخت صفحه لاگین و ثبت نام با php از قسمت زیر اقدام کنید
امیدوارم همیشه موفق باشید
سلام مرسی بابت اموزش عالیتون فقط من یکم کد هاس css رو ویرایش کردم رنگ و استایل هارو ولی وقتی توی لوکال هاست(زمپ) رفرش میکنم تغییر ایجاد نمیشه اما مثلا یکبار کامپوتر ریستارت میشه تغییر رو نشون میده اما تغییر انی نشون نمیده ایا راهکاری دارید که وقتی ادیت میکنم و رفرش میکنم سایتو css ها به خوبی اجرا بشن؟ و مشکل از سیو ادیتور هم نیست ادیتور کد هارو سیو میکنه مرسی
سلام. خوشحالیم که مفید واقع شده.
شما حتی نمی خواید ایمیل بدید بعد انتظار پاسخ هم دارید.
ایمیل ها با تبلیغات اسپم نمیشه بلکه برای اطلاع رسانی خود سایت هست و این ایمیل هم اسپم شده
سلام
چگونه یک اعتبارسنجی ایمیل درست کنیم یعنی کاربر ایمیل را در ثبتنام بنویسید و به ایمیل ان کاربر کدی ارسال شود و کاربر ان را در سایت وارد کند؟
سلام.
آموزش زیر رو دنبال کنید :
https://netparadis.com/email-verification-register-php
سلام و وقت بخیر من
وقتی ورود یا ثبت نام می کنم ارور
Failed to connect with MySQL: Access denied for user ‘root’@’localhost’ (using password: NO)
را نشن می دهد،لطفا راهنمایی نمایید…
سلام ممنون.
کارهای مربوط به دیتابیس رو باید مجدد انجام بدید
در xampp درست هست ولی در هاست cpanel با این خطا روبرو می شوم…
در هاست شما اول باید دیتابیس بسازید بهش دسترسی بدید و بعد جداول رو ایمپورت کنید و بعد اطلاعات ورود به دیتابیس رو داخل فایل php بروز کنید
ممنون ولی باز هم با خطای دیگری مواجه شدم …
php_network_getaddresses: getaddrinfo failed: Name or service not known
فکر کنم خطای هاست (dbhast) هست ، الان در هاستیگ من در اینجا چه چیزی بگذارم.
به نظر شما در هاست سی پنل (dbhost)و(dbusername) چی هست؟
dbhost همان localhost هست و dbusername رو خودتون میسازید و این موارد پیشفرض نیست
اموزشی مدنظر ندارید که username در phpmyadmin ایجاد کند؟
https://hostnegar.com/learn/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-%D8%AF%D8%B1-cpanel
https://www.netafraz.com/blog/how-to-create-a-database-in-directadmin/
سلام وقت بخیر
Some problem occurred, please try again.
جدیدا این ارور رو میده داخل صفحه ی ثبتنام ولی لوگین میشه و تمام تیبل ها رو دارم داخل دیتا بیس
مشکلش احتمال داره چیزه دیگه باشه ؟
ممنون
سلام. ممنون.
هر چیزی هست مربوط به دیتابیسه. این خطا برای اینه که عملیات insert دیتا ها داخل جدول دیتابیس انجام نمیشه
سلام مهندس خسته نباشی.
ببخشید میخاستم برا سایتم شبیه سایت شما یه فرم قرار بدم برا ثبت دیدگاهای کاربران قسمت html &css بلدم سمت سرور باید چه کارهای انجام بدم. مرسی
سلام وقت بخیر بعد از لوگین یا ریجستر با این ارورو مواجح میشیم
This page isn’t working right nowfoxmoney.net can’t currently handle this request.
HTTP ERROR 500
سلام. با هاستینگ در میون بزارید
۴۰۴
Not Found
The resource requested could not be found on this server!
————————————————————————————————–
سئوالم رو کامل تر میکنم
داخل لوکال هاست پروژه به خوبی کار میکنهد
داخل هاست و cpanel که آپلود میکنم
وقتی لوگین یا ریجستر میکنم میبره در مسیر userAccount.phpاین ارور رو میده
باید url رو بررسی کنید ببینید دقیقا آدرس فایل به کجا هست و بررسی کنید فولدر و آدرسش درسته یا نه
۴۰۴
Not Found
The resource requested could not be found on this server!
————————————————————————————————–
سلام وقتی لوگین یا ریجستر میکنم میبره در مسیر userAccount.phpاین ارور رو میده
سلام. آدرس url در مرورگر رو ببینید که آدرس دهی بدرستی انجام شده باشه
سلام،
سوال من این هست که بعد از loginکردن هرکسی با پسورد خودش همه وارد یک صفحه مشترک میشن.من می خوام هرکس وارد صفحه خودش بشه.توی کدوم فایل باید هرکس رو به صفحه خودش هدایت کنم.
ممنونم.
سلام.
فایل userAccount.php صفحه پنل کاربری هست این صفحه برای همه یکسانه ولی اطلاعاتش متفاوته چون قبلا session برای هر کاربر ست شده و هر کس یه جور اطلاعات رو میبینه
منظور من صفحه یوزر اکانت نیست یه صفحه دیگه که مثلا شامل یه جدول با یسری اطلاعت هست که کاربر وقتی وارد پروفایلش میشه علاوه بر پروفایلش اون صفحه رو هم ببینه الان پروفایل خودش نشان داده میشه با استفاده از یوزذ اکانت ولی اون جدول اطلاعات برای تمامی کاربرها یکسان هست
این مورد رو دیگه نمیشه با راهنمایی گفت به چه صورت پیاده سازی کنید باید php متوسط حداقل بلد باشید و چیز خاصی هم نیست واقعا بسته به نوع کدنویسی و پروژه تون میتونید اضافه کنید. شما باید یه اطلاعاتی از کاربر در دیتابیس ذخیره کنید که بتونید برای دیگر کاربران هر کدام یه اطلاعات داینامیک و غیر تکراری نمایش بدید
اطلاعات ذخیره کردم و در دیتا بیسم برای یوزرها ای دی قرار دادم فقط باید ای دی یوزر به صفحه اطلاعات بره که اطلاعات مربوط به همون ای دی نشان داده بشه کوئری با شرط هم نوشتم ولی باید یه if قرار بدم که این قسمتش مشکل دارم ممنون میشم راهنمایی کنید.
dar vaghe man ye safeheye login daram ba ye tedad user ke har user shamele yeseri etelaat (information) hast ke dar vaghe in safeheye information tashkil shode az yeseri karhayei ke bayad roozane anjam bede va har ueser faghat betoone etelaate khodesh ro bebeine ama vase man injoorie ke vaghti user connect mishe mitoone be hame etelaat dastresi dashte bashe.
salam, roozetoon bekheir.
ozrmikham man ye chanta soal dashtam emkanesh hast be adress emailetoon beferestam.
mamnoonam.
سلام. ممنون.
هر سوالی داشتید در کامنت ها بپرسید حتما پاسخ داده میشه.
شاید سوال شما سوال یکی دیگه هم باشه و به اینصورت میتونه به دیگران هم کمک کنه
سلام
من وقتی دیتابیس رو میزنم این ارور رو میده
Error
SQL query:
CREATE TABLE
users
(id
int(11) NOT NULL AUTO_INCREMENT,first_name
varchar(100) COLLATE utf8_unicode_ci NOT NULL,last_name
varchar(100) COLLATE utf8_unicode_ci NOT NULL,email
varchar(100) COLLATE utf8_unicode_ci NOT NULL,password
varchar(255) COLLATE utf8_unicode_ci NOT NULL,phone
varchar(15) COLLATE utf8_unicode_ci NOT NULL,created
datetime NOT NULL,modified
datetime NOT NULL,status
enum(‘1′,’0’) COLLATE utf8_unicode_ci NOT NULL DEFAULT ‘1’,PRIMARY KEY (
id
)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
MySQL said: Documentation
#۱۰۴۶ – No database selected
چیکارکنم
لطفا راهنمایی کنید
سلام. بعد اینکه وارد phpmyadmin شدید دیتابیس مورد نظر رو انتخاب کنید تا وارد اون بشید و بعد از تب SQL این کویری رو اجرا کنید
درود و عرض ادب
عذر میخوام بنده سررشته ای از php ندارم. میخواستم بدونم چطور میتونم تعریف کنم که وقتی کاربر مثلا id: email@email.com لاگین میکنه منتقل بشه به یک لینک دیگر .مثلا تعریف کنم اگر کاربر x وارد شده منتقل بشه به ادرس مثلا سایت شما و اگر کاربر y وارد شد. منتقل بشه به یه ادرس سایت دیگه
سلام.
باید برای هر کدام در دیتابیس یک سطر ایجاد کنید.
مثلا جدول redirects با فیلدهای email,destination و بعد در هر سطر مشخص بشه هر ایمیل به چه آدرسی هدایت بشه.
حالا هنگام لاگین در شرط لاگین موفق زمانی که میخواید برای کاربر سشن ست کنید یا به پنل هدایت کنید اونجا کویری میزنید به دیتابیس و سطر مربوط به ایمیل کاربر رو دریافت و با header اون رو ریدایرکت می کنید
https://netparadis.com/php-redirect/
ممنون از شما . یک سوال دیگه داشتم در همین مورد که میخواستم بدونم
این مشکلی برای قسمت کنترل کاربر نداره ؟ فقط دیلیت کردن کاربر منظورم هستش
مثلا برای اینکه کاربر حدف بشه ایدی رو نگه داره و بقیه چیزارو پاک کنه
خیر مشکلی نداره
سلام خسته نباشید .
یک سوال داشتم . برای اینکه وقتی یوزر پاک میشه از دیتابیس مثلا نفر اول آیدی ۱ بعد از ۲ شروع میشه چیکار باید کنم با از همون یک شروع بشه ؟
سلام. ممنون.
id چون بصورت auto increament انچام میشه امکانش نیست مگر اینکه هر بار در هنگام insert کاربر در دیتابیس آخرین id رو دریافت و اون رو +۱ کنید و دستی ثبت بشه و با دیتابیس auto نشه.
به هر حال این مورد چیز مهمی نیست و نیاز نیست حتما این مورد رو رعایت کنید
باسلام و تشکر از مطالب آموزنده تون؛ میخام برای صفحه داشبورد کاربر کدی بنویسم که اگر کاربر به مدت مثلا ۲۰ دقیقه غیرفعال بود(inactive) صفحه بصورت خودکار بره به لاگین؛ یه چیزی شبیه به پنل phpmyadmin که بعد از مدت زمان خاصی اگر کاری نکنیم مارو بصورت خودکار به صفحه لاگین میبره(تأکیدم روی خودکار هستش، یعنی بدون رفرش صفحه یا لمس هیچ گونه دکمه ای در صفحه). ممنون میشم راهنمایی کنید. تشکر ویژه
سلام.
راه ساده اینه که این کد رو به صفحه داشبود یا هر جایی که غیرفعال بودن کاربر رو میخواید بررسی و بعد لاگ اوت کنید اضافه کنید:
در بخش تگ head اضافه کنید :
۹۰۰همان ثانیه است و logout.php همان مسیری که کاربر با آن لاگ اوت می شود.
سلام مجدد. کدی که گفتید در تگ باید اضافه بشه نیومده. لطفا مجدد کد رو تایپ کنید.ممنون میشم
سلام. داخل تگ قرار گرفت کامنت قبلی رو دوباره چک کنید
ممنونم از توجه و پاسخگوییت دوست عزیز. همیشه موفق باشید
سلام وقتتون بخیر من فرم مییخوام که با وارد کردن نام و پسورد اطلاعات مربوط به اون کاربر(نمره و رشته و..) از دیتابیس نمایش بده ..تقریبا مثل سایت گلستان
من ایمل رو ار این کد حذف کردم و پسورد رو قرار دادم ..الان وقتی میخوام لاگین کنم از این خط ارور میگیره ممنون میشم راهنمایی کنید.
if(!empty($_POST[‘firstname’]) && !empty($_POST[‘lastname’])) && !empty($_POST[‘password’])) {
سلام ممنون.
در ادامه کد باید
$prevCon[‘where’] = array(’email’=>$_POST[’email’]);
و
’email’ => $_POST[’email’],
پاک کنید.
همچنین داخل دیتابیس نیز این فیلد رو پاک کنید یا default رو null کنید.
موفق باشید.
سلام دوست عزیز
دستمریزاد
خیلی عالی بود
موفق باشید ان شاء الله
سلام. خوشحالیم که مفید واقع شده.
موفق باشید.
سلام من همه این کار هارو انجام دادم. وقتی میره بخش وارد کردن اطلاعات برای ورود یا ثبت نام ، وقتی میزنیم رو دکمه که اطلاعات بره رو فایل userAccount.php که کنترل بشه ارور ۵۰۰ میده مشکل از کجاست؟
سلام. ارور ۵۰۰ مربوط به محیط اجرا هست و باید ببینید مشکل لوکال شما چی هست.
ببخشید میشه گسترده تر توضیح بدید
سورس کد کامل را از باکس دانلود دریافت و استفاده کنید. همچنین مطابق آموزش پیش برید به راحتی می توانید اسکریپت را اجرا بگیردی
ببخشید , من این ارور رو میده برای چیه Failed to connect with MySQL: No such file or directory
من روی هاست بالا انجام دادم
لطفا مشکلشو برام بفرسید
سلام. مشکل اتصال به دیتابیس وجود دارد. اول باید دیتابیس رو ایجاد و بعد جداول رو بسازید و بعد اطلاعات ورود رو در سورس تغییر بدید
جداول رو چجوری ایجاد کنیم؟؟
سلام.
وارد phpmyadmin بشید و دیتابیس را بسازید یا اگر قبلا ساختید انتخاب کنید و از تب sql کد را sql را بزنید تا ساخته بشه
آیا آدرس reza.iran@iran.ir برای دریافت لینک نامعتبره؟؟!!!!!!!!
سلام. خیر از جیمیل یا یاهو و غیره استفاده کنید
ببخشید
if($insert){
$sessData[‘status’][‘type’] = ‘success’;
$sessData[‘status’][‘msg’] = ‘You have registered successfully, log in with your credentials.’;
}else{
$sessData[‘status’][‘type’] = ‘error’;
$sessData[‘status’][‘msg’] = ‘Some problem occurred, please try again.’;
}
این ارور چه وقتی اتفاق می افتد :
$sessData[‘status’][‘type’] = ‘error’;
$sessData[‘status’][‘msg’] = ‘Some problem occurred, please try again.’;
اگر هنگام ثبت نام، در دیتابیس اطلاعات بدرستی قرار نگیرید یعنی مشکلی در دیتابیس باشد این ارور نمایش داده می شود
خوبه
خوشحالیم که مفید واقع شده.
موفق باشید.
سلامی مجدد، ببخشید من میخواهم در یک صفحه کاربران عضو سایت شده برایم نمایش داده شود. باید چه کار کنم؟
سلام. باید کویری select * from users رو اجرا کنید و خروحی رو fetch کنید و با یک حلقه نمایش بدید. و تا زمانی که php تا حد متوسط بلد نباشید متاسفانه نمیتونید پیاده سازی کنید
سلام، ببخشید من میخوام در دیتابیس و صفحه ثبت نام کاربران دو تا قسمت اضافه کنم به نام کد ملی و نام کاربری؟
چطوری میشه؟
سلام. باید سه جا تغییر کنه.
اول داخل جدول دیتابیس این دو فیلد رو اضافه کنید. بعد داخل کد HTML براش فیلد input بزارید و بعد داخل کد userAccount.php خط ۲۴ فیلد ها رو مشخص و داده های دریافتی کاربر رو داخل دیتابیس اینسرت کنید
سلامی مجدد، ببخشید همه ی کار ها رو انجام دادم ارور میاره، توی لینک زیر یه pdf است که ارور رو توش قرار دادم + عکس کار هایی که گفتید انجام بدم:
https://gam-shop.ir/jpg2pdf.pdf
ببخشید من وقتی حساب کاربری جدید میسازم این ارور میاد :
( ! ) Parse error: syntax error, unexpected ‘if’ (T_IF) in C:\wamp64\www\gam-shop\registration\userAccount.php on line 11
خطای سینتکسی هست و باید بررسی بشه که میتونید داخل یک ویرایشگر کد مثل phpstorm یا ویرایشگر آنلاین کد رو کپی کنید تا ببینید دقیقا مشکل از کجاست. چون این کدی که در مثال ما ارایه شده مشکلی نداره و حتی میتونید از سورس کد ارایه شده استفاده کنید.
سلام ببخشید باید در private $dbName = “اینجا”; چه بنویسیم؟؟؟؟؟؟
سلام.
نام دیتابیس.
موفق باشید.
private $userTbl = “اینجاهم چی بنویسیم”;
نام جدول کاربران را وارد کنید
سلام. خیلی ممنون از راهنمایی جامع و کاملتون.
بعد از صفحه لاگین و ایندکس، من میخوام با یه لینک، اطلاعاتی رو از یه جدول دیگه بخونم و نشون بدم. چی کار باید بکنم؟
سلام. خوشحالیم که مفید واقع شده.
اول باید فایل مورد نظر را بسازید و بعد داخل این صفحه به دیتابیس متصل بشید و اطلاعات را خوانده و به شکلی که میخواید نمایش بدید
اتصال به دیتابیس با mysqli
بعد از آن میتونید لینک این صفحه را با تگ a هرجای صفحه که خواستید قرار بدید
موفق باشید.
منظور من ساخت لینکش نبود. من میخوام مثلا در صفحه ویژگی محصولات، لیست محصولات ثبت شده رو ببینم. در این حالت میشه از کلاس user که تعریف کردید استفاده کرد؟ یا باید یه کلاس دیگه برای این کار بسازم؟ (مثلا product.php که توش نام جدول رو تعریف کنم). اگه از همون کلاس user استفاده بشه که نام جدولش متفاوت میشه و باید یه کانکشن جدید ساخت.
ممنون
سلام. خیر شما باید یک کلاس جدا که در فایل جدا هست استفاده کنید و در کلاس User فقط عملیات مربوط به کاربران رو مدیریت کنید مثلا برای محصولات میتونید فایل Product.php با کلاس Product رو ایجاد کنید.
موفق باشید.
سلام برا من این مشکل رو میاره اگه میشه راهنمایی کنید؟
Fatal error: Call to a member function fetch_assoc() on a non-object in C:\Users\95819062\Documents\EasyPHP-DevServer-14.1VC9\data\localweb\New folder (2)\user.php on line 64
سلام. اگر تغییری انجام دادید لطفا به اول برگردانید یا اینکه سورس کد کامل را از باکس دانلود, دریافت و اطلاعات دیتابیس را بروزرسانی و دوباره چک کنید.
موفق باشید.
سلام خسته نباشید می خواستم ببینم چجوری یک صفحه لاگین هم برای کاربران و هم برای مدیران درست کنیم منظور من اینه که یک صفحه لاگین بسازم و مدیر و کاربر از اون صفحه لاگین کنند یعنی کاربر و مدیر یک صفحه لاگین مشترک داشته باشند
سلام. ممنون.
میتونید برای مدیر و کاربر عادی فقط یک جدول داشته باشید که با فلگ بتونید کاربران رو سطح بندی کنید و هنگام لاگین کردن در صفحه مشترک بر اساس دسترسی هایی که دارند آپشن های مختلف را فراخوانی و نمایش بدید
موفق باشید.