Umleitung über Header wird ignoriert ?

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

  • Umleitung über Header wird ignoriert ?

    Hallo zusammen,
    hab ein bescheuertes Problem und zwar übergebe ich diverse Eingaben über POST an eine andere Seite. Auf dieser anderen Seite prüfe ich ob in den POST Variablen was drin steht, wenn nicht dann leite ich über den header zur Eingabeseit wieder zurück. Nur leider wird da nichts umgeleitet obwohl ich ein Feld leer lasse... ich verstehe es nicht

    Irgendwo steckt der Wurm und ich finde ihn einfach nicht.

    Hier mal der code auf der übergebenden Seite:

    PHP-Code:
    <?php 
    $name
    =$_POST['bezeichnung'];
    $pic=($_FILES['logo']['name']);
    $size=($_FILES["logo"]["size"]);
    $timestamp date("Y-m-d H:i:s");
    if (
    $_POST['bezeichnung'] == "")
     {
     
    header ("Location: hersteller.php?medldung=10");
     }
    Hier wird die If Bedingung einfach ignoriert...

    und nu der Rest vom code:

    PHP-Code:
    if ((($_FILES["logo"]["type"] == "image/gif") || ($_FILES["logo"]["type"] == "image/jpeg") || ($_FILES["logo"]["type"] == "image/pjpeg"))
     && (
    $_FILES["logo"]["size"] < 1024000))
       {
       if (
    $_FILES["logo"]["error"] > 0)
      {
      echo 
    "Fehlercode: " $_FILES["logo"]["error"] . "<br />";
      }
       else
      {
     
        if (
    file_exists("pics/" $_FILES["logo"]["name"]))
          {
          
    header ("Location: hersteller.php?medldung=2"); 
          }
        else
          {
          
    move_uploaded_file($_FILES["logo"]["tmp_name"],
          
    "pics/" $_FILES["logo"]["name"]);
     
         
    // Connects to your Database 
             
    require_once "mysql.php";
             
    $connectionid mysql_connect (MYSQL_HOSTMYSQL_USERMYSQL_PASS);  
                  if (!
    mysql_select_db (MYSQL_DATABASE$connectionid))  
                  {  
                    die (
    "Keine Verbindung zur Datenbank"); 
                  }  
     
     
             
    $size = ($size /1024);
     
     
     
     
     
              
    //Writes the information to the database 
             
    $sql mysql_query("INSERT INTO `tb_hersteller` VALUES ('','$name','$pic','$size','$timestamp')") ; 
     
     
     
     
            if (
    mysql_errno())
              {
                if (
    mysql_errno()==1062)
                { 
                 
    header ("Location: hersteller.php?medldung=3");       
                 echo 
    "Datensatz bereits vorhanden";          
                }    
                else
                { 
                 
    header ("Location: hersteller.php?medldung=4");        
                 echo 
    "Insert Error: ".mysql_error();          
                }
              }
              else
              {
               
    header ("Location: hersteller.php?medldung=5");    
               echo 
    mysql_affected_rows()." Datensatz angelegt.";
              }
     
          }
      }
    }
    else
    {
    header ("Location: hersteller.php?medldung=12");
    }
    ?> 
    Wahrscheinlich ist das irgendein kleines Problem...
    Würde mich über jede Hilfe freuen
    Zuletzt geändert von Dario_PHP; 17.12.2010, 09:19.

  • #2
    Ist auf jeden Fall das falsche Forum, darum verschieb ich es mal.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      war mir nicht sicher, danke und sorry.

      Kommentar


      • #4
        Bei Header-Location muss immer eine komplette URL stehen.

        zB: http://example.org/my_page.php

        Kommentar


        • #5
          weiter unten im code leite ich erfolgreich über den header um und habe auch keinen vollständigen Pfad.
          Ich denke das muss an den If-Bedingungen liegen, weil speziell die erste If Bedingung ignoriert wird

          Kommentar


          • #6
            Zitat von Dario_PHP Beitrag anzeigen
            weiter unten im code leite ich erfolgreich über den header um und habe auch keinen vollständigen Pfad.
            Trotzdem ist es falsch. Bitte korrigiere das.

            Kommentar


            • #7
              So ich hab die Änderungen vorgenommen, aber das Problem besteht immer noch...

              Kommentar


              • #8
                Nach echo "Fehlercode: " . $_FILES["logo"]["error"] . "<br />"; wird keine Weiterleitung mehr funktionieren.
                Ein aktiviertes Error_reporting() würde dir sogar den Grund nennen.

                Du verläßt dich auf die Angaben, vom Browser, z.B. Name und Type. Das wird ins Auge gehen.
                1. Prüfe Bilder mit getimagesize()
                2. Vergib als Namen den Autoinkrement Key der Tabelle
                Wir werden alle sterben

                Kommentar


                • #9
                  Zitat von Dario_PHP Beitrag anzeigen
                  Hier wird die If Bedingung einfach ignoriert...
                  Quatsch, „ignoriert“ wird da bestimmt nichts.

                  Vermutlich hat aber die Variable, die du vergleichen willst, nicht wirklich den Inhalt, den du annimmst - überprüfe das mit einer Kontrollausgabe, bspw. per var_dump.

                  Und hast du das error_reporting so eingestellt, wie es in den Forenregeln empfohlen wird?


                  Und zu letzt - schreibst du den Parameternamen meldung eigentlich absichtlich überall falsch, oder ...?
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar

                  Lädt...
                  X