PDA

View Full Version : سوال: پردازش فرم بدون فرستادن مقادیر توسط POST و GET



e601
سه شنبه 16 خرداد 1391, 12:22 عصر
سلام

من یه فرم دارم که البته این فرم داخل فایل html نیست بلکه درون یک فایل php ایجاد میشه.

حالا با توجه به این موضوع چطور میتونم بدون فرستادن اطلاعات فرم به یک فایل php خارجی ، پردازش رو داخل همین فایلی که فرم درونش قرار داره انجام بدم؟

نمیدونم درست توضیح دادم یا نه !

منظورم اینه که چون فرم رو داخل یه فایل php ایجاد میکنم نمیخوام از طریق خاصیت action اطلاعات رو به یه فرم دومی ارسال کنم بلکه میخوام پردازش داخل همین فایل php حاضر صورت بگیره.

راهی هست؟

webpower
سه شنبه 16 خرداد 1391, 12:37 عصر
ببینید وقتی کاربر درخواست این صفحه php رو میکنه موتور php کدهای php رو بررسی و اجرا کرده ولی کاری به html نداره و در نهایت این فرم به صورت اچ تی ام ال ارسال میشه که فقط شامل کدهای اچ تی ام ال جاوا اسکریپت و... و عاری از کدهای Php هست. پس شما چه صفحه رو با html خالی و چه با php ایجاد کرده باشید تفاوتی نداره.

اگر کلا نمیخواید عملیات خاصی انجام بدید باید جاوا اسکریپت بلد باشید. مثلا چند پیغام ساده، بدون ارسال شدن فرم، با توجه به محتویات متن کاربر
اگر منظورتون اینه که میخواید از قابلیت ارسال فرم استفاده کنید ولی دوباره به همین صفحه فرستاده بشه تا عملیات بعد از ارسال هم در همین صفحه اجرا بشه باید یک شرط ایجاد کنید که در یک صورت فرم اجرا بشه در یک صورت دیگه اطلاعات ارسال شده پردازش بشه. اینطوری:

if(isset($_GET['bt'])){
/////خواندن اطلاعات فرم
}
else{
/////ایجاد فرم
}

اینم همونه:

if(isset($_GET['bt'])){
/////خواندن اطلاعات فرم

exit;
}
/////ایجاد فرم

e601
سه شنبه 16 خرداد 1391, 12:52 عصر
اگر منظورتون اینه که میخواید از قابلیت ارسال فرم استفاده کنید ولی دوباره به همین صفحه فرستاده بشه تا عملیات بعد از ارسال هم در همین صفحه اجرا بشه باید یک شرط ایجاد کنید که در یک صورت فرم اجرا بشه در یک صورت دیگه اطلاعات ارسال شده پردازش بشه.

سلام

دقیقا منظورم همینه.
مثلا فرض کنید فرمی که اطلاعات رو از کاربر میگیره داخل فایل x.php ایجاد میشه و اطلاعات رو از کاربر میگیره. حالا بجای اینکه توسط خاصیت action فرم ، اطلاعات رو به یک فایل php دوم مثلا y.php ارسال کنیم ، میخوام عملیاتی که در فایل y.php انجام میشه رو در همین فایل x.php انجام بدیم.

حالا اگه درست متوجه شده باشم شما میفرمایید که با دستور if مشخص کنیم که فایل x.php فرم رو ایجاد کنه و یا اینکه اطلاعات دریافتی از فرم رو پردازش کنه. درسته؟

بنابراین باید خاصیت action رو برابر همین فایل x.php قرار بدم؟

------------------------------------------------------------------------------------
توضیح اینکه بعد از دریافت اطلاعات از کاربر باید عملیاتی روی دیتابیس انجام بشه و وضعیت سایت هم به گونه ای هست که اگه اطلاعات رو از فرم به یک فایل php خارجی ارسال کنیم ، برای کار کردن با دیتابیس دنگ و فنگ داریم (توضیحش خیلی طولانیه) به همین دلیل میخوام پردازش اطلاعات دریافتی از کاربر رو داخل همین فایل php حاضر انجام بدم...


با تشکر فراوان

webpower
سه شنبه 16 خرداد 1391, 13:02 عصر
سلام
بله در اون دستور if، تابع isset مال اینه که بفهمیم چنین مقادیری (عنصر اچ تی ام ال ـی با نام bt) به صفحه ارسال یا در واقع مقدار دهی شده یا نه
میتونید action رو برابر x.php قراربدید یا برابر با هیچی، اینطوری: ""=action یا "action="x.php

e601
سه شنبه 16 خرداد 1391, 16:30 عصر
سلام

راستش نتونستم به درستی از دستور isset استفاده کنم ! میشه نمونه کد بذارید؟

من تو php تازه کارم ! :چشمک:

webpower
سه شنبه 16 خرداد 1391, 17:04 عصر
if(!isset($_POST['username'])){
?>
<form method="post" action="">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" value="Send" />
</form>
<?php
}
else{
echo $_POST['username']."<br>";
echo $_POST['password'];
}

خط اول تابع isset هست که در صورتی که نتیجه رو درست برگردونه دستورات اجرا میشه یعنی اگر username توسط کاربر مقدار داده شده باشه (set شده باشه) دستورات اجرا میشه ولی خط اول کمی با این چیزی که گفتم متفاوته چون پشت تابع isset یه علامت ! گذاشتم. علامت ! شرط رو معکوس میکنه، یعنی دقیقا برعکس چیزی که گفتم. پس خط اول میگه که اگر username توسط کاربر مقدار دهی نشده باشه فرم رو نمایش بده

اون $_POST رو هم نمیدونم میشناسید یا نه ولی کارش دریافت مقادیری هست که با method پست ارسال شده مثلا اگر توی فرم یک تکست باکس به نام username باشه بعد از ارسال فرم توی صفحه گیرنده میشه با این دستور مقدارش رو دریافت کرد.

e601
چهارشنبه 17 خرداد 1391, 09:54 صبح
خط اول تابع isset هست که در صورتی که نتیجه رو درست برگردونه دستورات اجرا میشه یعنی اگر username توسط کاربر مقدار داده شده باشه (set شده باشه) دستورات اجرا میشه ولی خط اول کمی با این چیزی که گفتم متفاوته چون پشت تابع isset یه علامت ! گذاشتم. علامت ! شرط رو معکوس میکنه، یعنی دقیقا برعکس چیزی که گفتم. پس خط اول میگه که اگر username توسط کاربر مقدار دهی نشده باشه فرم رو نمایش بده

اون $_POST رو هم نمیدونم میشناسید یا نه ولی کارش دریافت مقادیری هست که با method پست ارسال شده مثلا اگر توی فرم یک تکست باکس به نام username باشه بعد از ارسال فرم توی صفحه گیرنده میشه با این دستور مقدارش رو دریافت کرد.

سلام

دیگه در این حد هم تازه کار نیستم عزیز :چشمک:

همون خط اول دستور if رو دیدم کارم راه افتاد البته همین یه نکته برای من خیلی مهم بود و گیر کرده بودم !

خیلی لطف کردی :تشویق: