• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
اشکال(ها) کجایند؟
#1

با سلام.من توی php مبتدی هستم و میخواستم برای تمیرن یه کد بنویسم به این ترتیب که از کاربر یه عدد بگیره!(طول هستش)
بعد کاربر واحد عدد وارد شده رو از یه باکس radio انتخاب کنه که سانتی متره یا متر!
بعد خروجی موردنیازش رو از یه چک باکس انتخاب کنه که به فوت میخواد یا اینچ!(میتونه هر دو گزینه رو تیک بزنه!)
پس چی شد؟سانتی متر یا متر بگیره و به اینچ یا فوت تبدیل کنه!اینو نوشتم اما مدام ارور میده درضمن یکمی هم اشکال html ی , css ی ههم داره!

باا تشکر

کد:
<html>

<head>
<style>
.input (
  color="blue";
  font-family: Times New Roman;)
.result(
  color="red";
  font-family: Nazanin;)
  
.center(
  text-align: center;)
  
.error(
color="red";
font-size="40";
)

</style>
  <title>change the length parametre</title>
</head>
<body>
<?php
$value = $value2 = $input_type = "";
// erorha
//$errvalue=$errchkIT=$errchkR="";
// motaghayyer gavab


if($_SERVER["REQUEST_METHOD"]=="POST"){
  test_input($_POST["value"]);
// test_input ($value2);

if($_POST["input_type"] && $_POST["$result"])
{
// shart barresi mikoneh ke fild ha por bashan
  ///////////////////////////////////
  if($_POST["input_type"]== "cm"){  $ram=$_POST["value"]/100;
  $result_inch=($ram*100)/2.54;
  $result_foot=($result_inch/12);
   }
   /////////////////////////////////
   if($_POST["input_type"]=="m"){
   $ram=$_POST["value"];
   $result_inch=($ram*100)/2.54;
  $result_foot=($result_inch/12);
       }
       // ta inga gavab ha ro darim ye fekri be hale namesh bayad bokonim

// in cod ha hengam namayesh gavab bayad toye <?php dige shoru beshe
  if(Ischecked ($_POST["result"],$_POST["inch"])) {
    echo "<span class='result'>the value in inches is ====". $result_inch ."</span> " ;
//toye khat bala baad echo va baad " ha miavan az tag haye html estefade kard    
  }
  if(Ischecked ($_POST["result"],$_POST["foot"])) {
    echo "<span class='result'>the value in foots is ====". $result_foot ."</span>" ;
  }
  }
  
else { echo "<span class='error'>you must select one options of both tow radio forms</span>";}

}

// in kod ha hamrah php asli estefadeh mishe!
function IsChecked($chkname,$value)
    {
        if(!empty($chkname))
        {
            foreach($chkname as $chkval)
            {
                if($chkval == $value)
                {
                    return true;
                }
            }
        }
        return false;
    }
    



function test_input($data){
  if(empty($data)){
    echo "<span class='error'>you must insert numbers</span>" ;
    break;
  }else
  if (preg_match("/[^0-9\.]/", $data))
{
    echo "<span class='error'> Invalid Characters!</span>";
}
else {return $data;}
}

?>
<span class="center">
     <h2>please enter the inputs and choose you input type!</h2>
<span class="result">only numbers are allowed</span>
  <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELFE"]); ?>"

  the value:<input type="text" name="value" >
  <--! this is a test of closing tag of html by new way -->
  the valu2: <input type="text" name="value2" />
  type of input:
  <input type="radio" name="input_type" value="cm" />Canti metre                  <br />          
  <input type="radio" name="input_type" value="m" />Metre                           <br />
  <input type="checkbox" name="result" value="inch" />I want result in INCHs      <br />
  <input type="checkbox" name="result" value="foot" />I want result in FOOTs      <br />
  <input type="submit" />
  
</span>

</body>
</html>
[/quote]
  پاسخ
تشکر شده توسط :
#2
خودم فهمیدم که خیلی سوتی داره!خودتونو درگیرش نکنید تا اطلاع ثانوی


خب به توصیه یکی از دوستان کلا تگ های استایل رو برداشتم تا راحت تر بشه کارم!حالا یه ارور دیگه میده
Notice: Undefined index: input_type in C:\wamp\www\php\test2.php on line 16
کدشم اینجا
کد:
<html>

<head>


  <title>change the length parametre</title>
</head>
<body>
<?php
$value = $ram = $result_inch = $result_foot = "";

if($_SERVER["REQUEST_METHOD"]=="POST"){
  test_input($_POST["value"]);


if($_POST["input_type"] && $_POST["result"])
//********************************************
{
// shart barresi mikoneh ke fild ha por bashan

  if($_POST["input_type"]=="cm"){  $ram=$_POST["value"]/100;
  $result_inch=($ram*100)/2.54;
  $result_foot=($result_inch/12);
   }
   /////////////////////////////////
   if($_POST["input_type"]=="m"){
   $ram=$_POST["value"];
   $result_inch=($ram*100)/2.54;
  $result_foot=($result_inch/12);
       }
       //gavab h bedast amad
if(Ischecked ($_POST["result"],$_POST["inch"])) {
    echo "the value in inches is ====. $result_inch .<br>" ;
    
  
  }  
  if(Ischecked ($_POST["result"],$_POST["foot"])) {
    echo "the value in foots is ====. $result_foot . ";
  }

  
else { echo "you must select one options of both tow radio forms";}
// bar migardad be IF setare dar

}
}

      
function IsChecked($chkname,$value)
    {
    
        if(!empty($_POST[$chkname]))
        {
            foreach($_POST[$chkname] as $chkval)
            {
                if($chkval == $value)
                {
                    return true;
                }
            }
        }
        return false;
    }
    



function test_input($data){
/// barresi mikonad ke faghat adad vared beshavad va aashar
  if(empty($data)){
    echo ">you must insert numbers" ;
  
  }else
  if (preg_match("/[^0-9\.]/", $data))
{
    echo " Invalid Characters!";
}
else {return $data;}
}

?>

     <h2>please enter the inputs and choose you input type!</h2>
only numbers are allowed<br>
  <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">

  the value:<input type="text" name="value" ><br>
  

  type of input:<br>
  <input type="radio" name="input_type" value="cm" />Canti metre          
  <input type="radio" name="input_type" value="m" />Metre <br />
  type of output<br>
  <input type="checkbox" name="result" value="inch" />I want result in INCHs<br />
  <input type="checkbox" name="result" value="foot" />I want result in FOOTs      <br />
  <input type="submit" /></form>
  

</body>
</html>
  پاسخ
تشکر شده توسط :
#3
سلام
ببینید شما وقتی یک اطلاعاتی رو به سمت سرور میفرستید این اطلاعات در آرایه های سراسری مثل $_POST قرار میگیره
ولی شما که اولین بار دارید این صفحه رو نگاه میکنید این آرایه هنوز set (مقدار دهی ) نشده پس خطای بالا رو میده
شما اول باید ببینید این آرایه مقدار داره یا نه اگه مقدار داشته باشه یعنی اطلاعات از سمت مرورگر فرستاده شده
برای بررسی set شدن از isset استفاده میکنند
http://ir2.php.net/manual/en/function.isset.php
  پاسخ
تشکر شده توسط : Mob1n


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان