• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

ارسال يه آرگومان از يك فايل 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
سن
36
محل سکونت
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
سن
40
اگر من و سالار منظورت رو درست فهمیده باشیم بله همن کدی که نوشتی
البته اون کد اولی که خودت نوشتی در صورتی که 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
سن
36
محل سکونت
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
سن
36
محل سکونت
Essen, Deutschland
این خطا بیشتر توی ویندوز میاد و زیاد مهم نیست این خط رو توی دومین خط کدات بعد از کلمه php?> بذار ( یعنی زیرش! ):
PHP:
global $id;
 

Piter1356

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

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

carp3

کاربر تازه وارد
تاریخ عضویت
15 آپریل 2005
نوشته‌ها
1,318
لایک‌ها
1
سن
95
اگه كارشو دست انجام ميده فقط ارور ميده كافيه كد زير رو به اول صفحه اضافه كني‌:
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
سن
36
محل سکونت
Essen, Deutschland
به نقل از Piter1356 :
كارشو درست انجام نميده

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

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

Piter1356

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

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

sama_sally

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

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

Piter1356

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

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