forum.ge
reklama
FORUM.GE წესები  · დახმარება  · ძებნა  · წევრები  · კალენდარი  · ფოსტა  · ჩატი
  გამოხმაურება · ახალი თემა · ახალი გამოკითხვა

> ნუბური შეკითხვები PHP-ში
iverson
addictive


******
ჯგუფი: Members
წერილები: 7526
წევრი No.: 14317
რეგისტრ.: 7-November 05

  გამოგზავნილია: 31 Jan 2016, 13:59  #46876440      · პროფილი · პირადი მიმოწერა · ჩატი · im · yim · msn

დამეხმარეთ რა გთხოვთ ძაან შარში ვარ help.gif

მოკლედ დავალება მაქ რო რაღაც ფორმა submit-ის მერე გადადის thankyou.phpზე და ერთ-ერთი ველია year:

CODE

                                                                 <select id="year" name="year">
              <option value="2014">2014</option>
              <option value="2015">2015</option>
              <option value="2016">2016</option>
              <option value="2017">2017</option>
              <option value="2018">2018</option>
       </select>


ხოდა უნდა იყოს ინტეგერი და უნდა იყოს ან ეს წელი ან ან 5 წლით მეტი. სხვა შემთხვევაში ვერ უნდა გაიაროს ვალიდაცია და არ მუშაობს ეს:

CODE

$current = (int)date("Y");
$five = (int)date("Y") + 5;

                                  if(!filter_input(INPUT_POST, "year",  FILTER_VALIDATE_INT)
     ||  ($_POST['year'] < $current )|| ($_POST['year'] > $five) )
   {
                                              $valid = false;
   }


ანუ სხვა ვალიდაციები მუშაობს ამ ფუნქციაში და კიდეა ასეთი მომენტი htmlში:

CODE

<div class="quantityField" id="item5">
<input id="qty5" name="qty5" class="qty" value="" type="text" placeholder="0" />
<button type="button" id="addDrums">Add</button>
      </div>


ხოდა ეს qty უნდა იყოს ინტეგერიო და ვცადე qty და qty5 და არ მუშაობს. ანუ არ მუშაობს ვიძახი რო გადის ვალიდაციას თითქოს ყველაფერი რიგზეა და გთხოვთ მითხარით რაარი ჩემი შეცდომა? იგივე ფუნქიაში phpში გავაკეთე საკრედიტო ბარათის ნომრის ვალიდაცია, საფოსო ინდექსის,იმეილის, radio buttonების, თვეების- და ყველაფერი მუშაობს ანუ თუ არ ჩაწერ სწორად არ გადის ვალიდაციას და ამ 2 ზე არ მუშაობს და ვერ გავიგე რა

* * *
აუ მგონი გავაკეთE რა რაღაცდებილობები ჭირს ხან მუშაობს ხან არა დაიკიდეთ


--------------------
I may be slower than some folks

Roofus
chi


******
ჯგუფი: Members
წერილები: 5761
წევრი No.: 366
რეგისტრ.: 6-October 01

გამოგზავნილია: 31 Jan 2016, 17:34  #46878365      · პროფილი · პირადი მიმოწერა · ჩატი · ვებგვერდი
iverson
input type='number' და გექნება ინტეჯერი...
თემა ჯობდა web პროგრამირების განყოფილებაში გაგეხსნა.

აქ ანუ ->> Web Programming

This post has been edited by Roofus on 31 Jan 2016, 17:35


--------------------
ხელმოწერის მოსაფიქრებლად კრეატიულობა არ მყოფნის...

http://saba.longevity.ge - სულხან-საბა ორბელიანის ქართული ლექსიკონი
iverson
addictive


******
ჯგუფი: Members
წერილები: 7526
წევრი No.: 14317
რეგისტრ.: 7-November 05

გამოგზავნილია: 1 Feb 2016, 01:36  #46883078      · პროფილი · პირადი მიმოწერა · ჩატი · im · yim · msn
Roofus
კი შევიხედე იმ განყოფილებაში და იქ უფრო სერიოზულ სკრიპტებს განიხილავენ და ეს რადგან დამწყები პროგრამისტების განყოფილებაა მეთქი აქ გავხსნი.

მოკლედ ყველაფერი გადავაბი ბოლოს elseif ებით დამუშაობს და ifებით თუ აკეთებ არ მუშაობს. საშინლადგამოიყურება კოდი მარა დრო აღარ მაქ ისედაც გავათენე ხოდა იყოს boli.gif

X2D3T9



*****
ჯგუფი: Registered
წერილები: 1988
წევრი No.: 200362
რეგისტრ.: 31-March 15

გამოგზავნილია: 1 Feb 2016, 02:27  #46883434      · პროფილი · პირადი მიმოწერა · ჩატი
iverson

კოდი იმუშავებს რას ერჩი?

CODE

$current = (int)date("Y");
$five = (int)date("Y") + 5;

 if(!filter_input(INPUT_POST, "year",  FILTER_VALIDATE_INT) ||  ($_POST['year'] < $current )|| ($_POST['year'] > $five) )
  {
 $valid = false;
 echo "ar aris validuria";
  }else{
   $valid = true;
   echo "validuri";
  }


2016 იდა გაივლის ვალიდაციას 2021
$five = (int)date("Y") + 5; ხო არის 2021? ხო და 2021ის შემდეგ დაგიწერს არ არის ვალიდური

CODE

<option value="2014">2014</option>
             <option value="2015">2015</option>
             <option value="2016">2016</option>
             <option value="2017">2017</option>
             <option value="2018">2018</option>
    <option value="2019">2019</option>
    <option value="2020">2020</option>
    <option value="2021">2021</option>
    <option value="2022">2022</option>


CODE

<div class="quantityField" id="item5">
<input id="qty5" name="qty5" class="qty" value="" type="text" placeholder="0" />
<button type="button" id="addDrums">Add</button>
     </div>


ეს რას აკეთებს შენს კოდში ? აქ შეყვანილი ინფორმაციაც უნდა შეადარო მაგ წლებს?
* * *
ესეც შენი მეორე ფორმა

CODE

$current = (int)date("Y");
$five = (int)date("Y") + 5;

$year =  $_POST['qty5'];

if( filter_var($year, FILTER_VALIDATE_INT) !== false ){


if(!filter_input(INPUT_POST, "qty5",  FILTER_VALIDATE_INT) ||  ($_POST['qty5'] < $current )|| ($_POST['qty5'] > $five) )
  {
 $valid = false;
 echo "ar aris validuria";
  }else{
   $valid = true;
   echo "validuri";
  }
}else{
echo "sheiyvanet weli";
}



--------------------
do{
Life.eat();
Life.sleep();
Life.study();
Life.behappy();
}while{ Life.stat() != end }
Roofus
chi


******
ჯგუფი: Members
წერილები: 5761
წევრი No.: 366
რეგისტრ.: 6-October 01

გამოგზავნილია: 1 Feb 2016, 14:31  #46886243      · პროფილი · პირადი მიმოწერა · ჩატი · ვებგვერდი
iverson
კიდე არსებობს switch და ternary operator ?:

else if ალტერნატივა rolleyes.gif

This post has been edited by Roofus on 1 Feb 2016, 14:31
iverson
addictive


******
ჯგუფი: Members
წერილები: 7526
წევრი No.: 14317
რეგისტრ.: 7-November 05

გამოგზავნილია: 4 Feb 2016, 07:35  #46913858      · პროფილი · პირადი მიმოწერა · ჩატი · im · yim · msn
X2D3T9
Roofus

ხო მარა დებილური სტრუქტურა მქონდა ზოგადად. 1 function სახელად vaidate da $valid = true. მერე ყველა კონდიცია ერთმანეთზე გადაბმული elseifebით და ყველაზე $valid=false ბოლოს else $valid = true და return $valid drug.gif

ხოდა კი მუშაობს მარა ეგეთი სიმახინჯე ცხოვრებაში არ გინახავთ ალბათ gigi.gif

» სპოილერის ნახვისთვის დააწკაპუნეთ აქ «
CODE

<?php

//Declare Prices for items
$macprice = 1899.99;
$razerprice = 79.99;
$wdprice = 179.99;
$nexusprice = 249.99;
$drumsprice = 119.99;
$totalwd = $totalmac = $totalrazer =$totalnexus = $totaldrums= 0;
$total = 0;

    //Validation function
function validation()
{
        $valid = true;

        //Creates array to check valid months range
        $month = array(0,1,2,3,4,5,6,7,8,9,10,11,12);  
         
           $selected_val =!empty($_POST['month']) ? $month[$_POST['month']] : null;

           $province =  array("AB", "BC", "MB", "NB", "NL", "NS", "ON", "PE", "QC", "SK", "NT", "NU",
            "YT");

  //Ensures data was entered
  if(empty($_POST['fullname']) || empty($_POST['address']) || empty($_POST['cardname'])
   || empty($_POST['province'])|| empty($_POST['email']) || empty($_POST['city'])
   || empty($_POST['postal']) || empty($_POST['cardtype']) || empty($_POST['month'])
   || empty($_POST['year']) || empty($_POST['cardnumber'])
   || (empty($_POST['qty1']) && empty($_POST['qty2']) && empty($_POST['qty3'])
       && empty($_POST['qty4']) && empty($_POST['qty5']) ))
  {
       $valid = false;
       echo " Required field or card is empty";
  }
  //Ensures valid email address was entered
  elseif(!filter_input(INPUT_POST, "email",  FILTER_VALIDATE_EMAIL))
  {
                 $valid = false;
                 echo " Email is not valid";
     }
     //Ensures card number is integer
  elseif(!filter_input(INPUT_POST, "cardnumber",  FILTER_VALIDATE_INT,
                          array('options' => array('min_range' => 1))))
  {
                 $valid = false;
                 echo " Card number is not valid";
               
  }
  //Ensures card number is 10 digit long
  elseif(strlen($_POST['cardnumber']) != 10)
  {
                 $valid = false;
                 echo " Card length is not valid";    
  }
  //Ensures postal code is valid postal code for Canada
  elseif(!preg_match("/[ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ] ?[0-9][ABCEGHJKLMNPRSTVWXYZ][0-9]/i",$_POST['postal']))
  {
      $valid = false;
      echo " Postal code is not valid";
  }
  //Ensures month is integer. Drop down menu's values are integers so it will pass.
  elseif(!filter_input(INPUT_POST, "month",  FILTER_VALIDATE_INT))
  {
                  $valid = false;
                  echo "Month is not integer";
  }
  //Ensures month was between 1 and 12
  elseif( $selected_val < 1 || $selected_val > 12)
  {
      $valid = false;
      echo "Month is not in range";
  }
  //Next five if statements check if quantity was integer if this field is not empty
  elseif(!empty($_POST['qty5']) && !filter_input(INPUT_POST, "qty5",  FILTER_VALIDATE_INT,
                                               array('options' => array('min_range' => 1))))
  {
                  $valid = false;
                  echo "qty5 not valid";
  }
  elseif(!empty($_POST['qty4']) && !filter_input(INPUT_POST, "qty4",  FILTER_VALIDATE_INT,
                                           array('options' => array('min_range' => 1))))
  {
                  $valid = false;
                  echo "qty4 not valid";
  }
  elseif(!empty($_POST['qty3']) && !filter_input(INPUT_POST, "qty3",  FILTER_VALIDATE_INT,
                                           array('options' => array('min_range' => 1))))
  {
                  $valid = false;
                  echo "qty3 not valid";
  }
  elseif(!empty($_POST['qty2']) && !filter_input(INPUT_POST, "qty2",  FILTER_VALIDATE_INT,
                                           array('options' => array('min_range' => 1))))
  {
                  $valid = false;
                  echo "qty2 not valid";
  }
  elseif(!empty($_POST['qty1']) && !filter_input(INPUT_POST, "qty1",  FILTER_VALIDATE_INT,
                                           array('options' => array('min_range' => 1))))
  {
                  $valid = false;
                  echo "qty1 not valid";
  }
  //Ensures that year is current year or no more than 5 years from now
  elseif( (int)$_POST['year'] < (int)date("Y") || (int)$_POST['year'] > ((int)date("Y") +5) )
  {
      echo "Year not valid ";
                  $valid = false;
  }
  //Ensures year is integer. Drop down menu's values are integers so it will pass.
  elseif(!filter_input(INPUT_POST, "year",  FILTER_VALIDATE_INT))
  {
                  $valid = false;
                  echo "Year is not integer";
  }
  //Ensures year is integer. Drop down menu's values are integers so it will pass.
  elseif($_POST['cardtype']!= "visa" && $_POST['cardtype']!= "amex" && $_POST['cardtype']!= "mastercard")
  {
                  $valid = false;
                  echo "Card type is not valid";
  }
  elseif(!empty($_POST['province']))
  {            
            //Iterates through each province two digit abbreviation
      for ($i = 0; $i < count($province); ++$i)
      {
                       if($_POST['province'] != $province[$i])
                       {                      
                        $valid = false;
                       }
                       else
                       {
                        $valid = true;
                         break;                        
                       }
                  }              
  }      
           else
           {
                $valid = true;

                  //Invokes method that sanitizes inputs
                test_input($_POST['fullname']);
         test_input($_POST['address']);
      test_input($_POST['cardname']);
      test_input($_POST['email']);
      test_input($_POST['city']);
      test_input($_POST['postal']);
      test_input($_POST['cardnumber']);
      test_input($_POST['year']);
            }

            return $valid;
      }

         //Sanitazing field as per http://www.w3schools.com/php/php_form_validation.asp  
            function test_input($data)
            {
               $data = trim($data);
               $data = stripslashes($data);
               $data = htmlspecialchars($data);

               return $data;
            }
             
?>

<!doctype html>
<html lang="en">
<head>
<title>Thanks for shopping at the WebDev Store!</title>
<link rel="stylesheet" type = "text/css" href = "styles.css" />
</head>
<body>
 <div class = "invoice">
<?php if(validation()): ?>
<?= $content =!empty($_POST['fullname']) ? "<h2> Thanks for your order {$_POST['fullname']}.</h2>".
               "<h4> Here's a summary of your order: </h4>" : null;  ?>

   <table>
 <tr>
  <td colspan = "4"><h3>Address Information</h3></td>
 </tr>
 <tr>
  <td class = "alignright"><span class = "bold">Address:</span></td>
  <td><?php echo $_POST['address']; ?></td>
  <td class = "alignright"><span class = "bold">City:</span></td>
        <td><?php echo $_POST['city']; ?></td>
    </tr>
 <tr>
  <td class = "alignright"><span class = "bold">Province:</span></td>
  <td><?php echo $_POST['province']; ?></td>
        <td class = "alignright"><span class = "bold">Postal Code:</span></td>
        <td><?php echo $_POST['postal']; ?></td>
    </tr>
 <tr>
  <td colspan = "2" class = "alignright"><span class = "bold">Email:</span></td>
        <td colspan="2"><?php echo $_POST['email']; ?></td>
    </tr>
</table>
<table>
 <tr>
  <td colspan = "3"><h3>Order Information</h3></td>
 </tr>
 <tr>
  <td ><span class = "bold">Quantity</span></td>
  <td ><span class = "bold">Description</span></td>
  <td  ><span class = "bold">Cost</span></td>
   </tr>
   <?php if(!empty($_POST['qty1'])): ?>
   <tr>
     <td><?php echo $_POST['qty1']; ?></td>
     <td>iMac</td>
     <td class='alignright'><?php echo $totalmac = $macprice *  $_POST['qty1']; ?></td>
   </tr>
   <?php endif; ?>
   <?php if(!empty($_POST['qty2'])): ?>
   <tr>
     <td><?php echo $_POST['qty2']; ?></td>
     <td>Razer Mouse</td>
     <td class='alignright'> <?php echo $totalrazer = $razerprice *  $_POST['qty2']; ?></td>
   </tr>
   <?php endif; ?>
   <?php if(!empty($_POST['qty3'])): ?>
   <tr>
      <td><?php echo $_POST['qty3']; ?></td>
      <td>WD HDD</td>
      <td class='alignright'><?php echo $totalwd = $wdprice *  $_POST['qty3']; ?></td>
   </tr>  
   <?php endif; ?>
   <?php if(!empty($_POST['qty4'])): ?>
   <tr>
      <td><?php echo $_POST['qty4']; ?></td>
      <td>Nexus</td>
      <td class='alignright'><?php echo $totalnexus = $nexusprice *  $_POST['qty4']; ?></td>
   </tr>
   <?php endif; ?>
   <?php if(!empty($_POST['qty5'])): ?>
   <tr>
      <td><?php echo $_POST['qty5']; ?></td>
      <td>Drums</td>
      <td class='alignright'><?php echo $totaldrums = $drumsprice *  $_POST['qty5']; ?></td>
   </tr>  
   <?php endif; ?>  
   <tr>
         <td colspan = "2"  class='alignright'><span class = "bold">Totals</span></td>
      <td class='alignright'>
      <span class = 'bold'>$<?php echo $total = $totaldrums +
                                          $totalnexus +
                                          $totalwd +
                                          $totalrazer +
                                          $totalmac; ?></span></td>
   </tr>
</table>
   <?php if($total > 20000): ?>
<div id="rollingrick">
 <h2>Congrats on the big order. Rick Astley congratulates you.</h2>
 <iframe width="600" height="475" src="//www.youtube.com/embed/dQw4w9WgXcQ"  allowfullscreen></iframe>
</div>
<?php endif ?>
   <?php else: ?>
   <h4>Sorry, the form could not be processed.</h4>
<?php endif ?>
</div>
</body>
</html>



აგე თვიონ html ის qty1 qty2 .... etc არის ის რაოდენობის ველები რა. ეხა მაქ იქით კვირისთვის დავალება ბლოგი უნდა გავაკეთო დატაბაზაზე მიბმული იმედია ნორმალურად გავაკეთებ თუ ძაან გამიჭირდა შემოვალ კითხვებით user.gif


მიმაგრებული სურათი (გადიდებისთვის დაუწკაპუნეთ სურათზე)
Capture.PNG
Guluuu
ქრეიზი მემბერ


*****
ჯგუფი: Registered
წერილები: 1286
წევრი No.: 141597
რეგისტრ.: 15-January 12

გამოგზავნილია: 6 Feb 2016, 10:39  #46931186      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა · aim
iverson
სად სწავლობ?
-----------------------


--------------------
The quieter you became, the more you are able to hear.
Roofus
chi


******
ჯგუფი: Members
წერილები: 5761
წევრი No.: 366
რეგისტრ.: 6-October 01

გამოგზავნილია: 6 Feb 2016, 14:19  #46932584      · პროფილი · პირადი მიმოწერა · ჩატი · ვებგვერდი
iverson
არაა პრობლემა... smile.gif
0 წევრი ათვალიერებს ამ თემას (0 სტუმარი და 0 უჩინარი წევრი)
0 წევრი:
Topic Options გამოხმაურება · ახალი თემა · ახალი გამოკითხვა

 



ფორუმის სერვერების განთავსებას და ინტერნეტთან კავშირს უზრუნველყოფს: CLOUD9
[ Script Execution time: 0.4995 ]   [ 13 queries used ]   [ GZIP Disabled ]