Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Mit if und chase verschiedene Seiten öffnen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Mit if und chase verschiedene Seiten öffnen

    Hallo lieber Helfer und Helferinnen,

    ich habe folgendes Problem, bei dem ich für jede Hilfe dankbar wäre:
    Ich habe 2 Seiten. Auf der ersten HTML-Seite sind 5 verschiedene Bilder, die durch anklicken einen Wert per POST an eine check.php-Datei senden.
    Die check.php bekommt dann quasi 5 POST-Variablen. Diese wollte ich per if- und switsch Anweisung überprüfen und je nachdem,welches Bild angeklickt wurde einer Variablen einen Wert zuweisen und eine spezifische Seite öffnen.

    Hier der Code für die check.php:

    PHP-Code:
    <?php
    session_start
    ();
    if(isset(
    $_POST["einfach"]))
    {
    $format=einfach;}
    elseif(isset(
    $_POST["zweifach"]))
    {
    $format=zweifach;}
    elseif(isset(
    $_POST["dreifach"]))
    {
    $format=dreirahmen;}
    elseif(isset(
    $_POST["vierfach"]))
    {
    $format=vierfach;}
    elseif(isset(
    $_POST["zweirahmen"]))
    {
    $format=zweirahmen;}
    elseif(isset(
    $_POST["dreirahmen"]))
    {
    $format=dreirahmen;}

    $_SESSION['formatend']=$format;

    switch(
    $format)
    {
    case (
    "einfach");
    header("Location: http://localhost/Farbauswahl.php");
    break;

    case (
    "zweifach");
    header("Location: http://localhost/Farbenmeer.php");
    break;

    case(
    "dreifach");
    header("Location: http://localhost/Farbenmeer3.php");
    break;

    case(
    "vierfach");
    header("Location: http://localhost/Farbenmeer6.php");
    break;

    case(
    "zweirahmen");
    header("Location: http://localhost/Farbauswahlrahmen.php");
    break;

    case(
    "dreirahmen");
    header("Location: http://localhost/Farbauswahlrahmen.php");
    break;
    }
    ?>
    Leider funktioniert das mit der automatischen Weiterleitung auf die jeweilige Seite per HEADER-Befehl rein gar nicht. Habe auch probiert, statt
    header("Link"), echo'<meta....> zu nutzen, aber in dem Falle öffnet er mir, in jedem Fall, egal,welches Bild auf der vorherigen Seite angeklickt wurde, immer die letzte Weiterleitung. Ich würde mich über jeden Tipp und auch gerne Codeverbesserungen sehr freuen!

    Beste Grüße


  • #2
    PHP-Code:
    case 'dreifach': ... 
    "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

    Kommentar


    • #3
      PHP-Code:
      $format=dreirahmen 
      "dreierrahmen" ist ein String und gehört demnach in Anführungszeichen.

      Richtig ist also z.B.:
      PHP-Code:
      $format "dreierrahmen"
      Übrigens würde ich den Aufbau des Formulars überdenken.
      Besser wäre es, durch Klick auf ein Bild z.b. $_POST['format'] zu senden wobei dieser Parameter schon den richtigen Wert enthalten könnte.

      Kommentar


      • #4
        insofern das script nichts anders tut als das da oben benutz nur nen switch und weiß der session-variable in der einzelnen case ihren wert zu..
        Desweiteren
        PHP-Code:
         $format dreirahmen
        weißt $format den wert der Konstante dreirahmen zu, ich glaub nich das es das ist was du willst.
        PHP-Code:
        <?php

        session_start
        ();
        switch ( 
        $_POST ) {
           case 
        "einfach":
            
        $_SESSION['formatend'] = "einfach";
            
        header("Location: /Farbenauswahl.php");
            break;
           
        // der rest der cases
          
        default:
            
        // instruct what happens if someone plays with your POST-Script
            
        die("Hör auf zu fummeln !!");
        }

        ?>
        [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

        Kommentar


        • #5
          Zitat von tr0y Beitrag anzeigen
          PHP-Code:
          switch ( $_POST ) {
             case 
          "einfach"



          Mach doch mal ein var_dump($_POST); an den Anfang, es kann gut sein dass du in deinem Formular einen Fehler hast.
          @fschmengler - @fschmengler - @schmengler
          PHP Blog - Magento Entwicklung - CSS Ribbon Generator

          Kommentar


          • #6
            Zitat von fab Beitrag anzeigen



            Mach doch mal ein var_dump($_POST); an den Anfang, es kann gut sein dass du in deinem Formular einen Fehler hast.
            ich seh schon ich bin noch nicht ganz wach oO

            PHP-Code:
            <?php

            session_start
            ();
            foreach (
            $_POST as $key => $value)
             if ( !empty(
            $value) ) {
              switch ( 
            $key ) {
               case 
            "einfach":
                
            $_SESSION['formatend'] = "einfach";
                
            header("Location: /Farbenauswahl.php");
                break;
               
            // der rest der cases
               
            default:
                
            // instruct what happens if someone plays with your POST-Script
                
            die("Hör auf zu fummeln !!");
              }
             }
            }
            ?>
            natürlich gesetz dem fall das dein formular nur eins setzt.
            [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

            Kommentar


            • #7
              Hey, danke erst einmal für eure Mühe!!
              Habe nun folgendes probiert,aber es erfolgt keine Weiterleitung auf die gewünschten Seiten:
              PHP-Code:
              <?php

              session_start
              ();
              switch ( 
              $_POST 
              {
                 case 
              "einfach":
                  
              $_SESSION['formatend'] = "einfach";
                  
              header("Location: /Farbauswahl.php");
                  break;
                 case 
              "zweifach":
                  
              $_SESSION['formatend'] = "einfach";
                  
              header("Location: /Farbenmeer.php");
                  break;
                 case 
              "dreifach":
                  
              $_SESSION['formatend'] = "einfach";
                  
              header("Location: /Farbenmeer3.php");
                  break;
                 case 
              "vierfach":
                  
              $_SESSION['formatend'] = "einfach";
                  
              header("Location: /Farbenmeer6.php");
                  break; 
                 case 
              "zweirahmen":
                  
              $_SESSION['formatend'] = "einfach";
                  
              header("Location: /Farbauswahlrahmen.php");
                  break;
                 case 
              "dreirahmen":
                  
              $_SESSION['formatend'] = "einfach";
                  
              header("Location: /Farbauswahlrahmen.php");
                  break; 
              }
              ?>
              Hier auch noch der vorhergehende HTML-Skript:
              PHP-Code:
              <form action="formatcheck.php" method="post">
              <
              input height="162" name="dreirahmen" type="image" width="258" src="Grafik2%203teiler%203d.jpg" /></form>
              </
              div>
              <
              form action="formatcheck.php" method="post">
              <
              input height="162" name="vierfach" type="image" width="174" src="4seitig%203d.jpg" /></form>
              </
              div>
              <
              div id="Ebene22" style="position: absolute; left: 574px; top: 355px; width: 257px; height: 162px; z-index: 12" class="style53">
              <
              form action="formatcheck.php" method="post">
              <
              input height="162" name="dreifach" type="image" width="257" src="3seitig%203d.jpg" /></form>
              </
              div>
              <
              div id="Ebene21" style="position: absolute; left: 355px; top: 355px; width: 189px; height: 162px; z-index: 12" class="style53">
              <
              form action="formatcheck.php" method="post">
              <
              input height="162" name="zweifach" type="image" width="189" src="2seitig%203d.jpg" /></form>
              </
              div>
              <
              div id="Ebene20" style="position: absolute; left: 148px; top: 594px; width: 200px; height: 162px; z-index: 12" class="style53">
              <
              form action="formatcheck.php" method="post">
              <
              input height="162" name="zweirahmen" src="Grafik1%202teiler%203d.jpg" type="image" width="200" /></form>
              </
              div>
              <
              div id="Ebene19" style="position: absolute; left: 149px; top: 355px; width: 178px; height: 160px; z-index: 12" class="style53">
              <
              form action="formatcheck.php" method="post">
              <
              input height="160" name="einfach" type="image" width="178" src="1seitig%203d.jpg" /></form
              Ich geh kaputt......

              Kommentar


              • #8
                switch ( $_POST )
                Das ist auch Unsinn. $_POST enthält die Werte mehrerer Parameter und ist in jedem Fall ein Array.

                Mach doch mal ein var_dump($_POST); an den Anfang
                hätte Dir das auch gezeigt. Im Zweifel einfach auch mal Tipps umsetzen.

                Im Übrigen solltest Du auf Deinen Ausdruck achten

                if und chase
                if- und switsch Anweisung
                Skript
                macht echt nen stümperhaften Eindruck.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  Hmmm...ich krieg das nicht hin...sh*t

                  Kommentar


                  • #10
                    ich hatte das da auch korrigiert :P *never kritzel at forum if you are not wach* düdelü
                    [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                    Kommentar


                    • #11
                      Ok Leute,also diese Variante zeigt bei mir einen weißen Bildschirm an:
                      PHP-Code:
                      <?php 

                      session_start
                      (); 
                      foreach (
                      $_POST as $key => $value
                       if ( !empty(
                      $value) ) { 
                        switch ( 
                      $key ) { 
                         case 
                      "einfach"
                          
                      $_SESSION['formatend'] = "einfach"
                          
                      header("Location: /Farbenauswahl.php"); 
                          break; 
                         
                      // der rest der cases 
                         
                      default: 
                          
                      // instruct what happens if someone plays with your POST-Script 
                          
                      die("Hör auf zu fummeln !!"); 
                        } 
                       } 

                      ?>
                      Und diese Variante leitet immer NUR auf das letzte meta tag (in diesem Fall: Farbauswahlrahmen.php).Ist da eine bestimmte Logik hinter?:
                      PHP-Code:
                      <?php 
                      session_start
                      (); 
                      if(isset(
                      $_POST['einfach'])) 
                      {
                      $format=einfach;
                      echo 
                      '<meta http-equiv="refresh" content="0; URL=Farbauswahl.php">';} 
                      elseif(isset(
                      $_POST['zweifach'])) 
                      {
                      $format=zweifach;
                      echo 
                      '<meta http-equiv="refresh" content="0; URL=Farbenmeer.php">';} 
                      elseif(isset(
                      $_POST['dreifach'])) 
                      {
                      $format=dreirahmen;
                      echo 
                      '<meta http-equiv="refresh" content="0; URL=Farbenmeer3.php">';} 
                      elseif(isset(
                      $_POST['vierfach'])) 
                      {
                      $format=vierfach;
                      echo 
                      '<meta http-equiv="refresh" content="0; URL=Farbenmeer6.php">';} 
                      elseif(isset(
                      $_POST['zweirahmen'])) 
                      {
                      $format=zweirahmen;
                      echo 
                      '<meta http-equiv="refresh" content="0; URL=Farbauswahlrahmen.php">';} 
                      elseif(isset(
                      $_POST['dreirahmen'])) 
                      {
                      $format=dreirahmen;
                      echo 
                      '<meta http-equiv="refresh" content="0; URL=Farbauswahlrahmen.php">';

                      ?>

                      Kommentar


                      • #12
                        sind die $_POST-Items wie z.b. 'einfach' leer ? dann wirst du auch eine weiße seite sehen. Das bewirkt:
                        PHP-Code:
                        if ( !empty($value) ) { ... } 
                        [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                        Kommentar


                        • #13
                          nein,die haben alle einen eigenen wert,deswegen verstehe ich das nicht. warum der aber bei diesem skript
                          PHP-Code:
                          <?php 
                          session_start
                          (); 
                          if(isset(
                          $_POST['einfach'])) 
                          {
                          $format=einfach;
                          echo 
                          '<meta http-equiv="refresh" content="0; URL=Farbauswahl.php">';} 
                          elseif(isset(
                          $_POST['zweifach'])) 
                          {
                          $format=zweifach;
                          echo 
                          '<meta http-equiv="refresh" content="0; URL=Farbenmeer.php">';} 
                          elseif(isset(
                          $_POST['dreifach'])) 
                          {
                          $format=dreirahmen;
                          echo 
                          '<meta http-equiv="refresh" content="0; URL=Farbenmeer3.php">';} 
                          elseif(isset(
                          $_POST['vierfach'])) 
                          {
                          $format=vierfach;
                          echo 
                          '<meta http-equiv="refresh" content="0; URL=Farbenmeer6.php">';} 
                          elseif(isset(
                          $_POST['zweirahmen'])) 
                          {
                          $format=zweirahmen;
                          echo 
                          '<meta http-equiv="refresh" content="0; URL=Farbauswahlrahmen.php">';} 
                          elseif(isset(
                          $_POST['dreirahmen'])) 
                          {
                          $format=dreirahmen;
                          echo 
                          '<meta http-equiv="refresh" content="0; URL=Farbauswahlrahmen.php">';

                          ?>
                          immer nur die Datei Farbauswahlrahmen.php aufruft, verstehe ich einfach nicht.

                          Kommentar


                          • #14
                            Zitat von geckodog Beitrag anzeigen
                            warum der aber bei diesem skript [...] immer nur die Datei Farbauswahlrahmen.php aufruft, verstehe ich einfach nicht.
                            Weil $_POST nicht das enthält, was du annimmst.


                            Darauf, dass du den Inhalt erst mal mit var_dump($_POST) überprüfen sollst, wurdest du jetzt mehrfach hingewiesen - also verflixt noch mal, mach' es bitte auch!

                            Kommentar


                            • #15
                              jaja ist ja gut.wuuuzaaaa kann ich da nur empfehlen. läuft jetzt so wie ich mir das vorstelle, auch ohne var_dump.trotzdem danke an alle!!

                              Kommentar

                              Lädt...
                              X