صفحه لاگین یکی از امکانات هر وبسایت کاربر محوری است. ساخت صفحه لاگین و ثبت نام با 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 از قسمت زیر اقدام کنید
امیدوارم همیشه موفق باشید
خسته نباشید
من فایل هارو دانلود کردم اما گرافیک پیاده نمیشه
برای اطمینان کلا فایل style.css پاک کردم
که تغییری ایجاد نشد
میشه بهم کمک کنید و بگید ایراد کجاشه
سلام. ممنون.
سورس کد نهایی که در باکس دانلود هست رو دریافت و استفاده کنید
موفق باشید.
یه اتفاق جالب میوفته.
وقتی تغیرات تو css ایجاد میکنی تغییری تو سایت اتفاق نمیوفته…
وقتی تاریخچه مرورگر پاک کردم تغییرات اعمال شد…
کش مرورگر شماست که مورد مهمی نیست و ارتباطی با سورس کد ندارد.
سلام
ببخشید یه سوال دیگه داشتم
تو php تابعی هست که عکس عمل md5رو انجام بده؟
ینی یه عبارت هش شده رو از دیتابیس بگیریم بعد معادلشو تو یه اینپوت اکو کنیم
سلام. md5 یک الگوریتم غیرقابل برگشت است و تابعی برای دیکد آن نیست.
موفق باشید.
تشکر
سلام خسته نباشین
ببخشید یه سوال داشتم
میشه روی یه فیلدی مثل نام کاربری یه شرط گذاشت که حتما زبانش فارسی باشه؟
سلام ممنون.
بله می تونید این شرط رو در فایل userAccount.php با regex بررسی کنید
preg_match(“/^[\x{0600}-\x{06FF}]*$/u”, $name);
یا الگوی
“/[^ الف-ی]/i”
یا
“/^[آ ا ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن و ه ی]/”
موفق باشید.
خیلی ممنون
حسن جان اسکریپت قوی هست اما خب کدهای خیلی ساختار پیچیده ای دارن و فهم اونا خیلی سخته ای کاش میشد یکم مفهومی تر کد میزدید.
سلم. کدها بصورت شی گرا هست و برای هر عملیات دیتابیس یک متد جداگانه وجود داره تا عملیات مرتبط با لاگین و رجیستر به راحتی قابل انجام / ویرایش باشه .
موفق باشید.
اقا تورو خدا من رمز ورود و نام کاربری هستم رو بدم ولی شما این کار رو برام کنید خوب چون من بلد نیستم اگه موافق باشین با این جمیل در تماس باشیم
سلام. موارد مربوط به نصب و راه اندازی شامل هزینه خواهد بود. در صورت تایید اطلاع بدید.
سلام خسته نباشین.صفحه ای که میزنم از نظر ظاهری مشکل داره.ینی عملکردش خوبه اما کادرا و رنگا و چیزای مربوط به ظاهر سایت مشکل دارن ممنون میشم جواب بدین
سلام . ممنون.
اگر با html css زیاد آشنا نیستید بهتره سورس کامل را از باکس دانلود زیر همین پست بالای بخش نظرات دریافت و همان را استفاده کنید.
اگر دستی کدها را کپی می کنید حتما فایل css مربوط به استایل ها را ساخته و همانند زیر در صفحه registration.php و index.php که مربوط به ثبت نام و لاگین هستند و بصورت صحیح آدرس دهی کنید موفق باشید.
مرسی.والا همین کارو هم کردم باز مشکل داره.مربوط به نصب bootstrap نیست؟
خیر. حتما سورس کامل از باکس دانلود را دریافت و آن را استفاده کنید چون مشکل شما عدم درست لینک دادن فایل استایل است.
سلام.
ممنون از آموزشتون.
اگه بخواهیم دوتا فرم تو یک صفحه باشه باید چیکار کنیم.؟
سلام.
با تگ form میتونید یک فرم ایجاد کنید. در هر صفحه ای که نیاز دارید مثلا registration.php یک کپی از همان فرم بگیرید و فقط action را به فایل php مورد نظر تغییر بدید.
موفق باشید.
سلام ممنون بابد آموزش رایگان
چطور میشه تو این فرم مثلا ۲تا فیلد اضافی دیگه ساخت که در دیتابیس ذخیره بشه؟
سلام. خوشحالیم که مفید واقع شده.
ابتدا باید این دوتا فیلد را بصورت صحیح در جدول مورد نظر اضافه کنید.
در فرم ثبت نام نیز باید ورودی این دو فیلد را اضافه کنید تا بتوانیم آنرا دریافت و ذخیره کنید.که برای اینکار در فایل registration.php و خط ۱۸ میتونید به اینصورت اضافه کنید :
به جای SOME باید نام فیلد که در دیتابیس مشخص کردید را وارد کنید
بعد در فایل userAccount.php و خط ۲۸ مقادیر این فیلدها را دریافت کنید تا در دیتابیس ذخیره شوند. مثلا این مقدار را باید اضافه کنید :
‘SOME’ => $_POST[‘SOME ‘],
هر دو SOME بالا نیز باید نام فیلد اضافه شده در دیتابیس باشد
موفق باشید.
سلام
بابت مطلب مفیدتون ممنونم
چجوری میتونم فرم ورود رو در فایل های دیگه هم پیاده کنم تا اگه به آدرس اون فایل هم رفتیم ریدایرکت کنه به صفحه ورود و بدون ورود مانع نمایش اون فایل بشه؟
سلام. خوشحالیم که مفید واقع شده.
هنگام لاگین کاربر یک سیشن بصورت $_SESSION[‘sessData’] برای کاربر ست می شود تا وضعیت لاگین بودن آن را بررسی کنیم.
در صفحاتی که نیاز دارید کاربر قبل از مشاهده آن در سیستم لاگین شود باید سیشن بالا را با تابع isset در یک شرط if چک کنید که اگر شرط false شد که یعنی کاربر در سیستم لاگین نیست و سیشن معتبر ندارد در اینصورت در بلاک کد شرط با تابع header کاربر را به صفحه لاگین هدایت می کنید.
از آموزش های زیر برای توسعه سیستم استفاده کنید.
تابع isset در php
آموزش کار با session در php
ریدایرکت در php
موفق باشید.
بسیار سپاسگزارم.ببخشید خیلی سوال میکنم چون مبتدی هستم و باید پروژه ای رو انجام بدم
سلام از شما بخاطر کد کاملتون تشکر میکنم.ببخشید من اگه خواسته باشم status و modified رو از جدول حذف کنم کدوم قسمت کد رو باید حذف کنم که خطا نده؟
سلام. فایل user.php و userAccount.php به دنبال این کلمات باشید و تغییر/حذف کنید.
موفق باشید.
شما برام پروژه php انجام میدین؟
اطلاعات تکمیلی را از فرم تماس با ما ارسال کنید
سلام خسته نباشید ببخشید من وقتی اجرا میکنم با اینکه ایمیل و پسورد را درست وارد میکنم باز خطا میده که ایمیل یا رمز اشتباه است.مگه نباید یه رکورد جدید تو جدول بنویسیم و بع ایمیل و پسورد اونو که تو فرم نوشتم اجرا بشه؟ لطفا هر چه زودتر جواب بدین خیلی گرفتارم.خدا خیرتون بده
سلام ممنون. مشکل مطمینا از دیتابیس است. دقت کنید که اطلاعات ورود دقیقا همان مواردی که در فرم ثبت نام وارد کردید باشد و این موارد هم در جدول مورد نظر ثبت شده باشند. در اینصورت مشکلی وجود نخواهد داشت چرا که اسکریپت بارها توسط ما و دیگر کاربران تست شده و کاملا اوکی است.
موفق باشید.
با سلام خدمت شما
من فیلد وبسایت در قسمت ثبت نام دارای ۴ بخش یوزرنیم و اسم و ایمیل و پسوورد هست که من میخوام یه صفحه لاگین درست کنم و کدای شما هم هرجور دستکاری کردم نشد! و میخواستم که تو صفحه ثبت نام هیچ اروری ثبت نشه و اطلاعات تو دیتابیس ذخیره بشه چون با جاوا اسکریپت خطاهارو میگم به کاربر و نیازی به اون ندارم دیگ! و پس از ثبت نام بره مستقیم به صفحه ای به نام Success
و در صفحه لاگین هم برای لاگین کردن سه تا فیلد یوزرنیم و ایمیل و پسوورد وجود داره و میخوام بعد از لاگین کردن ، اطلاعات دیتابیس و بخونه و تنها در صورتی ارور بده که پسوورد و یوزرنیم اشتباه باشه!
ممنون از وبسایت عالیتون
منتظر جواب هستم
با تشکر
سلام .برای ویرایش نیازه که با شی گرایی آشنایی داشته باشید.
اگر نیاز به نمایش خطا ندارید میتونید در فایل registration.php خط
۱۲
را حذف یا کامنت کنید. و همچنین خطاهای مربوط به لاگین رو هم در خط۳۰
فایل index.php میتونید بردارید.برای هدایت کاربر بعد از ثبت نام موفق میتونید بعد از خط
۳۵
فایل userAccount.php تابعheader
رو برای ریدایرکت کردن کاربر به صفحه مورد نظر استفاده کنید (ریدایرکت در php)موفق باشید.
سلام
چجوری این کد های css رو به سایت اضافه کنیم ؟؟؟
سلام . به اینصورت تگ رو به فایل index.php اضافه کنید
موفق باشید.
سلام ببخشید فایل css رو چجوری ذخیره کنیم؟
سلام . از باکس دانلود آخر پست سورس کامل رو دانلود و استفاده کنید
مطمینا آدرسی دهی فایل استایل شما اشتباه بوده که با دانلود سورس کد و اجرای اون حل میشه
موفق باشید.
ممنون از پاسخ سریع شما
درست شد
خیلی ممنون
سلام
بعد از ثبت نام این پیغام رو میده بهم
All fields are mandatory, please fill all the fields
همه اطلاعات رو هم پر میکنم باز همین پیغام رو میده بهم
سلام . احتمالا یکی از فیلدهارو تغییر دادید یا اینکه حذف کردید که سعی کنید ابتدا سورس کامل رو دانلود و تست کنید و اگر آشنایی مقدماتی به بالا در php دارید در خط ۹م فایل userAccount.php تغییرات رو لحاظ کنید.
موفق باشید.
برای تعیین دسترسی برای هر کاربر مطلب جدایی دارید؟اگر ندارید میشه یه توضیح بدید؟
سلام . همچین موردی در سایت منتشر نشده . میتونید با بررسی اسکریپت ها یا جستجو موارد مشابه رو پیدا کنید .
موفق باشید.
سلاموقت بخیر آقای شفیعی اگر ممکن هست یک راه ارتباطی برای من برای ارتباط با خودتون ارسال کنید
یک صحبتی داشتم باهاتون
سلام . ممنون . هر سوالی بود در زیر کامنت همان پست می تونید ارسال کنید تا بررسی و پاسخ برای شما ارسال بشه .
برای تماس با ما از طریق فرم تماس با ما موضوع بحث رو ارسال کنید که از اون طریق توضیحات تکمیلی تر برای شما ارسال میشه .
موفق باشید.
سلام ،من از کد شما استفاده کردم ،حالا میخام فرم ویرایش و حذف رو اضافه و استفاده کنم ،نحوه فراخوانی رو نسبت به فانکشن get-row رو توضیح میدهید . تشکر
سلام .
برای فراخوانی فرم ویرایش توسط متد
getrows
کافیه آی دی رو بهش پاس بدید تا تمام اطلاعات یوزر رو برای شما برگشت بده به اینصورتدر صورتی که قصد دارید کل اطلاعات سطر کاربر رو دریافت کنید بهتره خط
$conditions['select']
رو کامنت کنید.edit.php
برای حذف هم مجددا باید یک صفحه لیست بسازید با استفاده از متد
getrows
بدون دادن هیچ گونه پارامتر$condition
ی تمام یوز ها رو با حلقهforeach
لیست کنید و برای هر کدام یک دکمه حذف به اینصورتdelete.php?uid=
ایجاد کنید و در نهایت یک فایل delete.php دیگر ایجاد و در آنجا ورودی گت که id یوز است رو دریافت و با کویریDELETE
حذف کنید و بعد از حذف نیز به صفحه لیست دوباره هدایت بشید (header
) (ریدایرکت با php)موفق باشید.
سلام ببخشید من دیتابیس و جدولشو ایجاد کردم ولی وقتی میخوام ثبت نام کنم ارور faild to connect with my sql رو میده. لطفا راهنمایی کنید
سلام . اطلاعات ورود به دیتابیس (یوزرنیم , پسورد و نام دیتابیس) را درست وارد کنید.
موفق باشید.
سلام.ممنون ازراهنماییتون.انجامش دادم.فقط مشکل اینجاست که بعداز ثبت نام یا ورود توهمون صفحه میمونه و به صفحه خانگی برنمیگرده
سلام . داشبورد کاربر رو باید خودتون طراحی کنید و بعد از ثبت نام یا لاگین به صفحه کاربری با استفاده از header هدایت کنید.
موفق باشید.
سلام
من یکم تازه کردم.همه کارارو انجام دادم اما صفحات فراخوانی نمیشه.کد خطا ۴۰۴ میده میشه بگید مشکل چیه
سلام . مطمینا آدرس دهی شما اشتباه هستش که نتونستید فایل رو فراخوانی کنید و لطفا از سورس کد موجود در دانلود باکس استفاده کنید .
موفق باشید.
سلام میبخشید کد نویسی سایتمون رو تو کدوم فایل و در ادامه کدوم کد باید بنویسیم
سلام
یک فایل حدید برای کلاس هاتون بسازید و در نهایت فایل های صفحات مختلف رو ساخته و کلاس های پایه و مورد نطر رو اینکلود کنبد و پیش برید.
موفق باشید.
سلام وقتتون بخیر
من برای تست کاربرو ثبت میکنم این ارور رو میده”Parse error: syntax error, unexpected ‘)’ in C:\xampp\htdocs\shateloffice.ir\userAccount.php on line 19″ میشه راهنمایی کنید لطفا”
سلام . ممنون.
کدها مشکلی نداره فقط هنگام کپی به مشکل برخوردید .
برای کپی صحیح کدها حتما روی کدها دابل کلیک کنید تا وارد محیط سفید رنگ بشید و بعد کد را کپی کنید تا هیچ مشکلی نباشه .
همچنین می توانید از باکس دانلود کل پروژه رو دریافت کنید.
موفق باشید.
همونطور که فرمودید کدها رو دانلود کردم اما باز هم بعد از ثبت نام کاربر جدید این ارور رو میده:
Warning: mysqli::__construct(): (HY000/1049): Unknown database ‘net’ in C:\xampp\htdocs\shateloffice.ir\user.php on line 18
Failed to connect with MySQL: Unknown database ‘net’
دوست عزیز شما باید اطلاعات دیتابیس خودتون رو در فایل user.php ویرایش کنید تا به دیتابیس شما متصل بشه کمی دقت کنید در متن خطا هم مشخص شده که دیتابیس رو پیدا نکرده .
موفق باشید.
درست شد،ممنون از لطفتون
پایدار باشید
سلام
ببخشید من توی یک صفحه دیگه برای ورود به صفحه ورود لینک دادم طوریکه در location نوشته شده
http://localhost/site/login.html?redirect=http://localhost/site/news-47.html و در فایل userAccount.php نوشتم
if(isset($_GET[‘redirect’])){
header(“Location:”.$_GET[‘redirect’].””);
}else{
header(“Location:index.php”);
}
از آنجاییکه متاسفانه get رو نمی شناسه ریدایرکت میکنه به صفحه index.php در صورتیکه من میخوام به همون صفحه ریدایرکت بشه .لطفا کمک بفرمایید.
سلام . خب شما از طریق login.html این دستور رو در گت وارد کردید ولی کدها رو در useraccont.php نوشتید که صحصح نیست . محتوایات متد get از همان فایل خوانده میشه نه از فایل دیگر.
باید آدرس شما به صورت
useraccount.php?redirect= باشه تا بتونید کاربر رو هدایت کنید .
اگر اطلاعات رو از login.html به فایل useraccount.php ارسال میکنید باید از فرم ها (متغیر$_POST و $_GET در php ) استفاده کنید و مقدار url ی که قصد دارید هدایت بشه رو بصورت یک فیلدمتنی ارسال کنید .
موفق باشید.
خیلی ممنون از شما.یک سوال دیگه:
میخوام وقتی ثبت نام میکنم همونطوری که مثلا نام رو فارسی می نویسم در دیتابیس هم فارسی نوشته بشه.نه به اینصورت علی Ú©
قبلا بالای فایلهای php می نوشتم
mysql_query(“SET CHARACTER SET utf8”);
و درست می شد الان نمیدونم کجا باید بنویسم این کد رو.
خواهش میکنم.
در فایل user.php بعد از خط ۱۸م تابع زیر رو اضافه کنید
$conn->set_charset("utf8")
موفق باشید.
سلام من وقتی میخوام وارد بشم از صفحه ورود این خطا رو میده.
Fatal error: Call to a member function fetch_assoc() on boolean in \user.php on line 64
سلام . این مورد برای زمانیه که $result مقدار false داشته باشه و کویری احرا نشه . پس حتما توجه کنید مقداری در دیتابیس ذخیره شده باشد و یک var_dump هم بگیرید تا متوجه خطا بشید.
موفق باشید.
سلام من توی هاست سایتم قرار میدم می خواستم بدونم من هم باید private $dbHost = “localhost”; استفاده کنم یا چیز دیگه ای بنویسم چون به دیتابیسم وصل نمیشه ولی از phpmyadmin می تونم دیتابیس و جدولی که ساختم رو ببینم
سلام . بله همون پیشفرض localhost قرار بدید . مطمینا مشکلی پیش نخواهد اومد اگر اسم تیبل ها و یوزر پسورد رو درست وارد کرده باشید
همچنین اگر به تازگی و دستی دیتابیس و یوز ر ساختید حتما چک کنید که privilege های لازم رو به یوزر داده اید
موفق و پیروز باشید
سلام و خسته نباشید
من این کدارو روو دیتابیس خودم تست میکنم موقع ثبت نام خطای Some problem occurred, please try again رو برام میاره!
میشه راهنماییم کنین؟
ممنون:)
سلام . ممنونم .
این ارور رو برای بخش insert در نظر گرفتیم . اگر عملیات insert اطلاعات کاربر در دیتابیس به درستی انجام نشه ، با این ارور مواجه می شید. دلیلش هم نبودن بعضی فیلد ها یا هم نام نبودن اونها مطابق با اون چیزی که در کدها تعریف کردیم، است . فیلد های از پیش تعریف شده در خط ۲۴ فایل userAccount.php قرار داده شدند.
برای حل این مشکل حتما از کد sql بالا که برای ساخت جدول استفاده کریم ، بهره ببرید تا ایشالا مشکلتون حل بشه
موفق باشید.
سلام و درود به شما استاد گرامی و تمامی کاربران
قبلا از شما بابت مطلب تشکر می کنم و اگر مقدور هست من هم این مشکل را دارم بیشتر توضیح بدید بتونم مشکل حل کنم
تشکر و قدردان شما هستم .
سلام . خواهش می کنم . مشکل اصلی نبودن دیتابیس و تیبل صحیح هستش که سعی کنید از کد تیتر ساخت جداول دیتابیس برای ساخت جدول استفاده کنید تا انشالا مشکل شما حل میشه.
موفق باشید.