daniel: überprüfen, ob variable leer ?

hi forum,

wie kann ich überprüfen, ob eine variable einen inhalt hat, oder ob sie leer ist??
$file stammt aus einem formular, und wenn sie leer ist, d.h. keinen inhalt hat, soll ..... übersprungen werden.
ich dachte eigentlich, man könnte das folgendermassen machen,
aber das klappt irgendwie nicht ?

if ($file!="") {
........ }

kann mir jemand auf die sprünge helfen?

grüße daniel

  1. Hi Daniel,

    if ($file!="") {

    -------------^
    Lieg wohl am gleichheitszeichen

    if ($file == ""){}

    gruss

    michel

    1. ähm.. da war ja noch das ausrufezeichen :-(

      if ($file!="") {
      -------------^
      Lieg wohl am gleichheitszeichen

      if ($file == ""){}

      egal, bei mir klappt es eigentlich so wie Du es gemacht hast, auch die variante mit == "" funzt...

      gruss
      michel

      1. ähm.. da war ja noch das ausrufezeichen :-(

        if ($file!="") {
        -------------^
        Lieg wohl am gleichheitszeichen

        if ($file == ""){}

        egal, bei mir klappt es eigentlich so wie Du es gemacht hast, auch die variante mit == "" funzt...

        gruss
        michel

        hi michael,

        danke für deine antwort, aber bei mir klappt das leider nicht.
        $file ist eine variable aus einem dateifeld, mit dem man eine datei hochladen kann.
        welchen wert bekommt denn das $file wenn man einfach nichts angibt?

        if ($file=="") { echo "KEINE DATEI ZUM UPLOAD AUSGEWÄT"; }
        else {......}

        so jedenfalls springt er mir konsequent in den else-zweig ????
        (also wenn ich keine datei zum upload angebe...)

        grüße daneiol

  2. Hallo daniel,

    wie kann ich überprüfen, ob eine variable einen inhalt hat, oder ob sie leer ist??

    probier mal:

    int empty (mixed var)

    Diese Funktion liefert true, wenn eine Variable nicht definiert, leer oder gleich 0 ist, ansonsten false.

    Grüsse mexchen

  3. Hallo Daniel,

    die offizielle PHP-Dokumentation ist Dein Freund ;)

    http://www.php.net/manual/de/function.empty.php
    http://www.php.net/manual/de/function.strlen.php

    Ich würde unabhängig davon einen anderen Variablennamen wählen, weil
    http://www.php.net/manual/de/function.file.php

    Nach Deinen bisherigen Fragen vermute ich, Du arbeitest an einem Datei-Upload-Formular. Deswegen könnte Dir dies noch helfen:
    http://www.dclp-faq.de/q-formular-upload.html
    http://www.php.net/manual/de/html/features.file-upload.html

    Gruss, Thoralf

  4. hi,

    danke erstmal für eure tipps !!

    aber es funtzt nicht, egal was ich mache, ich habe immer denselben fehler:

    Warning: getimagesize: Unable to open 'none' for reading.

    die meldung kommt aber nur, wenn ich das dateifeld einfach leer lasse beim abschicken.

    kann es sein, daß die seite von unserem proxy gecacht wurde und ich trotz veränderten source immer dieselbe seite aufrufe ??? (muß das script zum testen immer hochladen, da ich hier keinen webserver habe...)

    ich denke nämlich mal, das mein source stimmt :

    if (empty($thefile)) { echo "KEINE DATEI ZUM UPLOAD AUSGEWÄT"; }
    else {
    $size = getimagesize($thefile);
    $byte = $thefile_size;
    $byte_kb = $thefile_size / 1024;
     }

    oder ist da doch ein fehler drin???

    grüße daniel

    1. Hallo,

      Warning: getimagesize: Unable to open 'none' for reading.

      Hast Du einfach mal $thefile ausgegeben? Da steht laut dieser Fehlermeldung nämlich 'none' drin und das ist kein Dateiname bei Dir.

      Gruss, Thoralf

      1. hi thoralf,

        ja noch 'none' hatte ich vorher schon abgefragt, aber das hat auch nicht geklappt:
        if($thefile=='none'){ ...}

        aber ich kann mir auch mit echo $thefile nichts anzeigen lassen.
        ich denke, das die seite in unserem proxy im cache liegt, egal,
        was ich ändere ich seh es nicht auf der seite...

        selbst wenn ich nur echo "hallo"; ausgeben will ;-)
        (ja,  ich hab auch schon F5 gedrückt und meinen browsercache leer gemacht)

        habe einem bekannten gesagt, er soll es mal versuchen und mir einen screenshot schicken. es müsste _eigentlich_ funzen..

        meld mich gleich nochmal !!
        danke& gruß
        daniel

        1. verflixt,

          es klappt einfach nicht !!
          ich verstehe es nicht...

          if ($thefile=='none') { echo "KEINE DATEI ZUM UPLOAD AUSGEWÄT"; }
          else {
          $size = getimagesize($thefile);
          $byte = $thefile_size;
          $byte_kb = $thefile_size / 1024;}

          wiso springt der parser in den elsezweig ????
          auch wenn ich das datei-feld leerlasse ????

          grüße daniel

          1. Zum Test vor

            if ($thefile=='none') { echo "KEINE DATEI ZUM UPLOAD AUSGEWÄT";

            mal

            var_dump( $the_file );

            eintragen und am Anfang vom Script

            error_reporting( E_ALL );

            Und Ergebnis kundtun ;)

            1. Zum Test vor

              if ($thefile=='none') { echo "KEINE DATEI ZUM UPLOAD AUSGEWÄT";

              mal

              var_dump( $the_file );

              eintragen und am Anfang vom Script

              error_reporting( E_ALL );

              Und Ergebnis kundtun ;)

              hi thoralf,

              danke für deine geduld,
              aber es hat echt keinen sinn, was mit PHP zu machen wenn man keine lokale testumgebung hat...

              ich habs fast befürchtet,
              das lag an diesen SCH...-Proxy in der Firma, der die Seite gecacht hatte....

              bin gerade nachhause gekommen, bißchen probiert und siehe da:
              es geht:

              if ($thefile!="none")  {.....}

              es ist echt zum verrücktwerden.
              sorry für den aufwand deinerseits, aber ES KLAPPT. yipie ;-)

              grüße, bis zum nächstenmal
              daniel

              1. Guten Abend,

                ich habs fast befürchtet,
                das lag an diesen SCH...-Proxy in der Firma, der die Seite gecacht hatte....

                Treten, feste treten ;)

                bin gerade nachhause gekommen, bißchen probiert und siehe da:
                es geht:

                Find ich gut, meine nächste Idee wäre dann gewesen, den ganzen Code durchzuschauen ;)

                es ist echt zum verrücktwerden.
                sorry für den aufwand deinerseits, aber ES KLAPPT. yipie ;-)

                Kein Problem, wenn das miteinander geht, macht das hier fast jeder gern.

                Gruss, Thoralf