[Funktion] Warum funzt das nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Funktion] Warum funzt das nicht

    Hallo !

    Den nachfolgenden Code habe ich in einer function.php die ich include.

    function termin_eintrag() {
    if (!$los) {
    echo "<form method='POST' action='$SERVER[PHP_SELF]'>
    <table align='center' cellpadding='3' cellspacing='0' style='border:1px solid black;'>
    <tr>
    <td colspan='2' style='border-bottom:1px solid black;'><h3>Termine</h3></td>
    </tr>
    <tr>
    <td>Header</td>
    <td><input type='text' name='header' size='30'></input></td>
    </tr>
    <tr>
    <td>Datum</td>
    <td><input type='text' name='datum' size='20'>&nbsp;TT.MM.JJJJ</input></td>
    </tr>
    <tr>
    <td>Uhrzeit</td>
    <td><input type='text' name='zeit' size='10'>&nbsp;hh:mm</input></td>
    </tr>
    <tr>
    <td valign='top'>Text</td>
    <td><textarea name='text' cols='35' rows='5' style='overflow:auto;'></textarea></td>
    </tr>
    <tr>
    <td colspan='2' style='border-top:1px solid black;'>&nbsp;</td>
    </tr>
    <tr>
    <td align='right'><input type='reset' value='L&ouml;schen'></input></td>
    <td align='left'><input type='submit' name='los' value='Eintragen'></input></td>
    </tr>
    </table></form>";
    }
    else
    {
    list($tag,$monat,$jahr)=explode(".",$datum);
    list($stunde,$minute)=explode(":",$zeit);
    $date=mktime($stunde,$minute,0,$monat,$tag,$jahr);
    include 'dblogin.php';
    mysql_query("INSERT INTO termine (header,datum_zeit,text) VALUES ('$header','$date','$text')");
    }
    }

    Warum funktioniert das nicht ?

  • #2
    Re: [Funktion] Warum funzt das nicht

    Original geschrieben von tomikaze
    Warum funktioniert das nicht ?
    Gegenfrage: Was soll es denn überhaupt machen??

    btw: Was unsinnigeres, als eine Überprüfung einer Variable ganz zu Beginn der Funktion auf true oder false ist, gibt es wohl kaum. Wenn die Var nicht explizit auf true gesetzt wurde geht die Abfrage IMMER in den false-Branch.

    Kommentar


    • #3
      Ich denke mal er hat im Hauptscript eine Variable $los definiert und wundert sich warum der Wert nicht in die Funktion übernommen wird.

      Schau Dir mal die eigenen Namensräume von Funktionen an.
      Jede Funktion hat ihren eigenen Namensraum und dort kann es eine zweite Variable mit dem Namen $los geben.
      Es sei denn, du weist der Variablen die Eigenschaft "global" zu. Dann definierst Du, dass Du im Hauptscript und in der Funktion die gleiche Variable $los meinst.

      Bleibt nur noch die Frage zu klären welche Aufgabe eine Variable mit dem für mich unsinnigen Namen "los" erfüllen soll.

      Kommentar


      • #4
        [Funktion] Die $los Variable prüft ...

        Hallo !

        Die besagte Variable am Anfang prüft ob der "SUBMIT-BUTTON" gedrückt wurde.
        Wenn "ja" dann sollen die im Formular gemachten Einträge in die Datenbank geschrieben werden (SCHLEIFE).

        Das tut es jedoch nicht !!

        Formular wird ordentlich ausgegeben .

        Ich muß doch keine Variable auf global setzen oder...?


        Gruß

        tomikaze

        Kommentar


        • #5
          Code:
          <input type='submit' name='los' value='Eintragen'>
          und
          PHP-Code:
          if (!$los
          ich tippe auf register_globals.

          Kommentar


          • #6
            Selbst wenn register_globals auf ON ist kennt die Funktion die Variable $los nicht. Entweder Du holst sie aus dem globalen Gültigkeitsraum oder weist ihr explizit den Wert zu.
            Mach mal:
            PHP-Code:
            function termin_eintrag() {
            if (isset(
            $_POST['los'])) $los=$_POST['los'];
            ... 

            Kommentar

            Lädt...
            X