Venkok
Members-
Posts
9 -
Joined
-
Last visited
Everything posted by Venkok
-
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.
-
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!
- 1 reply
-
- nested
- null coalescing operator
- (and 6 more)