برگزیده های پرشین تولز

ارسال يه آرگومان از يك فايل php به فايل php ديگر!

Piter1356

کاربر تازه وارد
تاریخ عضویت
11 اکتبر 2004
نوشته‌ها
395
لایک‌ها
0
محل سکونت
tehran
سلام
از اينكه سوالاتم نپخته و احيانا خنده داره عذر ميخوام .
3.gif

هر چي باشه ما تازه كاريم ( البته تو php )
حالا سوال من اينه كه :
مثلا يه فايل php داريم كه در اون يه دكمه اي url مقابل رو توليد ميكنه :
http://localhost/student/editstudent.php?id=5
خوب اين url مياد فايل editstudent.php رو اجرا ميكنه و يه آرگومان (عدد 5) به متغيير id كه در همون فايل editstudent.php قرار داره ميفرسته.

حالا تو فايل editstudent.php بايد چه كدي بنويسيم كه هنگام اجراشدن مقدار عدد 5 رو بگيره و به متغيير id نسبت بده ؟
شايد نياز به انجام كار خاصي نباشه !
و اينكه در فايل editstudent.php بايد نوع متغيير id رو تعريف كنيم يانه ؟
 

sama_sally

Registered User
تاریخ عضویت
5 آپریل 2005
نوشته‌ها
2,598
لایک‌ها
1
سن
35
محل سکونت
Essen, Deutschland
هيچ كاري لازم نيست بكني دو تا مثال براي فايل:
PHP:
<?php
//if regiter_globals is on
echo $id; // ECHOS "5"

//if register_globals is off
echo $_GET['id']; // ECHOS "5"
?>
PHP:
<?php
if($id == "5"){
   echo" Hello";
}
if($id == "6"){
   echo" GoodBye!";
}

فقط اینجا دو حالت داره
اگر گزینه register_globals توی php.ini روی on تنظیم شده باشه، فقط کافیه از متغیر id$ که تو url هست استفاده کنی ولی اگه این گزینه off باشه ( که جدیدا اکثر هاست ها روی off میذارن ) باید از متغیر انجمنی استفاده کنی:
PHP:
$HTTP_GET_VARS['id'];
//or 
$_GET['id']; // This is Simpler :D

موفق باشی
 

Piter1356

کاربر تازه وارد
تاریخ عضویت
11 اکتبر 2004
نوشته‌ها
395
لایک‌ها
0
محل سکونت
tehran
يعني :

کد:
<a href='editstudent.php?id=$id>
به
کد:
<a href="editstudent.php?id=$_GET['id']">
تغيير پيدا كنه ؟
 

miladmovie

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
1,939
لایک‌ها
3
سن
39
اگر من و سالار منظورت رو درست فهمیده باشیم بله همن کدی که نوشتی
البته اون کد اولی که خودت نوشتی در صورتی که register_global=on باشه هم کار می کنه
 

Piter1356

کاربر تازه وارد
تاریخ عضویت
11 اکتبر 2004
نوشته‌ها
395
لایک‌ها
0
محل سکونت
tehran
10.gif


ممنونم


يكي از دوستان روي هاست خودش امتحان كرد درست عمل كرد و لي تو هاست من درست عمل نكرد !

اين موضوع ميتونه به اين معني باشه كه register_global در هاست دوستم on هستش و در هاست من off هستش.
 

Piter1356

کاربر تازه وارد
تاریخ عضویت
11 اکتبر 2004
نوشته‌ها
395
لایک‌ها
0
محل سکونت
tehran
درسته , من register_global رو توی ایزی پی اچ پی به ON تغییر دادم . درست شد .

حالا باید خط به خط همه کد ها رو اصلاح کنم
 

Piter1356

کاربر تازه وارد
تاریخ عضویت
11 اکتبر 2004
نوشته‌ها
395
لایک‌ها
0
محل سکونت
tehran
اگه امکان داره این خط رو اصلاح کنید . طوریکه با register_global =on کار کنه .

کد:
 echo "<tr bgcolor=$color><td>$id:</td><td>$question</td><td>[ <a href='editstudent.php?id=$id'>ظˆغŒط±ط§غŒط´</a> ]</td><td>[ <a href='deletestudent.php?id=$id' onClick=\"return confirm('ط¢غŒط§ ظ…غŒ ط®ظˆط§ظ‡غŒط¯ ط§غŒظ† ط§ط³ظ… ط±ط§ ظ¾ط§ع© ع©ظ†غŒط¯ طں')\">ظ¾ط§ع© ع©ط±ط¯ظ†</a> ]</td></tr>";

البته اگه امکان داره .

ممنون میشم
 

Piter1356

کاربر تازه وارد
تاریخ عضویت
11 اکتبر 2004
نوشته‌ها
395
لایک‌ها
0
محل سکونت
tehran
ببخشید . اشتباه شد .

باید با register_global =off کار کنه . که کار نمیکنه !
 

sama_sally

Registered User
تاریخ عضویت
5 آپریل 2005
نوشته‌ها
2,598
لایک‌ها
1
سن
35
محل سکونت
Essen, Deutschland
PHP:
echo "<tr bgcolor=$color><td>" . $_GET['id'] . ":</td><td>$question</td><td>[ <a href='editstudent.php?id=" . $_GET['id'] . "'>ظˆغŒط±ط§غŒط´</a> ]</td><td>[ <a href='deletestudent.php?id=" . $_GET['id'] . "' onClick=\"return confirm('ط¢غŒط§ ظ…غŒ ط®ظˆط§ظ‡غŒط¯ ط§غŒظ† ط§ط³ظ… ط±ط§ ظ¾ط§ع© ع©ظ†غŒط¯ طں')\">ظ¾ط§ع© ع©ط±ط¯ظ†</a> ]</td></tr>";

اونجاهایی رو که id باید اصلاح میشد اصلاح کردم
 

Piter1356

کاربر تازه وارد
تاریخ عضویت
11 اکتبر 2004
نوشته‌ها
395
لایک‌ها
0
محل سکونت
tehran
دستت در نكنه
ولي وقتي اون خط رو جايگزين مي كنم با خطاي زير مواجه ميشم !


کد:
Notice: Undefined index: id in d:\program files\easyphp1-8\www\student\editstudentlist.php on line 60

لاين 60 همون لاينيه كه جايگزين كردم
 

sama_sally

Registered User
تاریخ عضویت
5 آپریل 2005
نوشته‌ها
2,598
لایک‌ها
1
سن
35
محل سکونت
Essen, Deutschland
این خطا بیشتر توی ویندوز میاد و زیاد مهم نیست این خط رو توی دومین خط کدات بعد از کلمه php?> بذار ( یعنی زیرش! ):
PHP:
global $id;
 

Piter1356

کاربر تازه وارد
تاریخ عضویت
11 اکتبر 2004
نوشته‌ها
395
لایک‌ها
0
محل سکونت
tehran
تو اين خط id رو بعنوان متغيير Global معرفي مي كنيم

متاسفانه باز هم ارور ميده !
 

carp3

کاربر تازه وارد
تاریخ عضویت
15 آپریل 2005
نوشته‌ها
1,318
لایک‌ها
1
سن
94
اگه كارشو دست انجام ميده فقط ارور ميده كافيه كد زير رو به اول صفحه اضافه كني‌:
PHP:
error_reporting (E_ALL ^ E_NOTICE);

براي گرفتن ارسال ها به روش GET ميتوني از كد زير هم استفاده كني كه همه جا جواب ميده
PHP:
$id = $HTTP_GET_VARS['id'];
براي POST
PHP:
$id = $HTTP_POST_VARS['id'];
 

Piter1356

کاربر تازه وارد
تاریخ عضویت
11 اکتبر 2004
نوشته‌ها
395
لایک‌ها
0
محل سکونت
tehran
كارشو درست انجام نميده

راستی مگه سالار نگفته بود که نیاز ی به نوشتن کد اضافه ای برای دریافت مقدار متغییر نیست !
 

sama_sally

Registered User
تاریخ عضویت
5 آپریل 2005
نوشته‌ها
2,598
لایک‌ها
1
سن
35
محل سکونت
Essen, Deutschland
به نقل از Piter1356 :
كارشو درست انجام نميده

راستی مگه سالار نگفته بود که نیاز ی به نوشتن کد اضافه ای برای دریافت مقدار متغییر نیست !

خوب مگه اینکه carp نوشته اضافیه؟
این کار فقط برای مواقعیه که register_globals روی off هست
 

Piter1356

کاربر تازه وارد
تاریخ عضویت
11 اکتبر 2004
نوشته‌ها
395
لایک‌ها
0
محل سکونت
tehran
آخه شما فرموده بودی برای دریافت مقدار متغییر نیاز به هیچ کدی نیست .

و دوستمون فرمودند : براي گرفتن ارسال ها به روش GET ميتوني از كد زير هم استفاده كني كه همه جا جواب ميده
 

sama_sally

Registered User
تاریخ عضویت
5 آپریل 2005
نوشته‌ها
2,598
لایک‌ها
1
سن
35
محل سکونت
Essen, Deutschland
به نقل از Piter1356 :
آخه شما فرموده بودی برای دریافت مقدار متغییر نیاز به هیچ کدی نیست .

و دوستمون فرمودند : براي گرفتن ارسال ها به روش GET ميتوني از كد زير هم استفاده كني كه همه جا جواب ميده
به اين 4 خط ميگي كد؟ :blink:
 

Piter1356

کاربر تازه وارد
تاریخ عضویت
11 اکتبر 2004
نوشته‌ها
395
لایک‌ها
0
محل سکونت
tehran
کد نیست پس چیه ؟

کوچیک و حقیر هست ولی باز هم کده .
 
بالا