Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Variable Fehlerausgabe

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Variable Fehlerausgabe

    Hallo,
    ich frage mich, ob mann aus einem Formular auslesen kann ob was gepostet wurde oder nicht und dies variabel ausgibt.
    Ich denke da an irgendne Option im Formular die nen wert übergibt- k.A.
    Ich will halt vermeiden jedesmal am code zu basteln.
    Kann jemand ein wenig Hilfestellung geben?
    thx

    Bisher checke ich nur bestimmte Felder
    Code:
    / Validierung des Formulars
      $info_b = trim($_POST['Firma']);
      $info_c = trim($_POST['Telefon']);
      $info_d = trim($_POST['Email']);
      if (empty($info_a) Or empty($info_b) Or empty($info_c) Or empty($info_d))
       {
    Header ("Location: ./error.htm");
    die;
       }
    // Ansonsten
    else{usw.


  • #2
    ein kleines beispiel, wie es funktionieren könnte

    Code:
    <?php
    
    	if ( isset($_POST['sent']) )
    	{
    	    $error = 0;
    	    
    	    $_keys = array_keys($_POST);
    	
    		for ( $i=0; $i<count($_POST); $i++ )
    		{
    		    if ( strcmp(trim($_POST[$_keys[$i]]),"") == 0 )
    		        $error++;
    		}
    		
    		echo $error;
    	}
    	else
    	{
    ?>
    
    	<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
    	    <input type="text" name="text1">
    	    <input type="text" name="text2">
    	    <input type="text" name="text3">
    	    <input type="text" name="text4">
    
    	    <input type="submit" name="submit">
    
    	    <input type="hidden" name="sent" value="1">
    	</form>
    
    <?php
    	}
    ?>
    grüße ben
    privater Blog

    Kommentar


    • #3
      hmm, das funktioniert aber nur wenn alles in einer datei ist.
      Was wäre denn, wenn das form in ner .html datei ist und das ganze an mein php script gesendet wird?

      Kommentar


      • #4
        Zitat von peri
        hmm, das funktioniert aber nur wenn alles in einer datei ist.
        Was wäre denn, wenn das form in ner .html datei ist und das ganze an mein php script gesendet wird?
        och bitte. das umzubasteln ist doch echt kein thema.
        privater Blog

        Kommentar


        • #5
          ich meine nur in deinem beispiel schickst dus ja an dieselbe php-datei.
          das zu ändern kriege ich hin, fast sicher.

          Nur ist mir aufgefallen, das so alle Felder validiert würden.
          Kann mann dass so einstellen, das in einem input feld ein wert übergeben wird, damit dein script weiss was es abfragen muss?
          Verstehst was ich mein?

          Kommentar


          • #6
            was machtda s denn

            was macht das denn?
            $_keys = array_keys($_POST);

            Kommentar


            • #7
              das ist das formular:
              Code:
              	<form action="script.php" method="post">
              	    <input type="text" name="text1">
              	    <input type="text" name="text2">
              	    <input type="text" name="text3">
              	    <input type="text" name="text4">
              
              	    <input type="submit" name="submit">
              
              	    <input type="hidden" name="sent" value="1">
              	</form>
              das ist die datei script.php
              Code:
              <?php
              
              	if ( isset($_POST['sent']) )
              	{
              	    $error = 0;
              	    
              	    $_keys = array_keys($_POST);
              	
              		for ( $i=0; $i<count($_POST); $i++ )
              		{
              		    if ( strcmp(trim($_POST[$_keys[$i]]),"") == 0 )
              		        $error++;
              		}
              		
              		echo $error;
              	}
              	else
              	{
              	    header ('Location: [...]');
              	}
              ?>
              klar werden alle fehler validiert.
              wenn du spezielle felder validieren willst ... hmm .. keine ahnung. fällt mir jetzt grad nichts ein.

              allerdings kannst du das sicherlich irgendwie mit einer funktion lösen, die dann eben das gesamte script ausführt, allerdings bzgl. eines übergabeparameters.
              das könnte z.b. ein array sein ..

              alles nur so spontane idee.
              privater Blog

              Kommentar


              • #8
                Re: was machtda s denn

                Zitat von rio
                was macht das denn?
                $_keys = array_keys($_POST);
                das ist eine unnötige frage.
                und weißt du warum?

                teste es doch einfach und du findest es heraus.
                oder du liest im manual nach.
                http://php.net/array-keys

                ist mir absolut unverständlich, wie man so eine frage überhaupt stellen kann.
                privater Blog

                Kommentar


                • #9
                  naja...

                  das kommt daher das ich weder $_keys noch das andere bissher gesehn hab =)

                  Kommentar


                  • #10
                    Re: naja...

                    Zitat von rio
                    das kommt daher das ich weder $_keys noch das andere bissher gesehn hab =)
                    Code:
                    $_keys
                    ist einfach der name eines arrays. das habe ich so genannt. kannst du auch $heiko oder $butterbrot nennen.

                    das andere?
                    $_POST?

                    http://tut.php-q.net/formulare.html

                    es gibt im internet für fast alles eine antwort.
                    privater Blog

                    Kommentar


                    • #11
                      @ Ben
                      Was meinste, könnte das gehen?
                      ich habs noch net getestet, hab kein ftp auf der Arbeit.

                      Code:
                      $arr_data      =   (is_array($_POST)) ? $_POST : $HTTP_POST_VARS;
                      
                         foreach ($arr_data as $key => $value) {
                      
                            if (substr($key,-2) == "_x" || substr($key,-2) == "_y") {
                               continue;
                            }
                         
                            $str_mail      .=   "$key:\n".stripslashes($value)."\n\n";
                      
                         }else{
                      if(empty($_POST['$value'])) {
                              echo "Bitte geben sie einen ".$value." ein";
                          }}

                      Kommentar

                      Lädt...
                      X