Post geht ans "falsche ziel"

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

  • Post geht ans "falsche ziel"

    Hallo zusammen

    Folgende Situation:
    Für ein Webprojekt in der Schule coden wir einen einfachen "OnlineShop". Der jeweilige Content wird abhängig von den index.php?act=xxx Parametern angezeigt.

    Ist xxx z.B. allProds, zeigt er mir die Produktliste an

    Ist xxx createUser, zeige ich eine html-Form an, welche dann mit Post die Daten an index.php?act=saveUser schickt. Die Überwachung der Parameter fängt das saveUser ab (wie auch oben die allProds usw) und speichert die Post Werte in die DB.

    CreateUser erstellt schickt die Werte via Post ab, ich komme nie in den save Status.
    Das Abfüllen der Werte in die DB funktioniert, wenn ich nach createUser von Hand saveUser anhänge..

    Irgendwo mache ich einen Fehler, aber ich sehe es im Moment einfach nicht..

    Die Funktion, welche den Content immer generiert, bzw die Auswahl trifft. Der Paramgetter holt einfach den act-parameter ab.

    PHP-Code:
        function showContent(){
            
            
    $action ParamGetter::getParam("act");        
            switch (
    $action){
                case 
    "productDetail":
                    break;
                
                case 
    "showAll":
                    break;
                    
                case 
    "createUser":
                    include (
    'core/createUser.inc.php');
                    break;    
                    
                case 
    "saveUser":
                    include (
    'core/saveUser.inc.php');
                    break;    
                    
                default:
                    echo 
    "default";
                    break;
            }        
        } 
    Die Html-Form
    PHP-Code:
    <form action='index.php?act=saveUser' method='post' name='user'
    Für Tipps bin ich euch dankbar

    Mfg aus der CH
    cris

  • #2
    seltsam. Ich habe alles verstanden, außer deine Problembeschreibung:
    CreateUser erstellt schickt die Werte via Post ab, ich komme nie in den save Status.
    Das Abfüllen der Werte in die DB funktioniert, wenn ich nach createUser von Hand saveUser anhänge..

    Kommentar


    • #3
      sorry, es ist ja noch früh morgens :-)

      ok, ich sende also das formular ab (submit button) und dann müsste meiner meinung nach index.php?act=saveUser aufgerufen werden was wiederum bewirkt, dass include ('core/saveUser.inc.php'); ausgeführt wird.
      dies passiert aber nie. statt index.php?act=saveUser aufzurufen, lande ich im default vom switch..

      ich kann mir nicht erklären wieso, da sonst alle anderen act=xx sauber abgefangen werden.

      ich glaube so müsste es verständlicher sein als mein vorheriges gekritzel..

      Kommentar


      • #4
        Schwer zu verstehen, was du willst. Wenn du «createUser» abschickst, kommst du selbstverständlich nicht in «saveUser». Und was « save Status» sein soll, wissen (eventuell) die Götter.
        Versuch mal kurz und klar zu formulieren, was du willst: Was hast du, was schickst du ab, was kommt an, und was sollte ankommen und verarbeitet werden?
        EDIT:

        Ok hab erst den ursprünglichen Post gesehen. Gib in der Funktion halt mal $action aus.

        Zuletzt geändert von H2O; 17.06.2008, 13:01.
        Gruss
        H2O

        Kommentar


        • #5
          wir wäre es mal mit debuggen:
          1. $action = ParamGetter::getParam("act");
          was bringt echo $action????
          und dann schaun wir mal weiter
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            ah sorry, save Status sollte eigentlich saveUser meinen..

            @ MelloPie:
            $action ist leer, darum gehts ab ins default. dies ist ja mein problem.
            es sollte meiner meinung nach saveUser enthalten..

            @ H2O:
            nach createUser wird ja
            PHP-Code:
            include ('core/createUser.inc.php'); 
            aufgerufen.
            dort drin ist die HTML-Form mit der form-definition
            PHP-Code:
            <form action='index.php?act=saveUser' method='post' name='user'
            logischerweise hat die form noch einige felder und den submit button.

            Wenn ich doch jetzt den Submit button klicke, wird doch die index.php mit dem Parameter ?act=saveUser aufgerufen. oder bin ich da komplett falsch?

            Kommentar


            • #7
              Original geschrieben von dirtsurfer
              Wenn ich doch jetzt den Submit button klicke, wird doch die index.php mit dem Parameter ?act=saveUser aufgerufen. oder bin ich da komplett falsch? [/B]
              Ja, als Get-Parameter. Da stellt sich jetzt einfach die Frage, was
              PHP-Code:
              ParamGetter::getParam("act"); 
              macht.
              Gruss
              H2O

              Kommentar


              • #8
                das ist die klasse vom paramgetter:

                PHP-Code:
                class ParamGetter{
                    
                    private function 
                __construct(){}
                    
                    public static function 
                getParam($paramName){
                        
                        
                $myParam $_GET[$paramName];
                        
                        return 
                $myParam;
                    }
                    
                    

                unterm strich holt der einfach die act parameter aus der url ab und gibt diese zurück.

                Kommentar


                • #9
                  mach mal in deiner switch ein print_r($_GET);
                  Beantworte nie Threads mit mehr als 15 followups...
                  Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                  Kommentar


                  • #10
                    Was passiert, wenn du im Browser direkt index.php?act=saveUser eingibst, oder auch mal einen andern Parameter. Auf was steht dann $action?
                    Gruss
                    H2O

                    Kommentar


                    • #11
                      @ MelloPie:
                      das print gibt auch nichts aus, bzw keinen act parameter

                      @ H2O:
                      dann erstellt es mir einen user, einfach die daten stimmen nicht, da die ja nie übermittelt wurden. der test mit fixwerten war aber erfolgreich.

                      Kommentar


                      • #12
                        hast du das ganze mal online? Ich glaube, dass da irgendwas übersehen wird...

                        Kommentar


                        • #13
                          nein leider nicht, da wir keinen websace zur verfügung haben..
                          kann aber sonst ein archiv machen und es auf meinen space laden?

                          ja ich habe wenspace, aber nur ohne php ;-)


                          gruss und danke

                          Kommentar


                          • #14
                            Der Vorgang ist schon etwas komisch. Auch wenn ich nichts von dieser Mischung von Get- und Post-Paramtern halte (ist auch völlig überflüssig), funktionieren sollte es trotzdem.
                            Ich denke, wir müssten doch etwas mehr von dieser Index.php sehen. Und mache dort (nicht in der Funktion) mal am Anfang ein print_r($_GET) und ein print_r($_POST) .
                            Gruss
                            H2O

                            Kommentar


                            • #15
                              das ist natürlich sehr müßig. für uns wäre es natürlich einfacher, wenn du es auf irgend nem Freehoster zur Verfügung stellst.

                              Kommentar

                              Lädt...
                              X