امروز دیگه با دست پر امدم . می خوام ساخت فرم ارسال اطلاعات با html و دریافت اطلاعات با php رو براتون بگم ، در واقع ما سه تا فایل می سازیم یکی برای ارسال اطلاعات که باید بازدید کننده مشخصات خودش را وارد کند که این قسمت با html ساخته می شود و قسمت بعد با php طراحی می شود که برای دریافت اطلاعات است و باید اطلاعات را در بانک اطلاعاتی mysql ثبت کند . و قسمت بعد برای خواندن اطلاعات ثبت شده است. مثلا سایتی می خواهد بازدید کننده ها وارد سایتش بشن و مثلا برای کار ثبت نام کنن و اطلاعاتشون رو برای رئیس سایت ارسال کنند میشه از این قسمت ها برای سایت استفاده کرد.
1) اولین کاری که می کنیم باید دیتابیس و جدول رو ایجاد کنیم. برنامه ی XAMPP را اجرا می کنیم و Apach و Mysql را start کنید. و به آدرس http://localhost/phpmyadmin/ بروید و در قسمت
jadid را وارد کنید . و روبروی آن ut8_persian_ci را انتخاب کنید . و MySQL connection collation: را هم ut8_persian_ci انتخاب کنید. و دکمه ی ساختن را کلیک کنید. و در قسمت ساخت جدول جدید در پایگاه داده jadid و در قسمت اسم نام جدول یعنی karbar را وارد کنید. و در قسمت Number of fields: عدد 3 را وارد کنید. و دکمه ی تایید را کلیک کنید.
و مشخصات زیر را وارد کنید:
اول فیلد id را از نوع int و index از نوع PRIMARY و A_I (مخفف AUTO_INCREMENT است.) قرار دهید. و بقیه ی گزینه ها هم طبق جدول زیر:
ستون | نوع | طول/مقادیر | Collation |
sname | VARCHAR | 20 | ut8_persian_ci |
sfamily | VARCHAR | 20 | ut8_persian_ci |
Storage Engine: پیش فرض انتخاب شده. و Collation: را هم برای سازگاری با زبان فارسی
ut8_persian_ci انتخاب کنید. و دکمه ی ذخیره را کلیک کنید. بعد از اینکه جدول را ساختید ان را انتخاب کنید و بعد در قسمت درج کلیک کنید و مشخصاتی را وارد کنید . و دکمه ی تایید را کلیک کنید.
حالا نوبت به ساخت فرم درج مشخصات رسید . کدهای زیر را داخل Notepad ریخته و با نام form.htm در پوشه ی htdocs ذخیره کنید. اگه notepad ویندوز بود در قسمت Encoding گزینه ی UTF-8 را انتخاب کنید و اگر++ notepad بود به منوی Encoding رفته و گزینه ی Encode in UTF-8 without BOM را انتخاب کنید.
<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="UTF-8">
<title>ارسال</title>
</head>
<body>
<form method="post" dir="rtl" action="add_record.php">
نام: <input type="text" name="sname" size="20">
فامیلی: <input type="text" name="sfamily" size="20">
<input type="submit" value="ارسال" name="B1">
<input type="reset" value="پاک" name="B2">
</form>
</body>
</html>
این فرم را قبلا توضیح دادم. کد بالا دو تا تکست ایجاد می کنه که در قسمت add_record.php اطلاعات وارد شده دریافت میشه. در قسمت name در این کد حتما باید نامی نوشته بشه تا در قسمت add_record.php اطلاعات دریافت بشه . مثلا :"name="sfamily
حالا نوبت قسمت دریافت اطلاعت هست . کدهای زیر را با نام add_record.php در پوشه ی htdocs ذخیره کنید.
<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="UTF-8">
<title>دریافت</title>
</head>
<body>
<?php
if(isset($_POST['B1'])){
if(isset($_POST['sname'])){
$sname=$_POST['sname'];
}
if(isset($_POST['sfamily'])){
$sfamily=$_POST['sfamily'];
}
//لوکال هاست شما
$Host="localhost";
// نام کاربری بانک اطلاعاتی
$User="root";
// کلمه عبور بانک اطلاعاتی
$Password="";
// نام بانک اطلاعاتی
$Dbname="jadid";
$Link= mysql_connect($Host,$User,$Password);
//برای سازگاری به زبان فارسی
mysql_set_charset('utf8',$Link);
$Query="INSERT into `karbar` (`sname`,`sfamily`) values ('$sname','$sfamily')";
if (mysql_db_query($Dbname,$Query,$Link)) {
print("اطلاعات ثبت شد ");
} else {
print("خطا در ثبت اطلاعات");
}
}
?>
</body>
</html>
حالا نوبت رسید به قسمت خواندن مطالب ثبت شده در بانک اطلاعاتی .
کد های زیر را با نام jadval.php در پوشه ی htdocs ذخیره کنید .
<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="UTF-8">
<title>نمایش مطالب</title>
</head>
<body>
<?php
$servername="localhost";
$dbname="jadid";
$user="root";
$pass="";
$dblink=mysql_connect($servername,$user,$pass);
mysql_select_db($dbname,$dblink);
// انتخاب مطالب جدول
mysql_query("SET CHARACTER SET utf8",$dblink);
$dbresult=mysql_query("SELECT * FROM `karbar`",$dblink);
//برای سازگاری با فارسی
while($record=mysql_fetch_assoc($dbresult))
{
print($record["sname"]."<br/>".$record["sfamily"]."<hr>");
}
mysql_close($dblink);
?>
</body>
</html>
حالا باید به آدرس http://localhost/form.htm بروید و مقدار نام و فامیلی را پر کنید.و روی دکمه ی submit کلیک کنید و باید پیام اطلاعات ثبت شد را به شما بدهد.بعد باید به آدرس http://localhost/jadval.php بروید تا مطالب ثبت شده را ببینید.
نکته : برای سازگاری با زبان فارسی من این کد زیر را در این کدها وارد کردم:
<meta charset="UTF-8">
دستورات mysql در ورژن های جدید php پشتیبانی نمیشه. بهتره از دستورات mysqli یا pdo استفاده کنید. اینو نوشتم که دیگه سوال نکنید. این آموزشی که در بالا نوشتم مال چند سال پیش هست.
سلام.بسیار ساده و قشنگ بود.ممنون
سلام
خیلی ممنون توی وب دنبال یه همچین چیزی میگشتم
میشه توضیح بدین بعد از ساختن این فایل ها اونارو چطوری میتونم توی یه هاست رایگانی مثل 000webhost.com آپلود کنم
وارد ریشه ی سایت بشو وارد فایل root و htdocs و فایل رو اونجا آپلود کن. قسمت پایگاه داده هم که معلومه.
با سلام
خیلی ممنونم من چند سال پیش یک کلاس فشرده رفته بودم
که نتیجش فقط یک ذهنیت از php بود ولی الان با این مقاله خیلی قشنگ توی ذهنم نشست . . . . . ممنونم
خیلی خوب و مفید بود
مرسی
سلام. واقعا مطلب به درد بخوری بود. خیلی از شما خوشم اومد. اگر می شود کد php آپلود کردن فایل هم بگذارید. با تشکر.
متشکرم.
برای این آموزش میتونید کتاب آموزش php به زبان ساده رو که خودم نوشتم رو بخونید.
سلام
خیلی واضح توضیح دادین مرسی
یه سوال:من میخوام آخرین اطلاعات وارد شده به پایگاه داده بخونم باید برنامش با php چطوری بنویسم.
نمیخوام کل اطلاعات بده فقط اطلاعات مربوط به نفر آخری که اطلاعاتش در پایگاه ثبت شده
باتشکر
شما باید دستور زیر را از حلقه بیاری بیرون یعنی از آکولاد {
print($record["sname"]."
".$record["sfamily"]."<hr>");
واقعا آموزش مفیدی بود من که ازش استفاده کردم خیلی ممنون
سلام ممنون که کمکم کردی!
ی سوال وب داشتم خواهش میکنم کمکم کن !
من یک سری متن یا اطلاعات داخل وبم ریختم حالا میخوام جستجوی پیشرفته هم بزارم تا راحت مطلبش را پیدا کنه .
مثلا:متن
عنوان خبر
تاریخ
و...
کدش چجوریه.اگر کمکم کنی واقعا ممنونت میشم .
مرسی
از این روش ها می تونید استفاده کنید
select * from `jadval` where `date` like '%matn%'
SELECT * FROM (`jadval`) WHERE MATCH (`title`,`msg`) AGAINST ('$valuei' IN BOOLEAN MODE)
سلام
ممنون از کمکتون
سلام خیلی خیلی از اموزشتون ممنونم نمیدونید چقدر دنبال این گشتم.
با سلام
چطور میشه متنی که قراره پیام ارسال بشه رو چطور میشه اپشن های زیر رو به اون اضاف کرد -
- یه مثال واضح = من میخوام یه ایمیل بفرستم وقتی متن رو مینویسم مخوام اسم خودم با قلم اریال و اندازه 20 باشه - منظورم همین گزینه ها و اپن هایی هستن که بالای فرم وجود دارن
ممنون
در مورد ارسال ایمیل با فرمت html جستجو کن.
سلام ممنون بابت آموزشات
ی سوال حالا فرض کن من بخوام فرمم 4 تا مقدار رو بفرسته به آدرسی که تو action گفتم!
ب غیر از اضافه کردن فیلدهای جدید تو صفحه فرم و تغییر دادن خط کد صفحه ی دریافتی به زیر :
$Query="INSERT into $Tablname values ('$_POST[Name]','$_POST[Family]','$_POST[Age]','$_POST[City]') ";
کار دیگه ای باید انجام داد ؟!
چون این شکلی ( خطا در ثبت اطلاعات) میده !!
شما در جدول از دیتابیس در قسمت phpmyadmin فیلد های جدید رو اضافه کردید؟
ببخشید یادم رفت بگم تعداد ستون ها رو هم تو دیتابیس 4 تا دادم!
الان کد شما درست برام ارسال نشده و نمیدونم تعداد فیلد های شما چند تاست؟ ولی هر چی هست شما باید به تعدادش یک فیلد در دیتابیس ایجاد کنید.
سلام دوباره
فایلام رو براتون آپلود کردم :
http://uploadboy.com/3z2sg0tho4y1.html
column ها و دیتابیس فکر نکنم مشکلی داشته باشن. خواهشا اگه میشه ی چک کنید کدهام رو . . .
شما اصلاً فیلد هایی که مقدار باید بهش ریخته بشه رو مشخص نکردید.
صفحه ی 65 و 66 کتاب رو ببینید: یه همچین خطی هست:
$Query="INSERT into `karbar` (`sname`,`sfamily`) values ('{$name}','{$lastname}')";
تشکر . آموزش مفیدی بود
خط ۲۳ مربوط به قسمت دریافت , خطا میده....
دلیلش چیه؟؟؟؟
من با wampserver امتحانش کردم
چه خطایی بهت میده؟
آقا خیلی خیلی دمت گرم استفاده کردیم ما دو دانشجوی رشته کامپیوتر هستیم
و8 نمره درس طراحی وب رو با توضیحات شما گرفتیم خیلی عزیزی!
با سلام و تشکر فراوان.
یه سوال دارم اگر بخواهیم کاربرانی که ثبت نام می کنند علاوه بر اینکه در phpmyadmin (پایگاه داده) نشان داده شود، در صفحه سایت هم قابل نمایش باشد و بتوانیم آن را حذف و اضافه کنیم از چه کدی باید استفاده کنیم؟؟؟؟
متشکرم.
پیشنهاد میکنم این کتاب رو بخونید:
http://barnamenevisi.blogsky.com/1393/01/01/post-123
سلام آقا دمت گرم فوق العاده بود
سلام.واقعا ممنون بابت این آموزش مفید تون .
واقعا تو این زمینه مشکل داشتم.بازم ممنون.
یه سوال داشتم؟
مثلا اگر من دو بار اسم و فامیل یکسانی رو وارد کردم و ارسال کردم به من هشدار بده که این اسم و فامیل از قبل ذخیره شده.
ممنون میشم اگه کمکم کنید
سلام قبل از ارسال به دیتابیس یه select بکنید و بررسی کنید که مقدار وارد شده در دیتابیس وجود داره یا نه؟
سلام.ممنون از مطالب خوب و مفیدتون.میخواستم بپرسم برای حذف یا ویرایش اطلاعات جدول باید چیکار کرد؟اگه امکانش هست کدش رو بذارید
در بخش کتاب های همین وبلاگ کتاب آموزش آسان و کاربردی php و mysql را دانلود کنید.
دمـــــــــــــــت گــــــــــــــرم
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in E:\xamp\htdocs\add_record.php:24 Stack trace: #0 {main} thrown in E:\xamp\htdocs\add_record.php on line 24
واسعه من هنگام ثبت این ارور میاد کمک کنید
دستورات mysql دیگر در ورژن های جدید php پشتیبانی نمیشه . بهتره از mysqli یا pdo استفاده کنید.
ممنون
بالفرض ما در فرم ثبت نام کد ملی هم گذاشته باشیم و ثبت نام هم انجام بشه
حالا برای فراخوانی اطلاعات یک شخص با کد ملی چجوری باید بنویسیم ؟ ممنون میشم کدشو بزارید
SELECT * FROM `jadval` WHERE code=123456
سلام ممنون از اموزش خوبتون
چطور میشهموقع ثبت نام یک مقدار برگشتی به کاربرنمایش داده بشه مثلاشماره صندلی ممنون میشم راهنمایی کنید
می تونید با ثبت رکورد شماره ی رکورد ثبت شده رو هم چاپ کنید ، شما اگر با دستورات mysql کار می کنید می تونید از دستور mysql_insert_id() برای گرفتن شماره ی رکورد استفاده کنید.
سلام من این کد ها که نوشتم چون phpاز mysqlپشیبانی نمیکند تبدیلش کردم به mysqli ولی در قسمت دریافت خط71و 75 ارورمیده و خط 75یعنی این قسمت if (mysql_db_query($Dbname,$Query,$Link))
اصلا اجازه نمیده my sqliبشه و وقتی به این mysqliتبدیلش میکنم از حالت سبزرنگ ودرستی خودش در واقع خارج میشه دلیلش چیه؟
مثالش اینجا هست : https://www.w3schools.com/php/func_mysqli_query.asp