رفتن به مطلب

مشکل استفاده از post برای ثبت در دیتابیس


cnmaysam

ارسال‌های توصیه شده

سلام من تاطه شروع به یاد گیری کردم ولی به یه مشکلی خوردم اگه میشه راهنماییم کنید
هنگام زدن کلید ثبت اطلاعات توی دیتابیس ذخیره نمیشه نمیفهمم مشکل از کجاست

کدهای صفحه اتصال

<?php

//شروع  کلاس رجیستر
class database{
public $database = null;


//شروع  فانکشن کانسترکت
function __construct(){

//مشخصات و آدرس سرور
$this->database = mysqli_connect("localhost","root","") or die ("امکان اتصال به پایگاه داده وجود ندارد");
//ساپ.رت فارسی در دیتابیس
mysqli_query($this->database,"SET NAMES 'utf8'");
//مشخصات و نام دیتابیس
mysqli_select_db($this->database,"shop") or die ("نمی توانید پایگاه داده را انتخاب کنید");


}//پایان فانکشن کانسترکت

//شروع فانکشن رجیستر
function register($name,$password,$email,$gender,$fname,$lname,$birth,$moaref,$mobile,$tell,$ostan,$city,$adress,$postalcode){


$sqlInsertUser = "INSERT INTO `tbl_users` VALUES(NULL,$name,$password,$email,$gender,$fname,$lname,$birth,$moaref,$mobile,$tell,$ostan,$city,$adress,$postalcode)";

mysqli_query($this->database,$sqlInsertUser)  or die ("Error: " . $q . "<br>" . mysqli_error($this->database));

 mysql_close($this->database);
}//پایان فانکشن رجیستر


}//پایان کلاس رجیستر

?>
 

 

کدهای صفحه رجیستر


<?php

?>


<?php /*?>فراخوانی تنظیمات رجیستر<?php */?>
<?php include_once ("include/registerconfig.php");



//شرط برای ارسال داده ها به دیتابیس
$register=null;
 if(isset($_POST['register']) ){ 

$name  = ($_POST['name']) ;
//$_SESSION['name']= $name;
$email  = ($_POST['email'] );
//$_SESSION['email']= $email;
$password  = ($_POST['pass1']);
$gender  = ($_POST['gender']);
$fname  = ($_POST['fname']);
//$_SESSION['fname']= $fname;
$lname  = ($_POST['lname']);
//$_SESSION['lname']= $lname;
$birth  = ($_POST['tavalod']);
$moaref  = ($_POST['moaref']);
//$_SESSION['moaref']= $moaref;
$mobile  = ($_POST['mobile']);
//$_SESSION['mibile']= $mobile;
$tell  = ($_POST['tell']);
//$_SESSION['tell']= $tell;
$ostan  = ($_POST['ostan']);
$city  = ($_POST['city']);
$adress  = ($_POST['adress']);
$postalcode = ($_POST['postalcode']);
//$_SESSION['postalcode']= $postalcode;

//اذخیره دیتا ثبت شده توسط کاربر در متغیر result
$registerconfig = new database($name,$password,$email,$gender,$fname,$lname,$birth,$moaref,$mobile,$tell,$ostan,$city,$adress,$postalcode);


 }





?>

<!doctype html>
<html>
<head>

<meta charset="utf-8">
<?php /*?>تایتل<?php */?>
<title  >فرم ثبت نام</title>
<?php /*?>فراخوانی css<?php */?>
<link rel="stylesheet" type="text/css" href="Template/Default/CSS/Register.css">
<?php /*?>فراخوانی جاوا اسکریپت<?php */?>
<script language="javascript" src="javascript/register.js"></script>

</head>

<body >
<?php /*?>وسط چین کردن فرم<?php */?>
<div align="center">

<?php /*?>id برای فراخوانی قالب از CSS<?php */?>
<b id="title"> فرم ثبت نام </b><br><br>
<b id="star"> پر کردن گزینه های ستاره دار الزامی است</b><br><br>
</dive>

<?php /*?>id برای فراخوانی قالب از CSS<?php */?>
<?php /*?>post برای توع ارسال به سرور<?php */?>
<form id="body" method="post" onSubmit="return do_register();">



<?php /*?>ساختن جدول<?php */?>
<table border="0" dir="rtl" align="center">


<tr><td>* نام کاربری : </td> <td><input type="text" id="name" name="name"/> </td></tr>
<tr><td>* کلمه عبور : </td> <td><input type="password" id="pass1" name="pass1"/></td>  </tr>
<tr><td>* تکرار کلمه عبور : </td>  <td><input type="password" id="pass2" name="pass2"/></td>  </tr>
<tr><td>* ایمیل : </td> <td><input type="email" id="email" name="email"/></td>  </tr>

<tr><td>جنسیت : </td><td>

<?php /*?>لیبل برای اینکه بعد از کلیک روی متن رادیو انتخاب شود<?php */?>
<label>    آقای:<input type="radio" id="gender1" name="gender" value="1"/></label>
<label>    خانم:<input type="radio" id="gender2" name="gender" value="0"/></label>
</td></tr>

<tr><td> نام : </td> <td><input type="text" id="fname" name="fname"/></td> </tr>
<tr><td> نام خانوادگی :</td> <td><input type="text" id="lname" name="lname"/></td> </tr>
<tr><td> تاریخ تولد :</td> <td><input type="date" id="tavalod" name="tavalod"/></td> </tr>
<tr><td> معرف : </td> <td><input type="text" id="moaref" name="moaref"/></td>  </tr>
<tr><td> شماره همراه : </td> <td><input type="text" id="mobile" name="mobile"/></td>  </tr>
<tr><td> شماره ثابت :</td> <td><input type="text" id="tell" name="tell"/></td>  </tr>

<tr><td> استان : </td> <td>

<?php /*?>اضافه کردن نام استانها به لیست<?php */?>
<select id="ostan" name="ostan">
<option value="0"> لطفا استان خود را انتخاب کنید </option>
<option  value="1"> تهران </option>
</select>
</td></tr>

<?php /*?>اضافه کردن نام شهر ها به لیست<?php */?>
<tr><td> شهر : </td><td>
<select id="city" name="city">
<option value="0"> لطفا شهر خود را انتخاب کنید </option>
<option  value="1"> تهران </option>
</select>
</td></tr>

<?php /*?> تکست بزرگ برای متن های طولانی<?php */?>
<tr><td> آدرس کامل : </td> <td><textarea id="adress" name="adress"/> </textarea></td> </tr>

<tr><td> کد پستی : </td><td><input type="text" id="postalcode" name="postalcode"/></td> </tr>

<tr><td> قوانین :</td> <td>
<?php /*?>read only بستن امکان ویرایش برای کاربران<?php */?>
<textarea readonly>
قوانین
قوانین
قوانین
</textarea>
</td> </tr>

<?php /*?>ایجاد چک باکس<?php */?>
<tr><td colspan="2"><label>* قوانین را قبول دارم : <input type="checkbox" id="acp" name="acp"/></label></td> </tr>

<?php /*?> کول اسپن برای ادغام 2 خانه جدول با هم<?php */?>
<tr><td colspan="2">

<?php /*?> کلید ثبت<?php */?>
<input type="submit" id="register" name="register" value="ثبت"/>
<?php /*?> کلید ریست<?php */?>
<input type="reset" value="دوباره"/>
</td> </tr>

</table>


</form>
</body>
</html>

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

اولا شما از بیس اشتباه نوشتید نیازی نیست  شما کلاس بنویسید برای این کار  به هیچ وجه نیاز نیست حالا فانکشن نوشتید خوبه  و تابع کنید کد هاتون رو ولی کلاس لازم نیست

دومین اشتباه شما این کد هستش

 

$registerconfig = new database($name,$password,$email,$gender,$fname,$lname,$birth,$moaref,$mobile,$tell,$ostan,$city,$adress,$postalcode);

شما در خط بالا اومدید یک شی  ایجاد کردید و توی اون شی اومدید فیلد های که تابع میخواد رو گذاشتید با این که اصلا توی کلاستون به هیچ وجه  تعریفشون نکردید  وقتی شی ایجاد میکنید و توی اون  مقادریری قرار میدید باید توی کانسترکت  کلاس هم تعریفشون کنید تا کلاس بدون  شما چی رو داری به چی نسبت میدید الان کد بالاتون  کلا اشتباه هستش

دومین اشتباه کدتون اینجا هستش

 

$sqlInsertUser = "INSERT INTO `tbl_users` VALUES(NULL,$name,$password,$email,$gender,$fname,$lname,$birth,$moaref,$mobile,$tell,$ostan,$city,$adress,$postalcode)";

ببینید شما اومدید و  یک  insert نوشتید فقط اومدید value ها رو تعریف کردید نیومدید فیلد های دیتا بیس رو تعریف کنید خب این کوئری بدبخت کجا بدونه شما  چی رو برای چی دارید قرار میدید :)

درضما  id نیاز نیست بهش مقدار بدید وقتی A_I  هستش

 

من کدتون رو اصلاح کردم  فقط فیلد هاتون رو نمیدونم  چی هستند  جاشون رو خالی گذاشتم و به فارسی نوشتم فیلد های دیتا بیس که  خودتون باید پرشون کنید.

 

اگر مشکلی بود  سوال بپرسید

<?php


$db = new mysqli("localhost","root","","shop");
$db->set_charset("utf8");

 if(isset($_POST['register']) ){ 

$name  = ($_POST['name']) ;
//$_SESSION['name']= $name;
$email  = ($_POST['email'] );
//$_SESSION['email']= $email;
$password  = ($_POST['pass1']);
$gender  = ($_POST['gender']);
$fname  = ($_POST['fname']);
//$_SESSION['fname']= $fname;
$lname  = ($_POST['lname']);
//$_SESSION['lname']= $lname;
$birth  = ($_POST['tavalod']);
$moaref  = ($_POST['moaref']);
//$_SESSION['moaref']= $moaref;
$mobile  = ($_POST['mobile']);
//$_SESSION['mibile']= $mobile;
$tell  = ($_POST['tell']);
//$_SESSION['tell']= $tell;
$ostan  = ($_POST['ostan']);
$city  = ($_POST['city']);
$adress  = ($_POST['adress']);
$postalcode = ($_POST['postalcode']);

$sql = "INSERT INTO `tbl_users` (فیلد های دیتا بیس) VALUES('".$name."','".$password."','".$email."','".$gender."','".$fname."','".$lname."','".$birth."','".$moaref."','".$mobile."','".$tell."','".$ostan."','".$city."','".$adress."','".$postalcode."')";

if($db->query($sql)){
	echo "Insert Sucess";
}else{
	echo "Insert Fiald";
}
 }
?>




<!doctype html>
<html>
<head>

<meta charset="utf-8">
<?php /*?>تایتل<?php */?>
<title  >فرم ثبت نام</title>
<?php /*?>فراخوانی css<?php */?>
<link rel="stylesheet" type="text/css" href="Template/Default/CSS/Register.css">
<?php /*?>فراخوانی جاوا اسکریپت<?php */?>
<script language="javascript" src="javascript/register.js"></script>

</head>

<body >
<?php /*?>وسط چین کردن فرم<?php */?>
<div align="center">

<?php /*?>id برای فراخوانی قالب از CSS<?php */?>
<b id="title"> فرم ثبت نام </b><br><br>
<b id="star"> پر کردن گزینه های ستاره دار الزامی است</b><br><br>
</dive>

<?php /*?>id برای فراخوانی قالب از CSS<?php */?>
<?php /*?>post برای توع ارسال به سرور<?php */?>
<form id="body" method="post" onSubmit="return do_register();">



<?php /*?>ساختن جدول<?php */?>
<table border="0" dir="rtl" align="center">


<tr><td>* نام کاربری : </td> <td><input type="text" id="name" name="name"/> </td></tr>
<tr><td>* کلمه عبور : </td> <td><input type="password" id="pass1" name="pass1"/></td>  </tr>
<tr><td>* تکرار کلمه عبور : </td>  <td><input type="password" id="pass2" name="pass2"/></td>  </tr>
<tr><td>* ایمیل : </td> <td><input type="email" id="email" name="email"/></td>  </tr>

<tr><td>جنسیت : </td><td>

<?php /*?>لیبل برای اینکه بعد از کلیک روی متن رادیو انتخاب شود<?php */?>
<label>    آقای:<input type="radio" id="gender1" name="gender" value="1"/></label>
<label>    خانم:<input type="radio" id="gender2" name="gender" value="0"/></label>
</td></tr>

<tr><td> نام : </td> <td><input type="text" id="fname" name="fname"/></td> </tr>
<tr><td> نام خانوادگی :</td> <td><input type="text" id="lname" name="lname"/></td> </tr>
<tr><td> تاریخ تولد :</td> <td><input type="date" id="tavalod" name="tavalod"/></td> </tr>
<tr><td> معرف : </td> <td><input type="text" id="moaref" name="moaref"/></td>  </tr>
<tr><td> شماره همراه : </td> <td><input type="text" id="mobile" name="mobile"/></td>  </tr>
<tr><td> شماره ثابت :</td> <td><input type="text" id="tell" name="tell"/></td>  </tr>

<tr><td> استان : </td> <td>

<?php /*?>اضافه کردن نام استانها به لیست<?php */?>
<select id="ostan" name="ostan">
<option value="0"> لطفا استان خود را انتخاب کنید </option>
<option  value="1"> تهران </option>
</select>
</td></tr>

<?php /*?>اضافه کردن نام شهر ها به لیست<?php */?>
<tr><td> شهر : </td><td>
<select id="city" name="city">
<option value="0"> لطفا شهر خود را انتخاب کنید </option>
<option  value="1"> تهران </option>
</select>
</td></tr>

<?php /*?> تکست بزرگ برای متن های طولانی<?php */?>
<tr><td> آدرس کامل : </td> <td><textarea id="adress" name="adress"/> </textarea></td> </tr>

<tr><td> کد پستی : </td><td><input type="text" id="postalcode" name="postalcode"/></td> </tr>

<tr><td> قوانین :</td> <td>
<?php /*?>read only بستن امکان ویرایش برای کاربران<?php */?>
<textarea readonly>
قوانین
قوانین
قوانین
</textarea>
</td> </tr>

<?php /*?>ایجاد چک باکس<?php */?>
<tr><td colspan="2"><label>* قوانین را قبول دارم : <input type="checkbox" id="acp" name="acp"/></label></td> </tr>

<?php /*?> کول اسپن برای ادغام 2 خانه جدول با هم<?php */?>
<tr><td colspan="2">

<?php /*?> کلید ثبت<?php */?>
<input type="submit" id="register" name="register" value="ثبت"/>
<?php /*?> کلید ریست<?php */?>
<input type="reset" value="دوباره"/>
</td> </tr>

</table>


</form>
</body>
</html>

ضمنا بهتر هستش دیگه از mysql استفاده نکنید و از mysqli  یا pdo استفاده کنید به هیچ وجه توصیه نمیشه از mysql استفاده کنید حتل php.net  داره میگه  استفاده نکنید.

 

$db = new mysqli("host","username","password","database");

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱ ساعت قبل، seven7up گفته است :

 

سلام ممنون از وقتی که گذاشتین

من هم از mysqli استفاده کردم اصلا برای همین گیر کردم با mysql کدهام کار میکرد تبدیل کردم به mysqli دیگه ثبت انجام نشد

مشکل حل شد

shop.zip

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • shahab.es موضوع را قفل کرد

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...