نمایش نتایج 1 تا 6 از 6

نام تاپیک: در Php من متغیرهای فرم را نمی شناسد. لطفا" کمک.

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1382
    محل زندگی
    شهرری
    پست
    63

    در Php من متغیرهای فرم را نمی شناسد. لطفا" کمک.

    در آبجکت هائی که در فرم php خود از قبیل Button , Submit,Text box تعریف می کنم- نام این آبجکتها باید به عنوان متغیر به اسکریپت PHP ارسال شود و PHP باید آنها را بشناسد ولی نمی شناسد و خطا می گیرد. و همچنین متغیر PHP_SELF را هم نمی شناسد

  2. #2
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    در PHP به چند صورت میتوان به فیلدهای یک فرم دسترسی داشت. راه ساده، ولی پردردسر، ذکر نام فیلد بعنوان یک متغیر است و در صورتی که فرم ارسال کننده اجرا نشده باشد و یا نام فیلد اشتباه باشد باعث بروز یک خطای بحرانی در اسکریپت شما میشود.

    بهرحال راه صحیح دسترسی به فیلدهای یک فرم چنین است:
    if (isset($_POST["firstname"])&#4  1; {
    // do something here
    print "Your first name is:".$_POST["firstname"];
    }

    همانطور که میبینید در کد فوق ابتدا چک میشود که فیلدی بنام firstname به این اسکریپت پست شده است یا نه، و اگر نتیجه مثبت باشد از آن استفاده میشود.

    و البته راه صحیح دسترسی به فیلدهای پست شده به یک اسکریپت، استفاده از یک متغیر SuperGlobal بنام <span dir=ltr>$_POST</span> بهمراه نام فیلد مربوطه بدین صورت است:
    $_POST&#91;"your filed name"&#93;

    اگر هنوز هم مشکل دارید اسکریپت خود را در اینجا قرار دهید تا نگاهی به آن بیاندازیم :wink:

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1382
    محل زندگی
    شهرری
    پست
    63
    اسکریپت من این می باشد لطفا" راهنمائی کنید
    &lt;?php

    //Handle Input here
    //Check if $submit has a value of "Go" - The Validator
    //int error_reporting&#40;int level&#41;;
    $you_wrote = $_post&#91;'you_wrote'&#93;;
    $submit=$_post&#91;'submit'&#93;;
    if&#40;$submit=="Go"&#41;&#123;
    //The Processor
    echo&#40;"You wrote ".$you_wrote&#41;;
    echo&#40;"&lt;br>You could have done whatever you want with the input instead"&#41;;
    exit;
    &#125;

    ?>

    &lt;!-- The Frontend HTML form -->
    &lt;form action="&lt;?php $_SERVER&#91;PHP_SELF&#93;?>" method="POST" >
    &lt;p>Input a word &lt;input type="text" size="20" name="you_wrote">
    &lt;input type="submit" name="submit" value="Go">&lt;/p>
    &lt;/form>

  4. #4
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    اینم از اسکریپت اصلاح شده شما:
    &lt;?php

    //Handle Input here
    //Check if $submit has a value of "Go" - The Validator
    //int error_reporting&#40;int level&#41;;
    $you_wrote = $_POST&#91;'you_wrote'&#93;;
    $submit=$_POST&#91;'submit'&#93;;
    if&#40;$submit=="Go"&#41;&#123;
    //The Processor
    echo&#40;"You wrote ".$you_wrote&#41;;
    echo&#40;"&lt;br>You could have done whatever you want with the input instead"&#41;;
    exit;
    &#125;

    ?>

    &lt;!-- The Frontend HTML form -->
    &lt;form action="&lt;?php print $_SERVER&#91;PHP_SELF&#93;?>" method="POST" >
    &lt;p>Input a word &lt;input type="text" size="20" name="you_wrote">
    &lt;input type="submit" name="submit" value="Go">&lt;/p>
    &lt;/form>


    و اما مشکلات اسکریپت شما:
    1- در خط 6 و 7 کلمه POST را با حروف کوچک نوشته بودید.
    2- در خط 18 دستور print را قبل از <span dir=ltr>$_SERVER[PHP_SELF]</span> جا انداخته بودید. این اسکریپت شما بود:
    &lt;form action="&lt;?php $_SERVER&#91;PHP_SELF&#93;?>" method="POST" >

    در حالی که باید اینطور باشد:
    &lt;form action="&lt;?php print $_SERVER&#91;PHP_SELF&#93;?>" method="POST" >


    نکته آخر اینکه دفعه بعدی که خواستید کد نمونه داخل پست تان درج کنید از tag های code برای نمایش صحیح کد نمونه استفاده کنید (به دکمه code در هنگام ارسال پست جدید توجه کنید).

  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1382
    محل زندگی
    شهرری
    پست
    63

    متاسفانه دوباره جواب نداد

    من کل کد شما را در یک فایل به عنوان Input.php ذخیره کردم(در DocumentRoot) ولی متاسفانه باز ایراد قبلی را گرفت .

    Warning&#58; Undefined variable&#58; _POST in E&#58;\PhpFiles\in.php on line 6                                     
    Warning&#58; Undefined variable&#58; _POST in E&#58;\PhpFiles\in.php on line 7

    Input a word

    بعد که در EditBox جلوی input a word چیزی مینویسیم و submit می کنیم صفحه ای با اطلاعت زیر باز می شود:

    Forbidden
    You don't have permission to access /&lt;br>&lt;b>Warning&lt;/b>&#58; Use of undefined constant PHP_SELF - assumed 'PHP_SELF' in &lt;b>E&#58;/PhpFiles/in.php&lt;/b> on line &lt;b>18&lt;/b>&lt;br>&lt;br>&lt;b>Warning&lt;/b>&#58; Undefined variable&#58; _SERVER in &lt;b>E&#58;/PhpFiles/in.php&lt;/b> on line &lt;b>18&lt;/b>&lt;br> on this server.


    --------------------------------------------------------------------------------
    Apache/2.0.46 &#40;Win32&#41; Server at localhost Port 80


    باتشکر-تقوی

  6. #6
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    احتمالا نسخه PHP شما پایینتر از 4.1 است. در نسخه ‌های قبل از 4.1 متغیر <span dir=ltr>$_SERVER</span> وجود ندارد و باید بجای آن از <span dir=ltr>$HTTP_SERVER_VARS</span> استفاده کنید. مثال:
    $HTTP_SERVER_VARS&#91;'PHP_SELF'&#93;

    مثال در یک کد کامل:
    &lt;?php
    if &#40;$HTTP_POST_VARS&#91;'action'&#93; == 'submitted'&#41; &#123;
    print '&lt;pre>';

    print_r&#40;$HTTP_POST_VARS&#41;;
    print '&lt;a href="'. $HTTP_SERVER_VARS&#91;'PHP_SELF'&#93; .'">Please try again&lt;/a>';

    print '&lt;/pre>';
    &#125; else &#123;
    ?>
    &lt;form action="&lt;?php echo $HTTP_SERVER_VARS&#91;'PHP_SELF'&#93;; ?>" method="post">
    Name&#58; &lt;input type="text" name="personal&#91;name&#93;">&lt;br>
    Email&#58; &lt;input type="text" name="personal&#91;email&#93;">&lt;br>
    Beer&#58; &lt;br>
    &lt;select multiple name="beer&#91;&#93;">
    &lt;option value="warthog">Warthog&lt;/option>
    &lt;option value="guinness">Guinness&lt;/option>
    &lt;option value="stuttgarter">Stuttgarter Schwabenbr&amp;auml;u&lt;/option>
    &lt;/select>&lt;br>
    &lt;input type="hidden" name="action" value="submitted">
    &lt;input type="submit" name="submit" value="submit me!">
    &lt;/form>
    &lt;?php
    &#125;
    ?>

تاپیک های مشابه

  1. str_replace , ereg_replace برای "n\" و "r\" و " "
    نوشته شده توسط sweb در بخش PHP
    پاسخ: 1
    آخرین پست: یک شنبه 29 بهمن 1385, 16:30 عصر

قوانین ایجاد تاپیک در تالار

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