Bußgeldkatalog

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Bußgeldkatalog

    Hi zusammen,

    Vielleicht hat jemand die Zeit und sieht sich mal den folgenden Code an - Ich würde ihn gerne "schrumpfen" - jedoch fällt mir nicht wiklich was dazu ein :( Jemand eine Idee? *neugierigschau*

    Quellcode

    1. <form method="POST" action="<?php $PHP_SELF; ?>"><pre>
    2. Geschwindigkeit : <input type=text name="speed" size=5 maxlength=3><br>
    3. Wo hat es dich erwischt?: <select name="loc">
    4. <option value="in_town">Innterhalb geschlossener Ortschaft
    5. <option value="outback">Ausserhalb geschlossener Ortschaft
    6. </select><br>
    7. <input type="submit" value="Berechnen" name="action">
    8. </pre> </form>


    Quellcode

    1. // Deklarierung der notwendigen Parameter für PHP4 Support (aus dem Formular)
    2. $speed = $_POST['speed'];
    3. $loc = $_POST['loc'];
    4. $action = $_POST['action'];
    5. // Deklarierung der Ausgaben
    6. $m15 = "15,- EUR";
    7. $m25 = "25,- EUR";
    8. $m35 = "35,- EUR";
    9. $m50 = "50,- EUR";
    10. $m60 = "60,- EUR";
    11. $m100 = "100,- EUR";
    12. $m125 = "125,- EUR";
    13. $m175 = "175,- EUR";
    14. $m300 = "300,- EUR";
    15. $m425 = "425,- EUR";
    16. $p1 = "1 Punkt";
    17. $p3 = "3 Punkte";
    18. $p4 = "4 Punkte";
    19. $nd1 = "1 Monat Fahrverbot";
    20. $nd2 = "2 Monate Fahrverbot";
    21. $nd3 = "3 Monate Fahrverbot";
    22. $nd4 = "4 Monate Fahrverbot";
    23. if($action == "Berechnen")
    24. {
    25. if($loc == "in_town")
    26. {
    27. if($speed <= "10")
    28. {
    29. echo "Dieser Versto&szlig; kostet dich $m15";
    30. }
    31. elseif($speed <= "15")
    32. {
    33. echo "Dieser Versto&szlig; kostet dich $m25";
    34. }
    35. elseif($speed <= "20")
    36. {
    37. echo "Dieser Versto&szlig; kostet dich $m35";
    38. }
    39. elseif($speed <= "25")
    40. {
    41. echo "Dieser Versto&szlig; kostet dich $m50 und $p1";
    42. }
    43. elseif($speed <= "30")
    44. {
    45. echo "Dieser Versto&szlig; kostet dich $m600 und $p3";
    46. }
    47. elseif($speed <= "40")
    48. {
    49. echo "Dieser Versto&szlig; kostet dich $m100 und $p3 und $nd1";
    50. }
    51. elseif($speed <= "50")
    52. {
    53. echo "Dieser Versto&szlig; kostet dich $m125 und $p4 und $nd1";
    54. }
    55. elseif($speed <= "60")
    56. {
    57. echo "Dieser Versto&szlig; kostet dich $m175 und $p4 und $nd2";
    58. }
    59. elseif($speed <= "70")
    60. {
    61. echo "Dieser Versto&szlig; kostet dich $m300 und $p4 und $nd3";
    62. }
    63. elseif($speed > "70")
    64. {
    65. echo "Dieser Versto&szlig; kostet dich $m425 und $p4 und $nd3";
    66. }
    67. }
    68. }
    Alles anzeigen


    Grüße,
    Matthias
    Das Leben ist binär - du bist eine 1, oder eine 0
  • Hab mal schnell etwas in die Textbox gehämmert:

    Quellcode

    1. $speed = (int)$_POST['speed'];
    2. $loc = $_POST['loc'];
    3. $action = $_POST['action'];
    4. $_fine = array(
    5. 'in_town' => array(
    6. 10 => array(15),
    7. 15 => array(25),
    8. 20 => array(35),
    9. 25 => array(50, 1),
    10. 30 => array(60, 2),
    11. 40 => array(100, 3, 1),
    12. 50 => array(125, 4, 1),
    13. 60 => array(175, 4, 2),
    14. 70 => array(300, 4, 3),
    15. 405 => array(425, 4, 3)
    16. ),
    17. 'outback' => array()
    18. );
    19. if($action == "Berechnen") {
    20. $fine_type = ($loc != 'in_town') ? 'outback' : 'in_town';
    21. foreach ($_fine[$fine_type] as $key => $value) {
    22. if ($speed <= $key) {
    23. $penaltie = 'Dieser Versto&szlig; kostet dich ';
    24. $count_penalties = count($value);
    25. for ($i=0; $i<$count_penalties; $i++) {
    26. switch ($i) {
    27. case 1:
    28. $penaltie .= ' und '.$value[$i].' Punkt(e)';
    29. break;
    30. case 2:
    31. $penaltie .= ' und '.$value[$i].' Monat Fahrverbot';
    32. break;
    33. default:
    34. $penaltie .= $value[$i].',- EUR';
    35. break;
    36. }
    37. }
    38. break;
    39. }
    40. }
    41. echo $penaltie;
    42. }
    Alles anzeigen


    Habe mal symbolisch die 405 Km/h als Maximum gewählt, da derzeit das schnellste Straßenfahrzeug so schnell fährt. Die Prozedur ist zwar mit 0.0002 Sekunden Unterschied etwas langsamer, dafür beliebig mit zusätzlichen Geschwindigkeiten erweiterbar. Die Form ist:

    Geschwindigkeit => array(Geldbetrag [, Punkte [, Fahrverbot ]])
    MfG dynambee
  • So,

    Nun habe ich mir den Code angesehen, eine Zeile bereitet mir Kopfzerbrechen:

    $fine_type = ($loc != 'in_town') ? 'outback' : 'in_town';

    Was bedeutet hier das ? und der : ??

    Ich verstehe:

    $fine_type = ($loc ungleich 'in_town')

    Merci für ne kurze Aufklärung.

    P.S. Wie sollte man bei solchen "Problemen" zukünftig suchen? Google => "PHP VARIABLE ?" hat leider nix gebracht :(

    Grüße,
    Matthias
    Das Leben ist binär - du bist eine 1, oder eine 0