Vanel: in_array gibt Fehlermeldungen aus!

Hallo Forumer,

ich habe ein ganz simples Script gebaut, was jedoch dauert eine Fehlermeldung ausgibt. Hier der Quelltext:

<?
$base="comingsoon.gif";
$gif="gif";
if(in_array($gif, $base)) { echo("Es ist eine GIF-Datei"); }
else { echo("Es ist eine andere Datei"); }
?>

Es kommt als Fehlermeldung:

Warning: in_array(): Wrong datatype for second argument ... on line 4
Es ist eine andere Datei

Ich wäre froh wenn ihr diesen mysteriösen Fall lösen könntet

MFG

Vanel

  1. Hallo,

    Warning: in_array(): Wrong datatype for second argument ... on line 4

    Was sagt dir diese Meldung?

    Ich wäre froh wenn ihr diesen mysteriösen Fall lösen könntet

    das ist nicht mysteriös...

    lies dir mal http://de.php.net/manual/de/function.in-array.php durch.
    Insbesondere folgendes:
    "Prüft, ob ein Wert in einem Array existiert"
                        ^^^^^^^^^^^^^^

    mfg,
      Philip

    --
    :::::::: http://www.metrox.de ::::::::
  2. Hallo!

    <?
    $base="comingsoon.gif";
    $gif="gif";
    if(in_array($gif, $base)) { echo("Es ist eine GIF-Datei"); }

    Wieso verwendest Du hier eine Funktion die ein Element in einem Array suchen soll? Wo hast Du hier einen Array?

    else { echo("Es ist eine andere Datei"); }
    ?>

    Es kommt als Fehlermeldung:

    Warning: in_array(): Wrong datatype for second argument ... on line 4

    Natürlich. Mit ein bisschen Phantasie könnte man ja durchaus auf die Idee kommen dass es ein Problem mit "in_array()" geben könnte, oder nicht?

    Werfen wir einen Blick ins Manual: http://de3.php.net/in_array:

    "in_array -- Prüft, ob ein Wert in einem Array existiert
    Beschreibung
    bool in_array ( mixed needle, array haystack [, bool strict])

    Diese Funktion sucht in haystack nach needle und gibt bei Erfolg TRUE zurück, andernfalls FALSE."

    Wie gesagt, bei Dir sehe ich keinen Array.

    Ich wäre froh wenn ihr diesen mysteriösen Fall lösen könntet

    Möglicherweise hast Du Dich im Kapitel des Manuals vergriffen?

    Wenn Du wissen willst ob der String ".gif" im String "comingsoon.gif" vorkommt, musst Du Dich bei den "String-Funktionen" umschauen: http://de3.php.net/strings

    Da liest Du Dir die Kurzbeschreibungen durch, und Du wirst die richtige Funktion finden.

    Grüße
    Andreas

    1. Hi,

      Da liest Du Dir die Kurzbeschreibungen durch, und Du wirst die richtige Funktion finden.

      habe ich gemacht und bin auch fündig geworden ( hab den String jetzt mit explode zerteilt und habe dann überprüft ob der zweite Teil die Endung gif besitzt )
      Ich hab jetzt aber noch mal ne Frage. Wie kann ich eine Datei uploaden ? Gibt es da einen einfachen Befehl ? Ich denk mal an copy(); , aber bin mir nicht ganz sicher...
      Habt ihr ne Idee

      MFG

      Vanel

      1. Hallo!

        habe ich gemacht und bin auch fündig geworden ( hab den String jetzt mit explode zerteilt und habe dann überprüft ob der zweite Teil die Endung gif besitzt )

        Ich wollte eigentlich auf "strstr()" hinaus, aber gut, es gibt immer mehrere Wege ;-)
        Wenn Du prüfen willst ob es sich bei einer Datei aus einer nicht vertrauenswürdigen Quelle(z.B. Datei-Upload) um eine Bild-Datei handelt, reicht die Prüfung der Endung nicht aus. In dem Fall könnte man z.B. mit der Funktion "getimagesize()" eine bessere Prüfung hinbekommen.

        Ich hab jetzt aber noch mal ne Frage. Wie kann ich eine Datei uploaden ? Gibt es da einen einfachen Befehl ? Ich denk mal an copy(); , aber bin mir nicht ganz sicher...

        Du solltest Dir wirklich mal das Manual ansehen. Darin stehen doch recht nützliche Sachen, auch die Lösung für dieses Problem wird dort sehr detailiert erklärt.

        PHP-Manual: http://de3.php.net/manual/de/
        Da findest Du im Kapitel "IV. Features" ein nettes Kapitel zum Thema ;-)

        Außerdem findest Du eine weitere Anleitung in den FAQ der deutschen PHP-Mailingliste: http://dclp-faq.de/

        Guck mal ins Kapitel "Formulare".

        Im eigenen Interesse empfehle ich Dir beide Links mal etwas genauer anzusehen und Dich mal ein bisschen umzugucken. Und natürlich bookmarken und demnächst bei Problemen erstmal da gucken. Viele Probleme lassen sich so viel einfacher und schneller lösen.

        Grüße
        Andreas