Jump to content
Larry Ullman's Book Forums

Venkok

Members
  • Posts

    9
  • Joined

  • Last visited

Venkok's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Thank you, Larry. Now it's clear. I have another solution for Pursue 3, I feel like Christopher's solution is more straightforward and clean but I use the function which allows having less writing (without duplication "The total cost of driving"...). Can you please say a few wise words about my code? // Check for form submission: if ($_SERVER['REQUEST_METHOD'] == 'POST') { // Minimal form validation: if (isset ($_POST['distance'], $_POST['gallon_price'], $_POST['efficiency'], $_POST['average_speed']) && is_numeric($_POST['distance']) && is_numeric($_POST['gallon_price']) && is_numeric($_POST['efficiency']) ) { // Calculate the results $cost = calculate_trip_cost($_POST['distance'], $_POST['efficiency'], $_POST['gallon_price']); function travelTime() { $hours = $_POST['distance']/$_POST['average_speed']; if ($hours > 24) { $days = $hours/24; $hours2 = $hours%24; # вывожу целочисленный остаток. echo number_format($days, 0) . ' days and ' . $hours2 . ' hours'; } else { echo number_format($hours, 2) . ' hours'; } } // Print the results: echo '<div class="page-header"> <h1>Total Estimated Cost</h1></div> <p>The total cost of driving ' . $_POST['distance'] . ' miles, averaging ' . $_POST['efficiency'] . 'miles per gallon, and paying an average of $' . $_POST['gallon_price'] . ' per_gallon, is $' . $cost . '. If you drive at an average of ' . $_POST['average_speed'] . ' miles per hour, the trip will take approximately '; echo travelTime(); echo '</p>'; } else { // invalid submitted values. echo '<div class="page-header"> <h1>Error!</h1></div><p class="text-danger">Please enter a valid distance, price per gallon, and fuel efficiency.</p>'; } } // End of main submission IF.
  2. Hello! Please explain why to use the constant of an average speed and then let user enter any value of it into the form. Where this value of 65 goes?
  3. Hi! Why do we need this: $gender = 'a'; //create a false value to test against The script works well without it, please explain!
  4. Hello! Please explain to me how gender validations from scripts 2.3 differ from the nested one in script 2.4. I have this in 2.3 (updated with NULL coalescing operator while practicing Pursue section): $gender = $_REQUEST['gender'] ?? NULL; if ($gender == 'M') { $greeting = '<p><strong>Good day, Sir!</strong></p>'; } elseif ($gender == 'F') { $greeting == '<p><strong>Good day, Madam!</strong></p>'; } else { $gender = NULL; echo '<p class="error">Gender must be either "M" or "F"!</p>'; /* You may wonder how this last case may be possible, considering the values are set in the HTML form. If a malicious user creates their own form that gets submitted to your handle_form.php script (which is very easy to do), they could give $_REQUEST[‘gender’] any value they want. */ } and this in 2.4: if (isset($_REQUEST['gender'])) { $gender = $_REQUEST['gender']; if ($gender = 'M') { $greeting = '<p><strong>Good day, Sir!</strong></p>'; } elseif ($gender = 'F') { $greeting = '<p><strong>Good day, Madam!</strong></p>'; } else { $gender = NULL; echo '<p class="error">Gender must be either "M" or "F"!</p>'; /* You may wonder how this last case may be possible, considering the values are set in the HTML form. If a malicious user creates their own form that gets submitted to your handle_form.php script (which is very easy to do), they could give $_REQUEST[‘gender’] any value they want. */ } } else { // $_REQUEST['gender'] is not set. $gender = NULL; echo '<p class="error">You forgot to select your gender!</p>'; } It seems that these scripts do the same job, or I just can't figure out the difference, please help me to understand it. And also I want to if we could use NULL coalescing operator in script 2.4 some way. Thank you!
  5. After your new hint, I immediately came up with the solution, which now seems so obvious! Thank you!
  6. Hello! I stuck into this question, please help me to solve it: Rewrite the gender conditional in handle_form.php (Script 2.4) as one conditional instead of two nested ones. Hint: You’ll need to use the AND operator.
  7. Hi to all! This script works identically without ! empty conditional, am I right? if (! empty ($_POST['name']) && ! empty ($_POST['email']) && ! empty ($_POST['comments'])) { } the same as: if (($_POST['name']) && ($_POST['email']) && ($_POST['comments'])) { } Thank you!
×
×
  • Create New...