if() abfrage imma ok obwohl es nich sein darf

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

  • #31
    Original geschrieben von TobiaZ
    ... meikel hilft dir sicher dabei...
    OffTopic:
    Huch? Nachhilfe ist bei dem üblichen Dozentenhonorar von 25 EUR/h nicht mit enthalten....

    Kommentar


    • #32
      Original geschrieben von meikel
      1. teste if (isset($_POST['senden']))
      2. Kontrolliere $_FILES['file']['type'] auf den Typ

      Zusatz: wären es nur Bilder, wäre es einfach.
      $ergebnis = getimagesize($dateiname)
      " Index 2: ein Flag je nach Grafik-Typ (1 = GIF, 2 = JPG, 3 = PNG, SWF = 4)"

      ggf. auch das: image_type_to_mime_type()

      oder das: mime_content_type()
      Allerdings haben ZIP und RAR haben keinen eigenen Content-Type.

      Sowas ist Unfug: "$test = explode("\r\n",$test);"
      "\r\n" ist ein Windows Zeilenumbruch. Damit "schnorpst" Du alle Linux, MAC oder sonstwas Benutzer komplett aus.

      Falls Du Zeilenumbrüche nach UNIX konvertieren willst:
      PHP-Code:
      $test str_replace ("\r\n""\n"$test);
      $test str_replace ("\r""\n"$test); 
      Im Ergebnis erhälst Du UNIX konforme Zeilenumbrüche, egal welcher Client (klappert von MAC über WIN bis Linux) die im Formular geschickt hat
      Ok ich habe alles so gemacht aber geht immanoch net....
      er gibt von den sechs "if ist ausgeführt" die teoretisch max. kommen könnten (wo nur eins kommen soll) keins aus.
      was soll ich bloß machen

      Kommentar


      • #33
        @1. sieht man doch auf den ersten blick... Darüber waren wir hinaus...

        Kommentar


        • #34
          wo bleibt der aktuelle code? ich seh wiedermal nichts davon, dass du meine ratschläge befolgst!

          Kommentar


          • #35
            hier der aktuelle code:
            PHP-Code:
            <?
            if (isset($_POST['senden'])) {
                echo $_FILES['file']['name']."<br>";
                $explode = explode(".",$_FILES['file']['name']);
                $count = count($explode);
                $count--;
                echo $count."<br>";
                echo $explode[$count]."<br><br>";
                $test = "jpg
                     jpeg
                     bmp
                     rar
                    zip
                     txt";
                $test = str_replace ("\r\n", "\n", $test);
                $test = str_replace ("\r", "\n", $test);
                $test = explode("\n",$test);
                $count_test = count($test);
                $ok = "nein";
                for($i=0;$i < $count_test;$i++){
                    $a = $explode[$count];
                    $b = $test[$i];
                    echo $a."<br>";
                    echo $b."<br><br>";
                    if($b == $a) {
                        $ok = "ja";
                        echo "if ist ausgeführt";
                    }
                }
                echo $ok;
            } else {
            ?>

            <html>
            <body bgcolor=#FFFFFF text=#000000 link=#ccff88 vlink=ccff88 alink=#ccff88>
            <form action="<?php $PHP_SELF?>"method="post" enctype="multipart/form-data">
            <p>Bitte Datei auswählen:<br>
            <input type=file name=file>
            <p><button name="senden" type="submit">Hochladen</button>
            </form>
            </body>
            </html>

            <?
            }
            ?>

            Kommentar


            • #36
              wo sind die kommentare?

              sorry, wenn ich dir alles aus der nase ziehen muss, hab ich da auch nicht so die böcke... DU bist hier derjenige, derwas will!

              Kommentar


              • #37
                PHP-Code:
                <?
                if (isset($_POST['senden'])) {
                    echo $_FILES['file']['name']."<br>";
                    $explode = explode(".",$_FILES['file']['name']);
                    $count = count($explode);
                    $count--;
                    echo $count."<br>"; // Kommt 1 raus weil ja nur ein punkt da ist
                    echo $explode[$count]."<br><br>"; // Da kommt in diesem fall txt raus
                    $test = "jpg
                         jpeg
                         bmp
                         rar
                        zip
                         txt";
                    $test = str_replace ("\r\n", "\n", $test);
                    $test = str_replace ("\r", "\n", $test);
                    $test = explode("\n",$test);
                    $count_test = count($test);
                    $ok = "nein";
                    for($i=0;$i < $count_test;$i++){
                        $a = $explode[$count];
                        $b = $test[$i];
                        echo $a."<br>"; // da kommt auch (in diesem fall) txt raus
                        echo $b."<br><br>"; // da kommt imma was anderes raus siehe oben $test
                        if($b == $a) {
                            $ok = "ja";
                            echo "if ist ausgeführt"; // Müsste eientlich einmal auftauchen weil $a(txt) ja einmal gleich is wie $b (das letzte von $test
                        }
                    }
                    echo $ok; // Kommt imma nur nein raus....
                } else {
                ?>

                <html>
                <body bgcolor=#FFFFFF text=#000000 link=#ccff88 vlink=ccff88 alink=#ccff88>
                <form action="<?php $PHP_SELF?>"method="post" enctype="multipart/form-data">
                <p>Bitte Datei auswählen:<br>
                <input type=file name=file>
                <p><button name="senden" type="submit">Hochladen</button>
                </form>
                </body>
                </html>

                <?
                }
                ?>
                ich hoffe ich muss nich jeden befehl kommentieren
                Naja jetzt ist es eben so das er garner mehr sagt if ist ausgeführt
                Und wenn ich das script ausführe wird das alles ausgegeben:
                text.txt
                1
                txt

                txt
                jpg

                txt
                jpeg

                txt
                bmp

                txt
                rar

                txt
                zip

                txt
                txt

                nein
                So brauchste noch irgentwas???

                Kommentar


                • #38
                  Original geschrieben von Master X
                  hier der aktuelle code:
                  Jut, der sieht schon etwas besser aus. Könntest Du ggf. für mich alten
                  Knacker mal ganz kurz beschreiben, welches Ergebnis Du erwartest?
                  Ich vermute zwar, Du willst mit irgend welchen wilden Aktionen unerwünschte Dateitypen ausschalten
                  (das erledigt man schlicht und einfach anders),
                  aber ich weiß das noch nicht genau....

                  Kommentar


                  • #39
                    ok ich wollte später wenn der code funktioniert es so machen das man in eine mysql tabelle reinschreibt welche endungen erlaubt sind.
                    Und ich wüsste nich wie man das anders machen könnt das man abfragt ob die endung von der datei wirklich txt ist oda so...
                    Ich will ja nich das man da so reinschreiben muss text/plain.
                    Und mein problem ist ja bekanntlich das er nicht erkennt das variable $a gleich $b ist und das nur 1 mal

                    Kommentar


                    • #40
                      Original geschrieben von Master X
                      [B]ok ich wollte später wenn der code funktioniert es so machen das man in eine mysql tabelle reinschreibt welche endungen erlaubt sind.
                      Kurze Hilfe
                      =======
                      ermitteln, welche Extension das File hat:
                      PHP-Code:
                      $ext array_pop (explode('.'$dateiname)); 

                      Kommentar


                      • #41
                        ich hab den scheiss fehler gefunden:
                        in dem ich das so gemacht hab:
                        PHP-Code:
                        $test "jpg
                                 jpeg
                                 bmp
                                 rar
                                zip
                                 txt"

                        war txt nich txt sonder irgentwie "txt " oder so....
                        wenn ich das so mach:
                        $test= "jepg\r\ntxt";
                        geht das
                        Naja ok dank

                        Kommentar


                        • #42
                          'löschen'

                          Kommentar


                          • #43
                            Original geschrieben von Master X
                            ich hab den scheiss fehler gefunden:
                            in dem ich das so gemacht hab:
                            PHP-Code:
                            $test "jpg
                                     jpeg
                                     bmp
                                     rar
                                    zip
                                     txt"

                            Vorschlag zur Güte:
                            $test = array ('jpg', 'jpeg', 'jpg', 'bmp', 'rar', 'zip', 'txt');;

                            Test:
                            PHP-Code:
                            if (in_array$extension$test))
                            {
                            # her mit dem File
                            }
                            else
                            {
                            # hau ab damit!

                            Kommentar


                            • #44
                              Vorschlag zur Güte:
                              $test = array ('jpg', 'jpeg', 'jpg', 'bmp', 'rar', 'zip', 'txt');
                              wäre ja schön und toll nur ich hab doch schon gesagt das ich das so in eine tabelle schreiben wollt das man nich für jede endung eine neue abfrage machen muss sondern alles in ein feld schreibt. Also alles in eine text arena und dann in ein mysql feld

                              Kommentar


                              • #45
                                Original geschrieben von Master X
                                wäre ja schön und toll nur ich hab doch schon gesagt das ich das so in eine tabelle schreiben wollt
                                Kleines Geheimnis: "Nicht alles, was Du in eine Tabelle zu schreiben gewillt bist, muß deshalb auch Sinn und Verstand haben".

                                Solche "On-way" Tabellen sollte man grundsätzlich bermeiden, wenn die Werte nur vom Admin verändert werden. Sowas kostet einen DB Request mehr. Erledige solche Angaben mit einem Config File.

                                das man nich für jede endung eine neue abfrage machen muss sondern alles in ein feld schreibt. Also alles in eine text arena und dann in ein mysql feld
                                Dein MySQL Server versteht aber nun mal kein PHP sondern nur SQL. Es kostet (je nach Blechkiste) mindestens 1-10 ms mehr, wenn Du das per SQL Abfrage klärst.

                                Sowas:
                                require ('./config.php');# EDIT
                                "kostet" fast nüscht.

                                Bevor Du fragst:
                                PHP-Code:
                                <?php

                                $cfg
                                ['ort'] = "hierorts";
                                $cfg['user'] = "DAU";
                                $cfg['pass'] = "0815";
                                $cfg['db'] = "meine";

                                $filename './config.inc.php';

                                if (!
                                is_writable('./')) die ('<b>Error: darf nicht ins Verzeichnis schreiben</b>');
                                if (!
                                $fp fopen($filename,"w")) die ("<b>Error: darf $filename nicht schreiben</b>");

                                $conf  '<'.'?php'."\n";

                                foreach (
                                $cfg as $key => $val)
                                {
                                    
                                $conf .= '$cfg[\''.$key."']=$val;\n"# Die Zeile wird im Forum nicht korrekt dargestellt.
                                }

                                $conf .= '?'.'>';

                                fwrite($fp,$conf,strlen($conf));
                                fclose($fp);
                                Zuletzt geändert von meikel; 11.04.2004, 02:40.

                                Kommentar

                                Lädt...
                                X