بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

مشکل:ذخیره نشدن اطلاعات فرم ثبت نام کاربری در دیتابیس(حل شد. )

مدیریت گفتگو
ARROW 11 سال پیش
آخرین تغییر: 11 سال پیش

سلام دوستان.دوتا مشکل داشتم

اول اینکه دستور ایمپورتنت (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>&nbsp&nbsp&nbsp<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();
}
}
 

نظرات

کاشی زاده 11 سال پیش
برای استفاده از important در css باید قبلش ! بذارید که میشه important! ولی کلا استفاده از این کار خوبی نیست
ARROW 11 سال پیش
داداش مشکل ما حل نشد بیزحمت پروژه را آپلود کن تا ادامه آموزشها رو دنبال کنم .

پاسخ‌ها 2

hamid_sub7 11 سال پیش

دوست عزیز بهتر هستش در این مورد سوالات سورس رو بصورت سورس که از امکانات خود ادیتور است درج کنید. کلاس DB شما هیچ مشکلی نداره اما تو دستور INSERT باید بعد آوردن نام فیلدهای جدول که میخواهید متغیرها رو بهش پاس بدید از عبارت کلیدی VALUES استفاده کنید که شما در اونجا به اشتباه registerUserDate نوشتید! البته ایرادی که تو دو تا تصویر دیده میشه رو تونستم بگم و امیدوارم مشکلتون حل بشه . موفق باشید %

نظرات

hamid_sub7 11 سال پیش
در ضمن دقیقا متوجه نشدم منظورتون از import چیه فکر کنم متصل کردن فایل css به فایل html یا php رو میگید که تنها کافیه در فایل html یا php در داخل تگ head یک تگ style ایجاد کنید و با تایپ @ دستور import بصورت اتوماتیک میاد البته تو inllij من تا حالا استفاده نکردم و بهتره کلا از دستور link که ساده تر و بهتر است استفاده کنید. مرسوم تر هست %
ARROW 11 سال پیش
سلام .نه منظورم دستورhmportant بود که برای مهم کردن تگها فکر کنم بکار میره.که در بالا دوستمون راهنمایی کردن. اون قسمت هم را هم درست کردم با مقدار values ولی نشد .قبلا هم درست بود حواسم نبوده اشتباهی نوشتم باز ممنون بازم
محسن موحد 11 سال پیش

در کلاس 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$ یعنی بصورت متغیر. علامت $ رو پاک کن.

نظرات

ARROW 11 سال پیش
مرسی دمتون گرم همون علامت دالرز رو برداشتم درست شد :)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .