isset / undefined variablen problem

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

  • isset / undefined variablen problem

    Hallo!
    Ich hab hier ein kleinen teil einer datei... (alles andere auskommentiert um zu testen, woran es liegt)
    Die datei ist eine submit.php in der quasi alles umgesetzt wird, was von anderen dateien vorbereitet wird (formulare etc).

    In dieser Datei kommen alle inhalte per $_POST.

    jetzt wird bei mir trotz isset gebrauchs mit der Fehler
    undefined variable ausgespuckt, allerdings nur für $lname_neu
    PHP-Code:
     if (isset($_POST['lname_neu'])) $lname_neu $_POST['lname_neu'];  
     if (isset(
    $_POST['lnummer_neu'])) $lnummer_neu $_POST['lnummer_neu'];  
     if (isset(
    $_POST['lkommentar_neu'])) $lkommentar_neu $_POST['lkommentar_neu'];  
     if (isset(
    $_POST['lspeisekarte_neu'])) $lpeisekarte_neu $_POST['lspeisekarte_neu'];  
    if(
    $lname_neu != "" and $lnummer_neu != "" and $lspeisekarte_neu != "")
        {
        
    $eintrag "INSERT INTO lieferant (Name, Tele, Kommentar, Speisekarte, tag, inaktiv) VALUES ('$lname_neu', '$lnummer_neu', '$lkommentar_neu', '$lspeisekarte_neu', '0', '0')";
        
    $eintragen mssql_query($eintrag);
        echo 
    "\"$lname_neu\"<br>$lnummer_neu<br>$lkommentar_neu<br>$lspeisekarte_neu wurde erfolgreich zu den Lieferanten hinzugefügt.";
        } 
    Könnte mir jemand helfe das isset richtig einzusetzen, damit der Fehler nicht mehr angezeigt wird und trotzdem das ganze richtig funktioniert.
    Gruß
    Scorpion

  • #2
    verwende mal unten statt des

    $lname_neu != ""

    ebenfalls ein isset($lname_neu)

    Logik die dahinter steckt:
    falls vorher $_POST['lname_neu'] nicht gesetzt war, wird an der Stelle $lname_neu nichts zugewiesen. $lname_neu ist also auch nicht gesetzt. Das aber "nicht gesetzt" nicht das selbe ist wie "", evaluiert !="" dennoch zu true, denn der Inhalt ist nicht "", und er versucht den anschließenden Block auszuführen.

    greetz, high
    Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
    When everything else fails, manipulate the data...
    Beschriftungen / Großformatdruck / Werbemittel

    Kommentar


    • #3
      Oder mach
      PHP-Code:
      (isset($_POST['lname_neu'])) ? $lname_neu $_POST['lname_neu'] : $lname_neu ''
      Dann kannst du auch auf != '' prüfen

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Oder mach
        PHP-Code:
        $lname_neu = (isset($_POST['lname_neu']) ? $_POST['lname_neu'] : false ); 
        Dann kannst du auch einfach auf ($lname_neu && $soweiter) prüfen.

        Ebenfalls Gruss

        Kommentar


        • #5
          Gehört zwar nicht zu deinem Problem aber hier haste glaube ich ein fehler:
          PHP-Code:
          $eintragen mssql_query($eintrag); 
          Es heisst mysql_query() nicht mssql_query()
          Bücher für Programmierer

          Kommentar


          • #6
            OffTopic:
            mssql_query ?
            Freedom is a state of mind. Not a state in which we live.

            troxdev.ch | animefieber

            Kommentar


            • #7
              Es heisst mysql_query() nicht mssql_query()
              gefährliches Halbwissen:

              Das kommt natürlich auf den verwendeten Datenbank-Server an... für MS-SQL heißt es selbstverständlich doch mssql_query()

              greetz, high
              Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
              When everything else fails, manipulate the data...
              Beschriftungen / Großformatdruck / Werbemittel

              Kommentar


              • #8
                sql injections

                Du wirst damit vor allem ein Sicherheitsproblem bekommen. Bei dem jetzigen Source könnte ich deine datenbank (falls der datenbankuser die nötigen rechte hat) einfach dropen.

                Google mal nach php sql injection.

                lg, david

                Kommentar


                • #9
                  http://xkcd.com/327/

                  Kommentar


                  • #10
                    nur zur info, das ganze läuft im intranet
                    du hast nicht annähernd die chance zu uns reinzukommen....


                    und außerdem... wer zur hölle hijacked eine Mittagessen-Datenbank?

                    Kommentar


                    • #11
                      OffTopic:
                      Wenn man was bezahlen muss würde ich das Essen über deinen Namen abrechnen lassen ...
                      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                      Kommentar

                      Lädt...
                      X