مشکل:ذخیره نشدن اطلاعات فرم ثبت نام کاربری در دیتابیس(حل شد. )
سلام دوستان.دوتا مشکل داشتم
اول اینکه دستور ایمپورتنت (important) را چطوری وارد css کنم ؟وقتی کترل اسپیس میزنم این دستور را نداره و اگه هم بنویسم عمل نمیکنه !
مشکل دوم .در فرم ثبت نام کاربری اطلاعات ذخیره نمیشه .مثل استاد هم عمل کردم .الان هیچ هم خطایی نمیده ولی اطلاعات ذخیره نمیشه .
userRegister.php
<style>
tr{
background-color: #eee !important;
}
</style>
<form action="/user/registerUserData" method="post">
<table>
<colgroup>
<col style="width: 200px">
<col style="width: 400px">
</colgroup>
<tr>
<td>نام</td>
<td><input type="text" id="firstname" name="firstname"></td>
</tr>
<tr>
<td>نام خانوادگی</td>
<td><input type="text" id="lastname" name="lastname"></td>
</tr>
<tr>
<td>ایمیل</td>
<td><input type="text" id="email" name="email"></td>
</tr>
<tr>
<td>نام مستعار</td>
<td><input type="text" id="nickname" name="nickname"></td>
</tr>
<tr>
<td>جنسیت</td>
<td><input type="radio" id="gender1" name="gender">مرد</input>   <input type="radio" id="gender2" name="gender">زن</input></td>
</tr>
<tr>
<td>تاریخ تولد</td>
<td class="ltr tar"> <input type="datetime" id="birthday" name="birthday"></span></td>
</tr>
<tr>
<td>توضیحات</td>
<td><textarea id="about" name="about"></textarea></td>
</tr>
</table>
<button class="btn-blue btn" type="submit">ثبت نام</button>
<button class="btn-blue btn" type="reset">بازنشانی فرم</button>
</form>
فایل user.php
<?php
class User extends controller{
public function welcome(){
$renderer=new Render();
$data=array();
$data['pageTitle']="Hello World's";
$renderer->viewFile("/view/welcome.php",$data);
}
public function all(){
$db=new DB();
$result=$db->query("SELECT * FROM users");
$data=array();
$data['users']=$result;
$renderer=new Render();
$renderer->viewFile( "/view/users.php", $data);
}
public function view($id){
$db=new DB();
$result= $db->query("SELECT * FROM users WHERE id =$id");
if (count($result)==0){
$renderer=new Render();
$renderer->viewContent( "اطلاعاتی پیدا نشد", null);
return;
}
$record=$result[0];
// $content= $record['firstName']." ".$record['lastName'];
$renderer=new Render();
$renderer->viewfile("/view/userDetail.php", $record);
}
public function register(){
$renderer=new Render();
$renderer->viewfile("/view/userRegister.php",null);
}
public function registerUserData(){
$db=new DB();
$firstname=$_POST['firstname'];
$lastname=$_POST['lastname'];
$email=$_POST['email'];
$nickname=$_POST['nickname'];
$birthday=$_POST['birthday'];
$gender=$_POST['gender'];
$about=$_POST['about'];
// $result=$db->query("SELECT * FROM users WHERE email='$email'");
// if(count($result)>0){
// $renderer=new Render();
// $renderer->viewContent(userAlreadyRegistered,null);
// }
$db->execSQL("INSERT INTO users (firstname,$lastname,email,nickname,birthday,gender,about )VALUES ('$firstname','$lastname','$email','$nickname','$birthday','$gender','$about')");
header("location:/user/all");
}
public function login(){
}
public function remind(){
}
}
فایلdb
<?php
class DB{
private $connection;
public function __construct(){
$this->connection=mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);
$this->connection->query("SET NAMES UTF8");
}
public function query($sql){
$result=$this->connection->query($sql);
$output=array();
while($row=mysqli_fetch_assoc($result)){
$output[]=$row;
}
return $output;
}
public function execSQL($sql){
$result=$this->connection->query($sql);
return $result;
}
public function close(){
$this->connection->close();
}
}
دوست عزیز بهتر هستش در این مورد سوالات سورس رو بصورت سورس که از امکانات خود ادیتور است درج کنید. کلاس DB شما هیچ مشکلی نداره اما تو دستور INSERT باید بعد آوردن نام فیلدهای جدول که میخواهید متغیرها رو بهش پاس بدید از عبارت کلیدی VALUES استفاده کنید که شما در اونجا به اشتباه registerUserDate نوشتید! البته ایرادی که تو دو تا تصویر دیده میشه رو تونستم بگم و امیدوارم مشکلتون حل بشه . موفق باشید %
در کلاس db و متد execSQL بعد از دستور کوئری این خط رو اضافه کن:
echo $this->connection->error;
یعنی متدت میشه:
public function execSQL($sql)
{
$result=$this->connection->query($sql);
echo $this->connection->error;
return $result;
}
تا مشخص بشه خطا از کجاس.
البته همینجوری هم یه مشکل دیده میشه که در ابتدای خط که فیلدهارو نوشتی:
INSERT INTO users (firstname,$lastname,email,nickname,birthday,gender,about )
بعد از فیلد firstname نوشتی lastname$ یعنی بصورت متغیر. علامت $ رو پاک کن.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .