كنترل پنل             جستجو               پرسشهای متداول            .:: آخرین پست‌های انجمن ::.            لیست اعضا            مدیران سایت             درجات        ورود
فهرست انجمن‌ها -> برنامه‌نويسي تحت وب -> زبان برنامه‌نويسي PHP
پاسخ دادن به این موضوع
چاپ نشدن مقدار متغیر در خروجی فرم
پست تاریخ: دوشنبه 6 بهمن 1393 - 20:47    
MHD_72
شروع فعاليت
شروع فعاليت


پست: 19
عضو شده در: 7 دی 1393
محل سکونت: تهران
blank.gif


امتياز: 175

عنوان: چاپ نشدن مقدار متغیر در خروجی فرم خواندن مشخصات فردی ارسال پیام شخصی

میدونم ایراد برنامه از کجاست نزدیک یک ساعت هم وقت گذاشت پیداش نکردم چرا مقدار متغیر $maj در خروجی چاپ نمیشه ؟ خودم فکر میکنم شاید بخاطر این باش که متغیرmaj رو در هنگام تعریف برابر با " " قرار دادم در هرصورت دوستان یه مانوری روش بدن خوبه.
کد:
<html>
   <head><style>
   body{
      text-align: center;
      padding: 20px;
   }      
   .error{
      color: white;
      border-radius: 2px;
      padding: 5px;
      background-color: red;
      text-align: center;
   }
   form{
      width: 250px;
      padding: 15px;
      border-radius: 11px;
      margin-left: 500px;
      background-color: green;
   }
   #output{
      width: 290px;
      background-color: yellow;
      border-radius: 10px;
      margin-left: 500px;
      line-height: 20px;
   }

   </style></head>
   <body>
         <?php
            $nameErr = $emailErr = $depErr = $majErr = "";
            $name = $email = $dep = $maj = $age ="";
            if ($_SERVER["REQUEST_METHOD"] == "POST") {
               if (empty($_POST['name'])) {
                  $nameErr = "Name is required";
               }else{
                  $name = test_input($_POST["name"]);
                  if (!preg_match("/^[a-zA-Z ]*$/", $name)) {
                     $nameErr = "only  letter and white space allowed";
                  }
               }
               if (empty($_POST['email'])) {
                  $emailErr = "Email is required";
               }else{
                  $email = test_input($_POST["email"]);
                  if (!filter_var($email , FILTER_VALIDATE_EMAIL)) {
                     $emailErr = "Email is Invalid";
                  }
               }
               if (empty($_POST['dep'])) {
                  $depErr = "Department is required";
               }else{
                  $dep = test_input($_POST["dep"]);
               }
               if (empty($_POST["maj"])) {
                  $majErr = "major is required";
               }else{
                  $maj = test_input($_POST["maj"]);
               }
               }
   
            function test_input($data){
               $data= trim($data);
               $data = stripslashes($data);
               $data = htmlspecialchars($data);
               return $data;
            }

         ?>

         <h2>Computer Institution</h2>
         <p><span class="error">* Required</span></p>
         
         <form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">

         Name : <input type="text" name="name"><br/><br/>
         <span class="error">* <?php echo $nameErr; ?></span><br/><br/>
         Email :<input type="text" name="email"><br/>
         <span class="error">* <?php echo $emailErr; ?></span><br/><br/>
         Department <input type="text" name="dep"><br/>
         <span class="error">* <?php echo $depErr; ?></span><br/><br/>
         Major : <input type="text" name="maj"></br>
         <span class="error">* <?php echo $majErr; ?></span><br/><br/>
         <input type="submit" name="submit" value="submit">
         </form>
         <?php
         echo '<div id="output">'."Identify".'<br>';
         echo "<hr>";
         echo 'Welcome '."$name";
         echo "<br>";
         echo 'Web Mail: '."$email";
         echo "<br>";
         echo 'Department of '."$dep";
         echo "<br>";
         echo 'Study Field : '."$maj";
         '</div>'
         ?>
   </body>
</html>

[ وضعيت كاربر: ]

تشکر کردن از پست  پاسخگویی به این موضوع بهمراه نقل قول 


این مطلب آخرین بار توسط MHD_72 در سه‌شنبه 7 بهمن 1393 - 14:30 ، و در مجموع 1 بار ویرایش شده است.
تشکرها از این پست:

پست تاریخ: دوشنبه 6 بهمن 1393 - 23:40    
bidak
داره كولاك مي‌كنه!
داره كولاك مي‌كنه!


پست: 121
عضو شده در: 29 تیر 1392

blank.gif


امتياز: 1376

عنوان: پاسخ به «چاپ نشدن مقدار متغیر در خروجی فرم» خواندن مشخصات فردی ارسال پیام شخصی ارسال email

کدی که میذاریو توو تگ کد بزار تا منظم خونده بشه.
ایراد بخاطر این خطه:
کد:

if(empty($_POST["major"]))

major اشتباس. باید maj بنویسی.
نکته ی دیگه نیاز به این همه else if نیست. میتونی با یک foreach آرایه ی $_POST رو پیمایش کنی.

[ وضعيت كاربر: ]

تشکر کردن از پست  پاسخگویی به این موضوع بهمراه نقل قول 
تشکرها از این پست: MHD_72 (سه‌شنبه 7 بهمن 1393 - 14:29)

پست تاریخ: سه‌شنبه 7 بهمن 1393 - 14:36    
MHD_72
شروع فعاليت
شروع فعاليت


پست: 19
عضو شده در: 7 دی 1393
محل سکونت: تهران
blank.gif


امتياز: 175

عنوان: پاسخ به «چاپ نشدن مقدار متغیر در خروجی فرم» خواندن مشخصات فردی ارسال پیام شخصی

ممنونم
چطور میتونم با foreach بنویسمش ؟ البته بیس حلقه اش رو میدونم که باید متغیر رو به ازای مقدارش در نظر گرفت به این شکل
کد:
foreach (array_expression as $value)
    statement
ولی خوب اینجا آرایه نداریم چون با آرایه رو بلدم ولی این همه متغیر رو چجور داخل حلقه جابدم ؟

[ وضعيت كاربر: ]

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

پست تاریخ: سه‌شنبه 7 بهمن 1393 - 16:46    
bidak
داره كولاك مي‌كنه!
داره كولاك مي‌كنه!


پست: 121
عضو شده در: 29 تیر 1392

blank.gif


امتياز: 1376

عنوان: پاسخ به «چاپ نشدن مقدار متغیر در خروجی فرم» خواندن مشخصات فردی ارسال پیام شخصی ارسال email

$_POST آرایه هست دیگه. آرایه super global.
یبار print_r از $_POST بگیر ببین نتیجشو.
اینجا پیمایش یک آرایه بعنوان requiredFields روش بهتریه:
کد:

$requiredFields = array('name', 'email', 'dep', 'maj');

foreach($requiredFields as $key)
{
   if(!array_key_exists($key, $_POST))
   {
      echo $key . ' not isset correctly!';
   }
}

در پارامتر دوم array_key_exists آرایه قرار میگیره که $_POST گذاشتیم.
البته isset هم میشه استفاده کرد:
کد:

$requiredFields = array('name', 'email', 'dep', 'maj');

foreach($requiredFields as $key)
{
   if(!isset($_POST[$key]))
   {
      echo $key . ' not isset correctly!';
   }
}

ولی اگر مقدار یک ایندکس , صفر یا null باشه نتیجش false میشه ولی array_key_exists اگر ایندکسی وجود داشته باشه و مقدارش صفر یا نال باشه نتیجه ی true برمیگردونه.

[ وضعيت كاربر: ]

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


نمایش پستها:                 مشاهده موضوع قبلی :: مشاهده موضوع بعدی  
پاسخ دادن به این موضوع
 

صفحه 1 از 1

تمام زمانها بر حسب GMT + 3.5 Hours می‌باشند
 Related Topics 


 information 

 

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


Copyright 2004-2024. All rights reserved.
© by Aftabgardan Cultural Center : Aftab.cc