$_POST Probleme

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

  • $_POST Probleme

    Hallo Leute!
    Ich habe ein Problem mit $_POST.
    Ich habe das alles vor 2-3 Jahren in der Schule gehabt, nun aber leider die Hälfte vergessen. Ich bin jetzt schon ca. 4 Stunden auf der Suche nach eine Lösung oder einem Tutorial im Netz aber finde einfach nichts geeignetes.
    Also folgendes Problem:
    Ich möchte (einfach nur zum testen) mit einem hidden-button eine Variable speichern. Damit sich POST auch lohnt habe ich die Variable als rand(1,100) gewählt.
    Code:
    <?php
    $rand=rand(1,100);
    if(!isset($_POST['rand'])){
          echo "<method form="POST">";
          echo "<input type='hidden' name='rand' value='".$rand."'>";
          echo "<input type='submit' name='aktualisieren'>";
          echo "</form>";
    }
    echo $rand.$_POST['rand'];
    ?>
    So bis auf ein "Notice" hat das auch ganz gut geklappt. Dann habe ich versucht ein Array zu übertragen:
    Code:
    <?php
    
    $rand=rand(1,100);
    $array=array(rand(1,10),rand(1,10),rand(1,10));
    $key;
    $i=0;
    $post=array();
    if(!isset($_POST['array'])){
    	echo "<form method='POST'>";
    	echo "<input type='hidden' name='array' value='".$array."'>";
    	echo "<input type='submit' name='aktualisieren'>";
            echo "</form>";
    }
    
    foreach($_POST['array'] as $key){
    		$post[$i]=$key;
    }
    echo $rand." ".$post[0].$post[1].$post[2];
    ?>
    Ich denke da wird generell einiges schief gelaufen sein. Freue mich über jede Hilfe und wenn möglich mit begrenzt vielen neuen Befehlen. Danke
    Zuletzt geändert von Simbo_der_Baer; 26.01.2014, 17:19.

  • #2
    Hallöchen,
    was sagt denn das Error-Reporting?

    Denn da werden dir doch die Fehler angezeigt.

    Was ist Error-Repoting? -> Grundlagen lernen !!

    Tutorials - PHP / MySQL - Fehlersuche - Error Reporting

    Kommentar


    • #3
      Zitat von Simbo_der_Baer Beitrag anzeigen
      Dann habe ich versucht ein Array zu übertragen
      Na dann schau dir mal im Quelltext an, was jetzt tatsächlich in deinem Inputfeld drin steht …
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Mach es so. Und was du nicht verstehst, kannst dir ja im aneignen.

        PHP-Code:
        <?php

        $rand
        =rand(1,100);
        $array=array(rand(1,10),rand(1,10),rand(1,10));

        echo
        "<form name=\"arrayuebergabe\" method=\"post\" ";
        foreach(
        $array as $key =>$array_wert)
        {
        echo
        "<input type=\"hidden\" name=\"deinarray[]\" value=\"$array_wert\">";
        }
        echo
        "<input type=\"submit\" value=\"&uuml;bergeben\">";
        echo
        "</form>";

        // Kontrollausgabe von POST
        #print '<pre>';
        #print_r($_POST['deinarray']);
        #print '</pre>';

        $i=1// Zählerstart setzen
        if(isset($_POST['deinarray']))
        {
            foreach(
        $_POST['deinarray'] as $key)
            {
                    
        $post[$i]=$key;
            
        $i++;
            }
          
        // Kontrollausgabe von FOREACH
            
        print '<pre>';
            
        print_r($post);
            print 
        '</pre>';
        }

        ?>

        Kommentar


        • #5
          danke erstmal für den Code.
          2 Sachen die ich gerne dazu anmerkenbzw. fragen möchte:
          1.
          foreach($array as $key =>$array_wert)
          Wozu brauche ich denn das $key wenn ich es eh nicht benutze?
          2. Das $post enthält jetzt nur den 2ten und 3ten Wert des $array. Warum?

          Kommentar


          • #6
            Zitat von Simbo_der_Baer Beitrag anzeigen
            1. Wozu brauche ich denn das $key wenn ich es eh nicht benutze?
            2. Das $post enthält jetzt nur den 2ten und 3ten Wert des $array. Warum?
            Lese ein Manual zu: Foreach

            z.B. foreach-Schleife

            Und beschäftige dich mit dem Aufbau eines Array,s.

            Kommentar


            • #7
              Dann habe ich noch eine letzte Frage zu dem Quelltext.
              Wo kann ich mehr über diese Schreibweise herausfinden?
              echo"<input type=\"hidden\" name=\"deinarray[]\" value=\"$array_wert\">";
              Ich weiß jetzt z.B. nicht ob deinarray[] eine Variable ist. Es hat kein $ aber ein []. Es wird doch wie ein string behandelt oder nicht? Bin etwas Verwirrt

              Kommentar


              • #8
                Klick hier:
                IGFD - php array per formular übergeben

                Kommentar


                • #9
                  Noch ein Beitrag dazu:
                  Ich wollte das ganze jetzt auf ein zwei-dimensionales array anwenden.
                  Hier habe ich jetzt aber das Problem, dass ich die hidden-buttons nicht vernünftig gefüllt kriege.
                  Ich habe ein Feld
                  Code:
                  $feld=array(array(),array());
                  dabei hat bsw.
                  Code:
                   $feld[1][1]=2;
                  Hat einer eine Idee wie ich das feld nun über Post speichern kann?

                  Kommentar


                  • #10
                    Ich wollte nur nochmal sagen, dass ich nicht solch eine form haben möchte:
                    Code:
                    echo"<input type=\"hidden\" name=\"deinarray[0][0]\" value=\"$array_wert\">";
                    und das nächste:
                    Code:
                    echo"<input type=\"hidden\" name=\"deinarray[0][1]\" value=\"$array_wert\">";
                    ,da ich eine flexible Arraygröße habe.

                    Kommentar


                    • #11
                      Was willst du denn sonst für eine Form?

                      Tipp:
                      Das ist kein Wunschkonzert!
                      Du wirst dich schon an die Eigenheiten der beteiligten Komponenten anpassen müssen.
                      Insbesondere, wie das HTTP funktioniert.
                      Das HTML, und was PHP im Verborgenen mit den REQUEST Daten anstellt.
                      Wir werden alle sterben

                      Kommentar


                      • #12
                        Hey.
                        Ich habe es jetzt selber hingekriegt. Für die die es interessiert ich habe ein array in 2d. größe atm. ist 12x12. Wobei der äußere Rand leer ist (also 0,0 oder 11,11)$x und $y sind also 10 und ich möchte nur die Mitte des Arrays saven.
                        Mein Quellcode für die Sicherung:
                        Code:
                        if(empty($_POST['feld'])){
                        	$feld=feld_erstellen($x,$y);
                        	$feld=minen_erstellen($feld,$x,$y,$minen);
                        	echo "<form method='POST'>";
                        	for($i=0;$i<=$x+1;$i++){
                        		//$j=0;						Ausgabetests
                        		foreach($feld[$i] as $value){
                        			echo "<input type='hidden' name='feld[]' value='".$value."'>";
                        			//$j++;
                        		}
                        		//echo $j."j<br>";
                        	}
                        	
                        	
                        	echo "<input type='submit'>";
                        	echo '</form>';
                        	//echo "works";
                        }
                        else{
                        	$feld=array(array(),array());
                        	$i=0;
                        	foreach($_POST['feld'] as $key){
                        		$new_x=$i%$x;
                        		$new_y=floor($i/$x);
                        		$feld[$new_x][$new_y]=$key;
                                        $i++;
                        	}
                        }
                        Danke an jede Hilfe hier nochmals
                        Zuletzt geändert von Simbo_der_Baer; 27.01.2014, 15:26.

                        Kommentar

                        Lädt...
                        X