فرم های HTML در PHP
مهمترین چیز موقع کار کردن با فرمهای HTML و PHP این است که هر عنصر در فرم HTML به طور اتوماتیک در فرم PHP قابل دسترس و ردیابی است.
در PHP با استفاده از متغیرهای POST_$ و GET_$ می توان به اطلاعات فرم های HTML دسترسی داشت.
مثال:
در مثال زیر یک فرم HTML با سه عنصر زیر تعریف شده است:
- فیلد input از نوع text که با نام "fname" در کد PHP قابل ردیابی است.
- فیلد input از نوع text که با نام "age" در کد PHP قابل ردیابی است.
- فیلد input از نوع submit که محتویات textها را به صفحه "welcome.php" می فرستد.
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="fname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
توجه: در مثال بالا از دو خصوصیت در تگ form استفاده شده ولی به صورت کلی خصوصیات تگ form به صورت زیر است:
- action: اگر submit اتفاق افتاد، اطلاعات فرم HTML به صفحه ای که در این خصوصیت مشخص شده ارسال می شود.(به صورت پیش فرض صفحه جاری در نظر گرفته می شود)
- method: با استفاده از این خصوصیت مشخص می کنیم که ارسال اطلاعات از فرم HTML به صفحه PHP به چه شکل باشد، اگر آنرا با مقدار "get" پر کنیم، اطلاعات فرم در آدرس صفحه قرار می گیرد و ارسال می شود، و برعکس اگر آنرا با مقدار "post" پر کنیم، اطلاعات به صورت یک آرایه ارسال می شود.(به صورت پیشفرض Get در نظر گرفته می شود)
- name: نام فرم است كه برای php نیازی به آن نداریم ولی اگه بخواهیم از جاوا اسكریپت استفاده كنیم نیاز می شود (مثل چك كردن صحت ایمیل قبل از ارسال)
- target: نوع باز شدن صفحه مقصد را مشخص می کند كه شامل صفحه جاری ، صفحه جدید ، صفحه پدر ، یك فریم خاص و ... است.
- ...
فایل "welcome.php" می تواند چیزی شبیه زیر باشد:
<html>
<body>
Welcome <?php echo $_POST["fname"]; ?>!<br />
You are <?php echo $_POST["age"]; ?> years old.
</body>
</html>
اگر در فرم HTML تعریف شده تکس باکس ها را به صورت "fname=Amir" و "age=28" مقدار دهی کنیم خروجی برنامه بعد از کلیک روی دکمه "submit" به صورت زیر خواهد بود:
Welcome Amir!
You are 28 years old.
همانطور که قبلاً گفته شد متغیرها با علامت "$" شروع می شوند، در صفحه PHP بالا نیز از متغیری بنام "post_$" استفاده شده که در فصل بعد توضیح داده خواهد شد.
اعتبار سنجی فرم (Validation Form)
اعتبار سنجی فرم یا Validation Form یعنی چک کردن ورودی های کاربر، قبل از اینکه در دیتابیس ذخیره شود، مثلاً در بالا برای تکس باکس "age" باید حتماً کاراکترهای عددی وارد شود، در غیر این صورت برنامه باید پیغام خطا بدهد.
به دو صورت می توان اعتبار سنجی کرد:
- client scripts: اعتبار سنجی سمت سرویس گیرنده انجام می شود که در این صورت سرعت بیشتر خواهد بود.
- server validation: اعتبار سنجی سمت سرویس دهنده انجام می شود، در حقیقت این وظیفه را یک صفحه PHP که روی سرور قرار دارد انجام می دهد.
در فصل های آینده راجع به این موضوع به صورت کامل توضیح داده خواهد شد.
برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.
Welcome !
You are years old.
جای اسم و سن چیزی نمی نویسه.
با چک کردن این شروط میتوان مطمئن شد که فرم ما صحیح ارسال شده است... البته باید مقادیر کنترلها رو اعتبارسنجی کرد که خود این یه بخش مجزا داره.
دادها از طریق فرم توسط تو متد GET یا POST ارسال میشن. در این مثال داده ها توسط متد POST ارسال شدن.
وقتی که داده ارسال میشه، این مقادیر داخل آرایه ای سراسری به نام POST_$ ریخته میشه.
وقتی که این آرایه مقدار داشته باشه، تعداد خونه های اون بیشتر از صفر هست. توسط دستور count($_POST) > 0 تشخیص میدیم که این آرایه مقدار داره یا نه. اگر مقداری بیشتر از صفر داشت شرط ما درست است و وارد if میشه.
دلایل مختلفی برای عدم اجرا و بروز خطا وجود داره. مثلا:
- این که در سیستم شما فایلهای php اجرا نمیشن.
- مسیر و آدرسی دهی اشتباه هست.
- کد اشتباه هست.
و ...
برای راهنمایی بهتر، شما کد و خطایی که مشاهده میکنید رو قرار بدید.
موفق باشید.
من این دو فایل فرم و welcome.php را روی سرور اپلود کردم ولی جواب نمیدهد می شه بگید اگر خواستیم روی هاست خودمان امتحان کنیم چه شکلی لطفا همین یک سوال را جواب دهید
اگه در سیستم شما برنامه xamp نصب هست باید در مسیر ریشهی این برنامه برید. پوشهای هست به نام httpdocs که باید فایلها پروژه رو در این پوشه قرار بدید تا بتونید فایلهای php رو اجرا کنید.
وقتی در مرورگر عبارت localhost رو وارد کنید، دقیقا محتویات این پوشه (httpdocs) به شما نمایش داده خواهد شد.
در مورد مثال هم من یه نمونه کد خیلی ساده برای شما قرار دادم. کل کد رو کپی و در یک فایل با پسوند php. ذخیره کنید و سپس در مسیر پوشهای که بهتون گفتم قرار بدید (ترجیحاً نام فایل رو page_name.php قرار بدید). سپس در مرورگر با عبارت localhost/page_name.php میتونید فایل رو اجرا و نتیجه رو مشاهده کنید.
کد:
<?php
if(count($_POST) > 0 && isset($_POST['btnSend'])){
$name = $_POST['txtName'];
$age = $_POST['txtAge'];
echo "Your name: <b>" . $name . "<b><br>";
echo "Your age: <b>" . $age . "<b><br><br><br>";
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Form</title>
<style>
input{border:1px solid #ccc; padding:2px;}
</style>
</head>
<body>
<div>
<form method="post" action="">
<table>
<tr>
<td>Name: </td>
<td><input type="text" name="txtName" /></td>
</tr>
<tr>
<td>Age: </td>
<td><input type="text" name="txtAge" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="btnSend" value="Send"/></td>
</tr>
</table>
</form>
</div>
</body>
</html>
واقعا سایت مفیدی ساختین برای کسایی که میخوان واقعا یاد بگیرن . مطالب از نمونه های خارجی هم کاملتره و ساده تر بیان شده .
موفق باشید و کلی آرزوهای خوب برای شما