سلام 🙂
یکی از سوالاتی که همیشه توسط دوستان مخصوصا آنهایی که به تازگی کار با php را شروع کرده اند ، پرسیده میشود، این است که چطور اطلاعات را از طریق یک فرم از کاربر بگیریم و آن را در دیتابیس ذخیره کنیم.
برای پاسخ راحت تر اجازه دهید کمی کلیات کار را شرح دهیم و بعد وارد جزئیات شویم تا برای دوستانی که آشنایی کمتری ممکن است با موضوع داشته باشند نیز مفید باشد.
- فرم دریافت اطلاعات : فرم دریافت اطلاعات شامل ساختاری از تگ های مختلف فرم مانند <form>,<input>,<textarea>,<select> و … می باشد که با توجه به نیازمان می توانیم ورودی های مختلفی مانند متن ، دکمه ، منوی پایین افتادنی،متن طولانی و … را با آنها ایجاد کنیم.در انتها نیز این فرم داده ها را به فایلی که درش مشخص کرده ایم ، ارسال می کند
- فایل PHP برای پردازش اطلاعات ارسالی فرم : حالا که داده ها را از طریق فرم در اختیار داریم نیاز به کدهایی داریم تا آنها را پردازش کنیم.منظور از پردازش عموما دو کار است.اول اعتبارسنجی (validation) برای اطمینان از اینکه کاربر داده های صحیحی وارد کرده است یا نه .فرضا امتحان می کنیم که در ورودی ارسالی کاربر برای تلفن ، حروف موجود نباشد و … .دوم هم بلایی که می خواهیم بر سر داده ها بیاوریم.ممکن است بخواهیم آنها را به آدرسی ایمیل کنیم ، یا در دیتابیس ذخیره کنیم و یا در یک فایل متنی روی هاست مان ویا اصلا خروجی pdf بگیریم و یا های دیگر 🙂
در اینجا فرض می کنیم که می خواهیم یک فرم ثبت نام کاربران داشته باشیم که سه ورودی نام کاربری ، کلمه عبور و ایمیل کاربر را دریافت کند و بعد از اینکه مطمئن شد آدرس ایمیل از قالب درستی برخوردار است ( em[email protected] ) ، همه اطلاعات را در جدولی بنام users ذخیره کند .
قدم اول – کد HTML
فرم ما کدهایی شبیه زیر خواهد داشتکه باید آن را در فایلی بنام index.html ذخیره کنید :
index.html
<!doctype html> <html lang="fa"> <head> <meta charset="utf-8"> <title>Simple form</title> <style type="text/css"> body,input[type="submit"] { text-align:center; font:.9em tahoma } form { width:400px; margin:200px auto 0 auto; border:1px silver solid } </style> </head> <body dir="rtl"> <form action="register.php" method="post"> نام کاربری : <input name="username" type="text" /> <br /> کلمه عبور : <input name="password" type="password" /><br /> ایمیل : <input name="email" type="text" /><br /> <input name="send" type="submit" value="ثبت نام" /> </form> </body> </html>
همانطور که می بینید این صفحه از قوانین html5 نیز تا حدودی تبعیت می کند . در خط 8 یک سبک css تعریف کردیم تا استایل مربوطه را هم به تگ body اعمال کند و هم به همه تگ های input که خصیصه type شان برابر submit باشد (در کد بالا یکی داریم !)
در خط 24 نیز دو خصیصه مهم داریم که اولی action است و تعیین می کند بعد از اینکه کاربر روی دکمه ثبت نام کلیک کرد ، اطلاعات فرم به کدام صفحه فرستاده شوند و دومی نیز method یا روش ارسال داده هاست که معمولا از پست استفاده میشود .
قدم دوم – کد PHP
حالا باید ترتیب صفحه ای را بدهیم که در قسمت action فرم تعریف کردیم.
دقت کنید که می توانیم هر دو یعنی هم فرم و هم کدهای php را در یک صفحه واحد داشته باشیم و در آن صورت خصیصه Action باید خالی باشد.
کد های صفحه register.php ما به این صورت هستند :
register.php
<?php $con=mysql_connect('localhost','root',''); if(!$con) {die ('MySQL connect error !');} if(!mysql_select_db('test')){die('MySQL database select error !');} $user=$_POST['username']; $pass=$_POST['password']; $mail=$_POST['email']; if(!$user) { die('لطفا نام کاربری را وارد کنید !'); } if(!$pass) { die('لطفا کلمه عبور را وارد کنید !'); } if(!$mail) { die('لطفا ایمیل را وارد کنید !'); } if(!preg_match("/[a-zA-Z0-9._-]+@[a-zA-Z0-9\.-]+\.[a-zA-Z\.]+/",$mail)) { die('آدرس ایمیل صحیح نیست !'); } $pass_hash=md5($pass); $query= mysql_query ("insert into users (u_username,u_password,u_email) values('$user','$pass_hash','$mail'); "); if(mysql_affected_rows()>0) { die ('ثبت نام کاربر تکمیل شد !'); } else { die('مشکلی بوجود آمده است !'); } ?>
در این کد از خط 3 تا 7 به اتصال به دیتابیس و انتخاب پایگاه داده مورد نظر مربوط است.از خط 13 تا 35 نیز کدهای شرطی با دستور if قرار دارند که کار validation (که در ابتدا صحبت شد) را انجام می دهند.
از خط 9 تا 11 ، مقادیری را که توسط فرم فرستاده شده اند و در متغیر سراسری POST_$ قرار دارند را می گیریم.
در خط 30 از عبارات منظم برای تشخیص اینکه قالب ایمیل صحیح است یا نه استفاده شده است.مثلا حتما دارای علامت @ باشد.
در خط 37 ، رمز عبور را با استفاده از تابع md5 ،هش (hash) کردیم.همانطور که می دانید قبل از ذخیره کلمات عبور در دیتابیس بهتر است آنها را به صورتی در آوریم که اگر توسط افرادی نیز خوانده شدند باز قابل بازگشت به اصل خود نباشند.در واقع تفاوت هش با کد کردن در همین است که هش قابل بازگشت نیست ولی موردی که کد شده باشد را می توان معکوس کرد و آن را بدست آورد.بدین ترتیب یک کد 32 حرفی از رمز کاربر ایجاد می کنیم.
در خط 38 همه اطلاعات دریافتی را بوسیله یک کوئری ،در پایگاه داده وارد می کنیم.
از خطوط 42 تا 53 نیز یک شرط قرار دارد تا مشخص شود عملیات وارد کردن داده ها موفقیت آمیز بوده یا نه.این کار توسط تابع mysql_affected_rows انجام می شود.کار این تابع ، برگشت دادن تعداد ردیف هایی است که روی شان عملیات های مختلف مانند : وارد کردن داده (کار ما) ، حذف داده و ویرایش داده رخ داده است.بنابراین در اینجا چون مشخصات یک کاربر را وارد می کنیم ، در صورت انجام موفقیت آمیز ورود داده ، مقدار یک را برگشت می دهد و می توان با توجه به آن پیام مناسبی را به کاربر نمایش داد.
کدهای sql برای ایجاد جدول user را می توانید از پایین پست دانلود کنید
حالا می توانید با دیدن جدول users در دیتابیس ببینید که داده مورد نظر وارد شده است یا خیر
امیدوارم به درد دوستان خورده باشه .هر سوال یا نظری دارید میتونید در بخش نظرات پایین مطرح کنید.
سلام خسته نباشید
می خواستم بپرسم چرا Submit من در دریم ریور کار نمیده
در صفحات قبیلی می شد ولی نمی دونم چرا در این صفحه کار نمیده
ممنون میشم اگه جواب بدین
سلام.من نمیتونم به پایگاه داده متصل مای اسکیوال شم.البته فقط هم آپاچی رونصب کردم.ارور هم اینه.
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\Hilton\get.php:3 Stack trace: #0 {main} thrown in C:\xampp\htdocs\Hilton\get.php on line 3
کداتصالمم اینه:
<?php
if(isset($_POST['send'])){
mysql_connect("localhost","root","");
mysql_select_db("infodb");
/* print("شما به طور غیر قانونی و بدون طریق ثبت وارد شدید…"); */
$uname=$_POST['uname'];
$tell=$_POST['tell'];
$email=$_POST['email'];
$date=date('Y/m/d');
//query
$sql="INSERT INTO `userinfo` (`uname`,`tell`,`email`,`date`) VALUES('$name','$tell','$email','$date')";
$result=mysql_query($sql) or die(mysql_error());
if (mysql_affected_rows()==1)
{
print($uname.'’.$tell.”.$email);
echo’اطلاعات با موفقیت ارسال شد.’;
}
else{
echo’خطا درثبت اطلاعات’;
}
//print($uname.”.$tell.”.$email);
}
else
{
print(“رسترسی شما رد شد::”);
}
میشه لطفا جوابو به ایمیلم بفرستی.خیلی ضروریه.خواهش میکنم.
خیلی به درد بخور بود.مرسی
مطلب به جا و خوبی بود. من سوالی دارم
سایتم فورم ثبت نام داره ولی میخواهم یکی از فورم ها را که سوال تلفون هست را به چیز دیگیری تغیر بدهم و جواب سوالی که باید کسی که عضو سایت میشه وارد کنه خیلی طولانی هست مثلا 36 تا حرفو عدد هست
ولی بعد از اتمام کار
The (name:) field cannot exceed 32 characters in length.
من چطوری میتوانم این مقدار را زیاد کنم
لطفا راهنمایی کنید سایتم به زبان php هست
متشکرم بدورد
سایتو خودتون نوشتین یا سیستم آماده است ؟ نوع فیلد مورد نظر در دیتابیس چی هست الان ؟
سلام استاد
سایت به صورت قالب اماده میباشد ترجمه کردم و راست چین شده
در مورد سوالی که کردید من زیاد اشنایی با کد نویسی ندارم
لینک سایتم به صورت ازمایشی
http://btckurd.forsayara.com/user/register
تنها میخواهم یکی از فرم ها را برای یک موضوع خاصی استفاده کنم و جواب ان طولانی هست
مثل ادرس کیف بیت کوین بیشتر از 34 حرف هست ولی در این فورم قبول نمیکنه
متشکرم
ممنون میشم راهنمایی کنید
سلام . سیستم سایت وردپرس هست یا خبر ندارین ؟ به هر حال فکر می کنم کدهای سایت تون باید بررسی بشه و شاید تو دیتابیس هم که این اطلاعات ذخیره میشه نیاز به تغییر باشه . قبل از دیدن کدهاتون بیشتر از این نمی تونم چیزی بگم
نخیر دوست عزیز وردپرس نیست اسکریپت php هست خیلی ممنون از پیگیری هاتون موفق باشید
سلام علی جان لطفا ای دی تلگرامتو بده
سلام
@AliZamani
درود بر شما
من تازه دارم php یاد میگیرم و فعلا در حال ساخت صفحه لاگین هستم دو تا سوال داشتم
1-من برای صفحه کد کپچا تولید کردم ولی متاسفانه این کد اعتبار سنجی نمیشه
2- من دو تا صفحه عادی و مدیر دارم میخوام وقتی مدیر لاگین کرد به صفحه خودش بره و کاربران عادی هم به صفحه خودشون چگونه باید انجامش بدم ممنون میشم پاسخ بدهید.http://s9.picofile.com/file/8312321134/ex.zip.html
متاسفانه داخل تمام انجمن ها سوالم را مطرح کردم ولی خیلی حرفه ای پاسخ میدهند و من اصلا متوجه نمیشم
سلام روز بخیر
من میخوام اطلاعاتم رو از یه database و با queryهای مشخص بخونم و توی قالب یه فرم pdf دربیارم. میتونید راهنماییم کنید که چطور این کار رو انجام بدم؟
سلام
وقت شما هم بخیر . منظورتون از فرم pdf اینه که به فایل pdf تبدیل کنید؟
این ایرور میده http://uupload.ir/files/n770_untitled112.png
کد ها درست هست اسم پایگاه هم درست وارد کردم هر کاری میکنم پایگاه رو تشخیص نمیده
این خطا میگه دیتابیس رو نمی شناسه . شاید اسمش فرق می کنه . یه عکس از دیتابیس تو برنامه phpmyadmin اگه دارین بفرستین لطفا
سلام من برای اتصال پایگاه به php از MySQL وmysqliوpdo استفاده کردم اما همش وقتی برنامه اجرا میشه خط مربوط به اتصال به پایگاه ایرور میده میخواستم بدونم مشکل از برنامه هست یا مشکل کد نویسی هست
سلام . باید متن خطایی که میده بفرمایید تا بشه علت رو فهمید
سلام برای اینکه بتونم برنامه بنویسم باید از کدام نسخه ها استفاده کنم برای برنامه نویسی php
برای کد نویسی جدید phpباید mysqli رو یاد بگیرم یا pdo
سلام . هر کدوم رو دوست داشتید می تونید یاد بگیرید . من به علت سادگی mysqli رو دوست دارم
سلام من هر چی کد داخل اینترنت بوده امتحان کردم به پایگاه وصل نمیشه
باید چکار کنم
این ارور مربوط به چی هست
http://s6.uplod.ir/i/00901/fa06sjt774u6.png
سلام
این دستوری که استفاده می کنید قدیمی شده و دیگه ساپورت نمیشه . باید از دستورات جایگزین جدید استفاده کنین . برای راهنمایی این مطلب رو ببینید:
نحوه استفاده از MySQLi به جای MySQL در PHP
سلام
ممنون از اطلاعات خوبتون
من میخوام ی دریچه ای درست کنم ک با استفاده از اون همه بچه ها بتونن اون فرمی ک من دادم بهشون رو در اون آپلود کنن و فقط من بتونم برش دارم یا اونایی ک من اجازه میدم
هیچیم نمیدونم از این برنامه نویسی اینا
لطفا کمک کنید
حیاتی هس
سلام دوست من
راستش اگه نخوام شما رو اسیر کلمات کنم باید بگم فعلا نمی تونید چون این کار نیاز به دانش برنامه نویسی داره و کار یه برنامه نویس هست
سلام
چ جوری میفهمیم اتصال با پایگاه داده برقرار شده؟
من این کدا رو نوشتم موقعی که دکمه ثبت رو میزنم کدای register.php رو میاره. با wamp server کار میکنم.
لطفا کمکم کنین…منتظر جوابتونم
سلام. فکر کنم شما فایل رو مستقیما باز می کنید در حالی که باید از طریق http://localhost باز کنید تا php کار کنه
There are no doubt many PHP Blogs, also I have been following this Blogs from fotolia.ir & it is really very nice to learn more about many PHP here.
Also check out:- thehtmlcoder.com
سلام
خسته نباشید
چجوری متونیم email و password ایمیلمون رو در یک فرم که با php نوشته شده وارد کنیم و وارد اکانت جیمیلمون بشیم؟
سلام
ممنونم . این کار از لحاظ امنیتی و عدم نیاز به این کار توصیه نمیشه ولی تا جایی که بنده می دونم تنها راهش استفاده از selenium هست .در این روش شما یک واسط بین خودتون و مرورگرتون(مثلا فایرفاکس) نصب می کنین و از طریق php می تونین مرورگر رو کنترل کنین یعنی بگین برو به آدرس سایت جیمیل . این اطلاعات رو در فرم ورود وارد کن . دکمه ورود رو بزن و …. همه اینها رو اتوماتیک انجام میدید
سلام لطفا راهنماییم کنید ببینید یه صفه ساختم عین شما بعد یوزر نیم و پسورد و ایمیل رو میگیره بعد بهم بگید که چه کد رو استفاده کنم که این ایمیل و پسورد و یوزر نیمش توی پایگاه داده ام ذخیره بشه و یه بخش ای دی هم گزاشتم برا هر کس چه جوری بهشون ای دی بدم؟ و این که هر کس در پایگاه داده ذخیره شد میخام بره صفحه لاگ این بعد یوز پس بزنه و راهنمایی کنید از کجا کاری کنم که یوزر پسش رو از بانک بگیره زود تر کمکم کنید ممنون میشم سایتتون هم عالی بود اموزش خوبی داره خسته نباشید
سلام خسته نباشید – ما یک پروژه ای داریم که باید برای گروهمون یک سایت طراحی کنیم – قسمت تب منو که برای هر استاد طراحی کردیم باید یک گزینه داشته باشه که هر استاد با یوزروپس خودش بتونه اخبار و اطلاعیه و حالا چیزای دیگه بزاره و اینکه این اخبارو تو صفحه ی اصلی کاربران بتونن بخونن – این کارو نمیدونم چطوری انجام بدمش . ممنون میشم کمکم کنید.
سلام . ممنونم
به طور ساده در جدول منو باید یک فیلد دیگه(id_ostad) برای هر استاد اضافه کنین که id استاد مربوط به هر منو داخل اون ذخیره بشه(موقع insert) . یک جدول دیگه هم برای اساتید باید ایجاد بشه تا اسم و فامیل و id و یوزر پس هر استاد داخلش ذخیره میشه .استاد که لاگین کرد id شو می ریزید تو جلسه (session) . بعد موقع Insert منو جدید، توفیلد id_ostad اون رو وارد می کنین.
با سلام و خسته نباشید، کاربر با موفقیت ثبت میشه ولی تو صفحه این اخطار هم نمایش داده میشه:
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\test\register.php on line 3
{main}( )
mysql_connect ( )
..\register.php:3
مشکل از چی میتونه باشه؟ ممنون.
$query= mysql_query (“insert into user (name,pass,mail)
values(‘$user’,’$pass_hash’,’$mail’)”);
if($query)
{ die (‘ثبت نام کاربر تکمیل شد !’); }
else{ die(‘مشکلی بوجود آمده است !’); }
ولی پیغام میده
“مشکلی بوجود آمده
$query= mysql_query(“insert into user (name,pass,mail) values(‘$user’,’$pass_hash’,’$mail’)”);
if(mysql_affected_rows() > 0)
{ die (‘ثبت نام کاربر تکمیل شد !’); }
else{ die(mysql_error().‘مشکلی بوجود آمده است !’); }
این کد رو تست کنید
با سلام
فرض کنید می خواهیم اطلاعات رکورد ثبت شده را در صفحه بعد یا گام بعدی به کاربر نشان دهیم در این صورت چگونه id به صفحه بعد انتقال می یابد ؟
باتشکر
سلام
از طریق Query String راحت ترین راه هست . اول باید id اون رکورد رو در یک لینک به این صورت قرار بدید :
b.php?id=8
بعد در فایل b.php مقدار id رو به این صورت می گیرید :
$id = $_GET['id'];
با سلام
میشه بگین چجوری میشه یه سیستم ثبت سفارش راه انداخت
یعنی کاربر بیاد تو سایت عضو بشه و سفارششو ثبت کنه و بعد از ثبت اطلاعات کالای موردنظرش تو جدول سفارش تو دیتابیس ذخیره بشه
و یه ارتباطی بینشون باشه که مثلا کاربرali20فلان محصول رو سفارش داده
مرسی اگه توضیح بدین.
سلام یه سوال مهم دارم
چجوری میشه تو phpتعداد رکورهای برگشتی رو محدود کنیم
یعنی تو صفحه اول که 4 تا محصول رو نشون دادیم
دکمه های preview , next رو بزاریم و با کلیک رو دکمه next ادامه محصولات نمایش پیدا کنند
یه توضیحی میفرمایین
خیلی فوریه
سلام
تو mysql باید دستور limit رو استفاده کنید . ولی برای صفحه بندی کردن مطالب یکم بیشتر کار داره . روش های مختلفی هم هست . مثلا اینجا یه کلاس حاضری برای این کار نوشتن : http://code.tutsplus.com/tutorials/how-to-paginate-data-with-php–net-2928
به فارسی هم جستجو کنین مطالبی هست . انشاا… مطالبی در همین مورد خواهیم نوشت .
پ.ن : ممنون میشم ایمیل واقعی تون رو بنویسید
سلام
کد ها بالای فرم هست و action فرم هم خالی نیست
چون میخواد پسورد تغییر کنه و بعدش پیغام رو بالای فرم نشون بده
یه سوال دیگه هم دارم
چجوری میشه یه امکانی فراهم کرد بعد از اینکه کاربر با ایمیل و یوزر نیم ثبت نام کردو وارد سایت شد
یوزر نیم بالا نشون داده بشه و نه ایمیل کاربر
مرسی از سایت خوبتون
سلام
بخش اول صحبت هاتون رو متوجه نشدم . در مورد بخش دوم در این مقاله چیزی گفته نشده ولی اگه خودتون می خواین بنویسین باید از Session ها در php استفاده کنید . در session به جای ایمیل کاربر باید نام کاربری کاربر رو ذخیره کنید.
بسیار سپاسگذارم، ممنون و متشکر
خواهش می کنم دوست عزیز
سلام
ببخشید این die میره پیغام خطا رو تو صفحه دیگه باز میکنه
نمیشه بالای فرم باز کنه
مرسی از سایت خوب و مفیدتون
سلام
خوشحالم مفید بوده براتون . برای اینکه در بالای فرم نمایش پیدا کنه باید دستورات php رو در بالای فرم قرار بدید و نه در فایل دیگه. action فرم رو هم باید خالی بزارین تا به خود همین فایل که فرم داخلش هست ارسال بشه . پسوند فایل هم باید php باشه تا دستورات php اجرا بشن .
سلام
من دوجدول شهر (با سه ستون ایدی شهر, ایدی استان,شهر) و استان (با دو ستون نام استان,ایدی استان) در sql دارم که داخل جدول شهر نام شهر ها و داخل جدول استان نام استان ها درج شده حالا میخوام اینارو بیارم تو کمبوباکس که وقتی کاربر رو استان مورد نظرش کلیک میکنه در کمبوباکس شهر نام شهر های استان مرتبط ظاهر بشه.
میخوام با آژاکس بنویسم ولی چیزی نمیدونم من کدشو میخوام چیکار کنم؟
سلام
لطفا به این مطلب نگاهی بندازید
چگونه : محتوای select ها را با jQuery و PHP به صورت Ajax تغییر دهیم ؟!
سلام اگه امکانش هست زودتر جواب بدین
سلام
اگه بخوایم تو صفحه ثبت نام
بعد از اینکه همه فیلد ها پر شدند توسط کاربر
و کاربر روی ارسال کلیک کرد
یک تیک سبز رنگ بیاد بالای فرم و بگه اطلاعات با موفقیت ذخیره شد
و اگه مقادیر فیلد ها نامعتبر بود و یا اگه خالی بود یه پیغام خطا نشون بده
چجوری مینویسیم اینو
لطفا بگین
سلام
الان هم این کارها انجام میشه . به خط هایی که دستور die دارند دقت کنید .
فقط الان متن پبام رو معمولی نشون میده . برای اینکه سبز نشون بده باید به این شکل بنویسید
die ('<span style="background:green;color:white">ثبت نام کاربر تکمیل شد !</span>');
با سلام
اگه بخوایم تو فرم تو فیلد پسورد یک محدیدیت ایجاد کنیم
به این صورت که اگر بیش از 6رقم وارد شد پیغام خطا بده
این شرط رو کجای فرم اعمال کنیم تا جواب بده
توضیح بدین
مرسی
سلام
باید این کد رو در خط 12 قرار بدین :
if(str_len($pass)>6)
{
die('کلمه عبور باید کمتر از 6 حرف باشد !');
}
با سلام خدمت دوست عزیزم آقای علی زمانی
من یک مسئله دارم
میخواهیم یک سری اطلاعات رو توسط یک فرم دریافت و طوری ذخیره کنیم که همکار ما در فضای وب بتواند مشاهده کند
عنوان فیلدها بصورت زیر باشد
مثال : نام عضو جدید تاریخ و ساعت ورود پرسنل فلان شرکت شماره پرسنلی سایر فیلدها
قبلا از همکاری شما سپاسگذارم
سلام
ما کد کامل نمی نویسیم و فقط اگر در قسمتی از کد مشکل داشتید می تونیم کمک کنیم . این برنامه رو باید سفارش بدید تا براتون طراحی بشه
موفقیت
عااااالی بود مرررررررررررررررسی
مرسی…
عالی بود سپاس
سلام.من می خواهم که ایمیل منحصر به فرد باشد که اگر کسی با یک ایمیل ثبت نام کرد دیگر نتواند ثبت نام کند و هم چنین طول کلمه عبور حداقل 6 حرف باشد.می شه لطفا راهنماییم کنید؟
سلام من هرچه گشتم نتونستم دانلود SQLرو پیدا کنم
کدهای sql برای ایجاد جدول user را می توانید از پایین پست دانلود کنید
این کدهای SQLکجاست ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
سلام
پوزش می خواهیم . مشکل حل شد
لطفا دوباره سعی کنید
با تشکر
ممنون عالی مثله همیشه
با سلام و خسته نباشید و با تشکر از توضیحتان
لطفا خط زیر را برام تشریح کنید.
متشکرم.
با سلام در رابطه با فرم ثبت نامی که گذاشتید میخواستم ببینم اگر بخواهیم اطلاعات ضمن ذخیره در دیتابیس , ا مکان چاپ آن در همان صفحه را هم دارد؟ مثلا وقتی در دیتابیس ذخیره شد اطلاعات در قالب جدولی روی صفحه نشان داده شود. ممنون میشوم پاسخ دهید
خواهشا کمک کنید
آقای زمانی کیا هستم چرا جواب منو نمیدین
برای ریزالت 30 رکورد آخر ثبت نام شده چی باید بنویسم
برای ویرایش هر کدام از این 30 ریزالت چی بنویسیم
و برای حذف هر کدام از این ریزالت ها چی بنویسیم
آقای زمانی تو رو خدا کمک کنید
اول از همه از سایت خوبتون تشکر می کنم واقعا مفیده و مطالب آموزشیش با زبانی بسیار ساده و قابل فهم توضیح داده شده
من از پی اچ پی هیچی نمیدونستم با کمک این پست شما تونستم یه فرم درست حسابی درست کنم و کلیه اطلاعات فرم را درونش ذخیره کنم
حالا استادم گفته که نتایج ثبت شده رو ریزالت بگیرم
گفته اطلاعات 10 کاربر آخر را در آخر فرم ثبت نام درج کنم
واقعا گیر افتادم کاش نحوه ریزالت گیری و استخراج از دیتابیش رو مثل این پست با مثال میزاشتید
هر چقدر هزینش باشه میدم خواهش می کنم اینکارو در حقم بکنید
سلام
ممنون بایت اطلاعاتی که در اختیار ما گذاشته اید . سوال داشتم ولی به انجمن های گفت و گو وصل نشد فکر کنم دچار مشکل شده است. لطفا در صورت امکان پاسخ سوالم را بدهید.
سوال: اگر این شرط را داشته باشیم که اطلاعات فرم را کاربر به زبان فارسی وارد کند در غیر این صورت اطلاعات در پایگاه داده ثبت نشود باید از چه تابعی و چگونه استفاده کنیم؟
سلام. واسه شماره شناسنامه اگه بخوام طولشو چک کنه
if(!$sh){
die(‘shomare shenasname ra vared konid !’);
}
if(!preg_match(“/[0-9]{10}/”,$sh))
خطا میده
salam va khaste nabashid,,,bebakhshid ma ye proje darim tarahi site laptop,vagti to gesmat order kilide sabt ro mizanim text ha khali mishe vali dataha dar my sql zakhire nemishan,,lotfan age mishe komak konid
in ham code haye php ma
<?php
$name = $_post ['n'];
$codeposti = $_post ['c'];
$tell = $_post ['t'];
$address = $_post['a'];
$message = $_post ['m'];
$a=mysql_connect('localhost:8001','root','');
if(!$a)
{
die("not connected");
}
mysql_select_db('buy',$a);
@$f=mysql_query("insert into buy (name,codeposti,tell,address,message)values('$name','$codeposti','$tell','$address', '$message')") ;
echo'’;
if (!$f)
{
die(“not insert”);
}
else
{
echo’*** ba movafagiyat sabt shod***’;
}
echo ”;
?>
سلام خسته نباشید.
من با دریم ویور کدهای بالا را نوشتم ولی خطوط 37 و38 کد php رو عینا در خروجی چاپ میکنه!!!!!!!!!!!!!!!!!!!!
لطفا مرا یاری کنید.ممنون
سلام،سورس مربوط به فایل دیتابیس رو وقتی ایمپورت می کنم داخل phpmyadmin ارور میده لطفاً راهنمایی کنید.
با سلام اول ممنون ازسایت خوبتون .دوم اینکه من یه سایت دارم طراحی میکنم می خوام صفحه ارتباط با مارو باphpوصل کنم به پایگاه داده ،(البته اینم بگم که با نرمافزار دریم ویور cs4 دارم طراحی می کنم)ولی یه مشکلی هست اونم وقتی که می خوام از منوی windowگزینه server behavior رو انتخاب می کنم و از علامت +گزینه my sqlconnection را انتخاب می کنم ودر مرحله آخر که می خوام نام دیتا بیسم رو انتخاب کنم ارور setup site’s testing serverرو میده ،نمیدونم چکار کنم چطوری باید تنظیم کنم خواهش می کنم کمکم کنید….دیگه دارم دیوونه میشم….اگه بتونید کمک کنید یه عمر دعاگوتون میشم..
سلام
این فرمو چطوری باید تو لوکال بالا بیارم ؟
برای بالا اوردن توی لوکال باید sql server رو نصب کرد؟
لطفا کامل توضیح بدین
سلام من می خوام یک رکورد رو با یک لینک پاک کنم. چکار کنم؟؟؟
سلام
ممنون از آموزش مفید شما
یک سوال الان من این قسمت md5 کردن رو به فرم خودم اضافه کردم
ولی وقتی کاربر میخواد وار سایت بشه میگه پسور اشتباهه و وقتی پسوردی که hash شده رو میزنم وارد سایت میشه .
ضمن عرض سلام و خسته نباشید
با تشکر از آموزش خوبتان
اگر بخواهم پیغام های خطا یا validation و پیغام های موفقیت در ثبت اطلاعات و خطا در ثبت اطلاعات در صفحه ی اصلی نمایش داده بشود چیکار باید انجام بدهم ؟
در ضمن اگر امکان دارد فرم را تا حدودی پیشرفته تر نمایید ( منظورم آموزش است )
به عنولن مثال قرار دادن دکمه جستجو و نمایش grid اطلاعات
و ….
موفق و پایدار باشید
سلام دوست عزیز… شاید بتونی کمکم کنی?
فرمی رو که من ساختم که یه سری اطلاعات به زبان فارسی رو در داخل دیتا بیس ذخیره میکنه. ولی این اطلاعات به صورت فارسی ذخیره نمیشه و با حروفی این شکلی اØÙ…د ذخیره میشه!
هر کاری هم میکنم درست نمیشه!
از utf8_unicode و utf8-general و utf8-persian هم در یتا بیس استفاده کردم ولی بازهم درست نشد! شما راهنمایی نداری؟ لطفا اگه راه حلی داری برام ایمیل کن. تشکر
سلام
بعد از اتصال به دیتابیس این کدو بزارین حل میشه
$mysql_query('SET NAMES utf8');
جدا ممنون.خیلی خوب بود.
سلام ببخشین چه طوری میشه واسه کاربر شرط گذاشت که اگر پسوورد رو سه بار غلط زد کپچا برایش ظاهر شود؟
سلام من این کد را نوشتم ولی وقتی داده وارد میکنم فقط جواب مشکلی رخ داده است را میده … میشه علتش رو توضیح بدید
سلام
شاید جدول مربوطه رو نساختین . فایل sql مورد نیاز در سورس آموزش هست می تونین دانلود کنین
سلام اطلاعات فارسی ارسالی به پایگاه داده به صورت علامت سوال نمایش داده می شن علتش چیه؟
تابع توی دیتابیسمون اجرا میشه ولی با تغییر فیلدا دیگه کار نمی کنه چرا؟؟؟؟
سلام
ی سوال دارم اگه بخوام ی combobox یعنی فیلد انتخابی توی فرم بذارم میشه کدشو بگید(فیلد کشویی) و کاربر هرچس انتخاب کرد به دیتابیس بفرسه ممنون
سلام
لطفا سوالات تون رو در انجمن بپرسین تا بشه کامل جواب داد
با تشکر
سلام علی جان خسته نباشی
1 سوال کوچیک داشتم میخواستم راهنمایی کنی منو
سوال :
اگر بخوام تو صفحه خودم یک تگ select بذارم که با انتخاب هر optaion از این select برای من یک المنت Select دیگه با option های مختلف ظاهر بشه چکار کنم ؟
منظورم رو با یک مثال میگم که بهتر متوجه بشی :
فرض کن یک لیست انتخاب جلوی کاربر هست ( select ) بعد به محض اینکه کاربر option اول رو انتخاب میکنه ، یک لیست انتخاب دیگه ظاهر میشه
( مشکلم کد جاوا هست نمیدونم چی بزنم ) .
سلام
ممنونم ، شاید این کمک کنه
سلام خسته نباشید
من ی سایت کارت پستال طراحی کردم ولی هرکاری می کنم نمی تونم عکس ارسال کنم
لطفا کمکم کنید
سلام
ممنونم ، لطفا سوالات خودتون رو در انجمن سایت مطرح نمایید تا زودتر و کاملتر به جواب برسید
http://forum.fotolia.ir
سلام
با سپاس از آموزشتان من کارهای بالا را انجام دادم منتها در وارد نمودن اسامی فارسی دیتا بیس فارسی نشان نمیدهد فکر کنم یکجای کدهای بالا باید ویرایش شود لطفا بررسی نمایید
واقعا از نوشته هاتون لذت میبرم
سلام
چطور اطلاعات رو از پایگاه داده select کنم و تو همون صفحه نمایش بدم به طوری که اسکرول هم داشته باشه.میشه دستورشو برام بگید؟ممنون میشم اگه زود بگین آخه عجله دارم!
با سلام
ممنون از آموزش خوبتون
من اتصال پایگاه داده رو انجانم دادم ولی تتو select مشکل دارم .
if(!mysql_select_db(‘users’)){die(‘MySQL database select error !’);}
هر بلایی سرش آوردم نشد.
لطفا” راهنمایی کنید
سلام
ممنونم ، اول باید دیتابیس رو بسازید و بعد اسمشو اینجا وارد کنین . اینکارو با phpmyadmin می تونید انجام بدید
سلام
ممنون بابت مطلب لطفا اموزش اتصال این فرم رو به این سیستم ETCHATبنویسیدچون سیستم ثبت نام نداره.
سلام
چگونه یک فایل متنی رو در پایگاه داده ذخیره می کنیم ؟ پروژه من در باره بانک مقالات هست ولی نمی دونم چطوری باید فایل ها رو ذخیره کنم ممنون میشم.
سلام
به زودی یک مطلب در مورد ذخیره فایل ها در دیتابیس خواهیم داشت
باسلام
برنامه ی ثبت نام کاربر رو نصب و اجرا کردم
میخام اطلاعاتی که کاربر وارد کرده و ثبت شده است را مشاهده کنم
لطفا راهنمایی کنید؟؟؟؟؟؟؟
با تشکر
دوست عزیز ، حق با شما بود با vertrigo که run کردم سیستم بالا اومد .
حالا برای اینکه یه فرم لوگین برای همین ثبت نام داشته باشیم چه کار کنیم .
آیا مثالی هم برای لاگین شدن از دیتابیس دارید . ممنون میشم راهنمایی کنید.
با تشکر
Bvk
سلام
مرسی بابا آموزش
من 1 وب سایت در دریم ویور طراحی کردم ، و در هاست و دمین یکی از دوستانم تستش کردم، ولی خوب در صفحه ای که من می خواهم کاربر اطلاعات وارد کنه خروجی به هیچ فایلی داده نمی شه خیلی مطالعه کردم مثل اینکه من باید 1 فایل php برای ارجا خروجی داشته باشم ولی اصلا نمی دونم چگونه بنویسم می شه به من لطفا کمک کنید مثلا می خواهم در فرمم اسم و فامیل بازدید کننده رو بگیرم
مرسی
سلام دوست عزیز
خوب مثل همین صفحه تقریبا باید بنویسین . اول یه فرم با دو ورودی(input) اسم و فامیل و بعدش هم یه فایل php که اینا رو بگیره و یا به ایمیلی ارسال کنه یا تو دیتابیس ذخیره کنه
سلام : ضمن تشکر بابت آموزشی که ارائه دادید ، دوست عزیز من یک مشکل پیدا کردم اونم موقعی که ثبت رو میزنم به صفحه register.php که میره کد صفحه رو نشان میده و ذخیره نمیشه . اسم بانک هم test هست در ضمن users.sql هم import کردم . ممنون میشم اگر راهنمایی کنید
سلام
ممنون ، اگه کد رو نشون بده یعنی فایل php روی سرور اجرا نمیشه و به صورت معمولی باز شده . روی کامپیوتر خودتون تست می کنین یا روی هاست ؟ اگه روی کامپیوتر خودتون باید برنامه wamp رو نصب کنین تا سرور نصب بشه
ایا میشه از این کد ها در سیستم های مدیریت محتوی استفاده کرد
سلام
بخواهیم برای تعداد کارکتر در ورودی فیلد پسورد شرط بزاریم به چه شکلی میشه نوشت مثلا” : کمتر از 4 کارکتر نباشد
سلام
می تونید از تابع strlen استفاده کنید . مثلا :
if(strlen($pass)<4)
{
echo 'رمز بايد بزرگتر از 4 کاراکتر باشد';
}
سلام
توضیح مسئله : من یه فرم ثبت نام دارم که میخوام بعد از ثبت اطلاعات 3 فیلد به ایمیل کاربر ارسال بشه و تا حدودی انجام دادم به شرح زیر :
1- ایمیل( از فرم اول فرا خوانی میشود ) و سابجکت (از فرم دوم بصورت ثابت می باشد ) ارسال میشه .
2- وقتی از داخل فایل دوم متن body بین ‘ ‘ پر میشه اون هم ارسال میشه ولی وقتی از یک متغیر فرا خوانی میشه ارسال نمیشه .
کاری که بنده کردم :
بنده یه فرم نوشتم با phpmailer به این صورت که 3 تا فیلد را میگیره و در $Message ذخیره میکنه و به فایل class.phpmailer.php از طریق SESSION میفرسته اما در class.phpmailer.php در فانکشن $body فرا خوانی نمیشه .
خلاصه کدها :
فایل اول :
$Message = ”
Name : $username
Last Name : $password
credit :$credit
expire : $exdate”;
$Message = $_POST[‘Message’];
$_SESSION[“Message”] = $Message;
فایل دوم :
function htmlmail($to, $from, $subject, $body) {
global $error,$guser,$gpwd;
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 0; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = ‘ssl’; // secure transfer enabled REQUIRED for GMail
$mail->Host = ‘smtp.gmail.com’;
$mail->Port = 465;
$mail->Username = $guser;
$mail->Password = $gpwd;
$mail->SetFrom($from);
$mail->Subject = ‘اکانت کاربری شما فعال گردید ‘;
$mail->CharSet = ‘UTF-8’;
$mail->Body = $Message ;
$mail->AddAddress($to);
$mail->IsHTML(true);
$mail->CharSet = “utf-8”;
if(!$mail->Send()) {
//$error = ‘Mail error: ‘.$mail->ErrorInfo;
return false;
} else {
//$error = ‘Message sent!’;
return true;
با تشکر
سلام
بالای همه صفحات تون تابع
session_start();
رو نوشتید ؟ اگه بله لطفا همه فایل های مربوط به ارسال ایمیل رو تو یه فایل zip برای بنده ارسال کنید تا اگه شد حلش کنیمموفقیت
سلام و عرض خسته نباشید
بنده میخواستم یک فرم ثبت نام بنویسم و میخواستم فیلد ایمیل از دیتا بیس چک شود و در صورت تکراری بودن هشدار داده شود و کدی که نوشتم به این صورت میباشد ولی عمل نمی کند لطفا” بنده را راهنمائی کنید :
// Check the e-mail address
$result = mysql_num_rows(mysql_query(“SELECT email FROM account WHERE email=’$emailCHecker'”));
if($result > 0)
{
{die_error(“ایمیل تکراری میباشد“);}
}
//Check the e-mail address
سلام . متشکرم
مي تونيد از کد زير استفاده کنيد
$result=mysql_query("select * from account where email='$email'");
if(mysql_affected_rows()>0) die_error(“ايميل تکراري ميباشد“);
متشکرم جناب آقای زمانی
سلام.
این کد رو باید کجا قرار بدیم؟
شما آی دی یاهو ندارین؟ دیگه من حسابی گیج شدم :((
بفرمایین : [email protected]
ممنون.
یه سوال دیگه هم دارم راجع به همین مطلب. ببخشیدا. مثلا من میخوام اگه فرم ثبت نام کامل بود، پیغام “ثبت نام کاربر تکمیل شد” بالای “نام کاربری” نشون داده بشه و داخل صفحه دیگهای نره. میشه اینم برام یه مثال بزنید؟
برای این کار باید فرم ثبت نام و کدهای php در یک فایل باهم باشند مثلا بنام register.php .اگه می خواید پیام در بالا نمایش داده بشه می تونید همین کدها رو در بالای کدهای html فرم قرار بدید . فقط باید مشخص کنید که اگر کاربر روی دکمه ثبت نام کلیک کرد بخش php اجرا بشه و نه از اول .چون هنوز داده ای برای ثبت نداریم.برای این کار هم باید تمام کدهای php رو داخل یک شرط if قرار بدید و بگید که اگر
if($_POST['send'])
اون موقع کدهای php اجرا بشنمن اینو امتحان کنم ببینم چیکارش میکنم. مرسی.
میگم نمیشه شما همین تغییر رو داخل همین آموزش بدین؟:) اصن نمیتونم درستش کنم!
و یه سوال دیگه:) ببخشید من انقدر سوال میکنما. مثلا برای رمز عبور اگر بخوام بگم حداکثر مقدار x باشه باید چجوری تعریفش کنم؟ من زیاد وارد نیستم تازه دارم یاد میگیرم، خلاصه باید ببخشید دیگه.
باید به ورودی محدودیت بدید مثلا 10 مثل :
الان شما برای محدودیت از کد maxlenght استفاده کردین؟؟؟
بله ولی باید موقع ثبت نام هم چک کنید که همون اندازه مورد نظر شما باشه وگرنه خطا بده با تابع strlen
اممم اینو میشه یه مثال بزنید. آخه الان که داخل فرم محدودیت 10 رو داره خب بیشتر از این مقدار که نمیتونیم عدد بدیم پس چجوری میشه؟
if(strlen($_POST['password'])>8){echo 'Error !';}
دستتون درد نکنه این مورد حل شد.
یه سوال! مثلا همین اعضا رو اگر بخوایم جهت نمایش داخل آمارگیر بکار ببریم از چه کدی باید استفاده کنیم؟ میشه راهنمایی کنید؟
منظورتون رو متوجه نشدم ، لطفا بیشتر توضیح بدید
مثلا من دیدم جاهایی در قسمت آمارگیرشون چنین چیزی دارن:
بازدید امروز:
بازدید دیروز:
تعداد اعضا:
و …
میخواستم بدونم اگر من بخوام تعداد اعضایی که از طریق این فرم عضو شدن نمایش بدم قاعدتا باید عضوهای پایگاه داده رو بخونم دیگه! آما چجوری؟
مثلا با کدی مثل :
$r5=mysql_query("select count(*) from users");
و تعداد کاربران تو این تابع هست :
mysql_result($r5,0)
می تونید echo یا هر کاری خواستین بکنین
با اجازتون من این چند مورد که یادم دادین رو امتحان کنم. اشکالی داشتم باز مزاحمتون میشم. از نظر شما که ایرادی نداره؟
خیر چه اشکالی 🙂
نمیتونم:( یعنی در واقع نمیدونم باید کجا بذارمش:)
من بعدا میام بقیه قسمتهای سایتتون هم میخونم. فکر کنم خواننده پای ثابتتون بشم. 🙂
يه پيشنهاد! نوشته هاتون را به صورت پي دي اف هم براي دانلود بگذارين عالي ميشه.
ممنون از پیشنهادتون ، احتمالا در آینده این کار رو انجام بدیم
دستتون درد نكنه من هرجا رفتم براي آموزش يه تيكه ناقص داشت. اين آمورش ساده و درعين حال پركاربرد و مفيد هست. خيلي ممنون.
ممنون دوست عزیز ، خوب دوستان زیادی این سوال رو دارند و این مطلب رو دقیقا در جواب همین موضوع نوشتیم.
سلام
اقا دمت گرم بیست بود
سلام دوست من
ممنون ، واسه کاربر بیست باید مطلب بیست ام بزاری 🙂
موفقیت
مطلب به جا و خوبی بود. من شروع کارم با php با همین مثال بود
خوشحالیم که مفید بوده 🙂
علی جان از php سر در نمیارم ولی فک کنم یوزر نیم رو مستقیم میریزی تو دیتابیس و این یعنی sql injection بهتره از نظره امنیتی بررسی بشه در دات نت به راحتی روش هایی برای جلوگیری از sql injection و XSS وجود داره در php رو خبر ندارم
درسته محمدجان ، چون بیشتر قصدم تو این بحث فقط آموزش خیلی ساده کار با دیتابیس بود با توجه به سوالات مکرر دوستان، دیگه نخواستم کدها زیاد پیچیده بشن .ولی در مثال های کاربردی حتما باید ورودی ها بررسی بشن همونطور که شما گفتی .
تو php هم راه های مختلفی هست که ساده ترینش تابع mysql_real_scape_string است.
ممنون از نظر بجایی که دادی 🙂