Include Problem

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

  • Include Problem

    guten morgen zusammen,

    nachdem ich nun schon eine halbe ewigkeit herumprobiere, bekomme ich ein problem bei meinem script nicht gelöst.
    ich hoffe, dass ihr vielleicht einen tipp habt und ich heute mal etwas früher aus dem büro komme.

    die situation sieht folgendermaßen aus:
    ich habe hier ein script das die eingabe eines user überprüft wenn er den submit button drückt.
    sieht folgendermaßen aus:

    PHP-Code:
    <?php
    session_start
    ();
    if(
    $_SESSION["service"]["logged"]!="in")
    {
             if(!empty(
    $_POST["submit"]))
             {
                     switch (
    md5($_POST["nummer"])) {
               case 
    "564d2e1394f2ceaf56cbb8185d463312":    
                
    $_SESSION["service"]["logged"]="in";
                
    header("Location: index.php?id=infos2&nav=infos");
                break;
                case 
    "fa37cf409470ef665e84a7fe89c9522e":    
                
    $_SESSION["service"]["logged"]="in";
                
    header("Location: index.php?id=infos2&nav=infos");
                break;
                
                default:
                echo 
    "<script language=\"javascript\">alert('Ihre eingegebene Chargennummer ist nicht korrekt.');</script>";
                             break;
                echo 
    "<script language=\"javascript\">document.location = \"index.php?nav=infos&id=restricted\";</script>";
                     }
             }
    }
    else
    {
             
    header("Location: index.php?nav=pill&id=pill1");
    }
    ?>
    wenn die eingabe richtig ist, soll er auf eine neue seite weitergeleitet werden (index.php?id=infos2&nav=infos).
    wenn die eingabe falsch ist, wird der alert ausgegeben und der user landet wieder auf der eingabeseite.

    wenn ich das script direkt in den header schreibe, funktioniert die ausgabe wenn der user etwas falsches eingibt. wenn er die richtigen daten eingibt entsteht allerdings eine endlosschleife.
    ich vermute mal, das liegt daran, dass der header jetzt auf jeder seite eingebaut ist.

    um das problem zu umgehen, habe ich eine if abfrage in den header eingebaut.

    PHP-Code:
    <?php
    if (($_GET['id']) == "restricted")
    {
    include 
    "chargen_nr_abfrage.php";
    }
    ?>
    wenn also die id "restricted" in der url übergeben wird, soll er meine abfrage von oben includieren.
    eigentlich soll eine switch funktion in den header, die je nach id verschiedene scripts includiert. ist aber nicht so wichtig, funktioniert nämlich beides nicht ;-)

    mit dieser methode includiert er zwar das script, aber irgendwie funktioniert es nicht. wenn ich den submit button drücke, lande ich immer auf der default-seite (index.php).

    vermutlich ist es nur eine kleinigkeit die ich übersehen habe, aber irgendwie finde ich den fehler nicht.

    schonmal vielen dank für eure hilfe :-)

    Klark

    [COLOR=crimson]edit:
    wenn ich den else case aus der abfrage lösche, entsteht natürlich keine endlosschleife mehr.
    [/COLOR]
    Zuletzt geändert von Klark; 26.07.2006, 07:46.

  • #2
    laß mal das drumrum weg und mach mal nur die
    Weiterleitung.

    Kommentar


    • #3
      du meinst den ganzen session kram?

      [COLOR=red]edit[/COLOR]
      macht leider keinen unterschied. er führt das script nicht aus wenn ich es include.
      einfach oben im header eingefügt funktioniert es.
      Zuletzt geändert von Klark; 26.07.2006, 13:04.

      Kommentar


      • #4
        hat wirklich niemand eine idee woran es liegen könnte?

        Kommentar


        • #5
          wenn er die richtigen daten eingibt entsteht allerdings eine endlosschleife.
          ich verstehe das nicht ganz. was passiert mit der endlosschleife? läuft der prozess von apache auf 100%?
          First: Things get worse under pressure.
          Second: If anything just cannot go wrong, it will anyway
          Third: A falling object will always land where it can do the most damage.

          Kommentar


          • #6
            das mit der endlosschleife erledigt sich, wenn man den else-teil der if bedingung weglöscht. das problem wäre also schonmal geklärt.

            das problem was weiterhin besteht, ist dass sich das script einfach nicht vor dem html code includieren lässt.

            Kommentar


            • #7
              What denn dat
              PHP-Code:
              if(!empty($_POST["submit"]))
              //besser
              if(isset($_POST["submit"])) 
              Wo übergibst du die Session ID ? Ich tippe drauf, dass nach der korrekten Eingabe und der Weiterleitung die Session nicht mehr bekannt ist.
              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


              • #8
                das script steht ja in der selben datei wie das textfeld in dem die zahlenkombination eingegeben wird.


                Code:
                [I]---oben über dem html tag steht der php code---[/I] 
                
                <form action="<?PHP echo $_SERVER['PHP_SELF']; ?>" method="post">
                                <p>
                                Bitte geben Sie hier die Chargennummer ein<br><br>
                                <input type="text" name="nummer" size="35" style="width:142px;"><br><br>
                                <input type="submit" name="submit" value="Absenden">
                meintest du das, jahlives?

                [COLOR=red]edit[/COLOR]
                ach ja, der code ist so schon im einsatz und funktioniert einwandfrei.
                solange ich nicht probiere ihn per include einzufügen ;-)
                Zuletzt geändert von Klark; 27.07.2006, 08:59.

                Kommentar


                • #9
                  problem gelöst.

                  es lag am <?PHP echo $_SERVER['PHP_SELF']; ?>
                  die funktion hat die parameter der url einfach abgeschnitten.
                  statt "index.php?nav=infos&id=restricted" wurde einfach "index.php" übergeben.

                  so konnte die funktion natürlich nicht funktionieren.

                  Kommentar


                  • #10
                    Original geschrieben von Klark
                    es lag am <?PHP echo $_SERVER['PHP_SELF']; ?>
                    die funktion hat die parameter der url einfach abgeschnitten.
                    statt "index.php?nav=infos&id=restricted" wurde einfach "index.php" übergeben.
                    Genau das macht PHP_SELF ja, wenn du den Query String auch noch haben willst nimm $_SERVER["REQUEST_URI"]...

                    Kommentar

                    Lädt...
                    X