Rene Grassegger: Fehler bei Tarifberechnung

Hallo Leute,

ich soll einen kleine Berechnung durchführen. Dazu habe ich aus einem CSV-File eine <select>-Box erzeugt.
Durch Eingabe eines 2. Wertes soll ein Restguthaben an Minuten anzeigen.

Hier wird die Auswahlliste aus einem CSV erzeugt (funktioniert einwandfrei):

<?php
    //Name der Länderdatei
 $datei ="test.csv";

//Trennzeichen in Länderseite
 $separator =";";

function lesenLaender() {
     global $datei, $separator;
     $fp = fopen($datei, 'r');

echo ("\n");
   echo ("<select value="laender">");
   echo ("\n");

while ($zeile = fgetcsv($fp, 512, $separator)) {
   echo ("<option value="$zeile[1]">");
   echo ("$zeile[0]</option>");
   echo ("\n");
     }
   echo ("</select>");
   echo ("\n");
 }

?>

Im 2. Teil rufe ich die Funktion aus dem 1. Teil auf und möchte eine kleine Berechnung machen und am Ende das Guthaben in Minuten angeben:

<?php

include("index.php");

function guthabenBerechnung() {

if (!isset($_POST['Submit'])) {

$erg = bcdiv($_POST['Guthaben'], $_POST['laender'], 4);
  echo("Sie haben noch $erg Minuten zur Verfügung");
 } else {
     echo ("Forumlar absenden");
 }
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="Post">
<input type="Text" name="Guthaben" value="" size="" maxlength=""><?php lesenLaender();?>
<input type="Submit" name="Submit" value="Go">
</form>

<?php guthabenBerechnung();?>

Irgendwie kriege ich das nicht hin. Hat bitte jemand einen Tipp für mich, wo der Fehler liegt.

Danke für eure Hilfe.

Gruß aus Salzburg

Rene

  1. function lesenLaender() {

    echo ("<select value="laender">");

    Das soll doch bestimmt name="laender" heißen, oder?

    echo ("<option value="$zeile[1]">");
       echo ("$zeile[0]</option>");

    Hier wäre nebenbei bemerkt

    echo ("<option value="".htmlentities($zeile[1])."">");
      echo (htmlentities($zeile[0])."</option>");

    nutzenswert.

    function guthabenBerechnung() {

    if (!isset($_POST['Submit'])) {

    --------^

    $erg = bcdiv($_POST['Guthaben'], $_POST['laender'], 4);

    Dieses if funktioniert falsch rum: Wenn $_POST["submit"] gesetzt ist, soll das Guthaben ausgerechnet werden. Vielleicht wäre es auch sinnvoll, statt auf den Absendeknopf auf die tatsächlich verwendeten Variablen zu prüfen.

    if ((isset($_POST["guthaben"])) && (isset($_POST["laender"))) {

    Gruß,
      soenk.e

    1. Hi Sönke,

      vielen Dank für deine Hilfe, das probiere ich gleich umzusetzen.

      Danke!

      Gruss aus Salzburg

      Rene