Wieso funktionieren meine Abfrragen nicht, wenn ich auf eine andere datei verweise?

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

  • Wieso funktionieren meine Abfrragen nicht, wenn ich auf eine andere datei verweise?

    hi leute ..
    ich hab ein problem mit meinen abfragen..wenn ich im formular als action "<?php echo $_SERVER["PHP_SELF"];?>" eingebe.. funktionieren die abfragen..
    aber ich muss die seite auf eine andere datei weiter leiten ..

    wenn ich aber weiterleite, werden die felder nicht mehr überprüft ..

    was mache ich falsch?

    hier der code:

    PHP-Code:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

    <html>
    <head>
     <meta name="generator" content="Scribe! 2 [[url]http://scribe.de[/url]]">
     <title>Unbenannt</title> 



    <?php
    $error
    =array();
    //Teil 1: Eingabeüberprüfungen, falls nicht erster Aufruf des Formulars
    if($_SERVER["REQUEST_METHOD"]=="POST")  //erster Aufruf:  ==GET
    {
        
        
    //email1 pruefen
        
    if(!preg_match("/[a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4}|museum)/i",$_POST["NeuerEmailEintrag"]))
            
    $error["NeuerEmailEintrag"]="Falsches email Format";  
            
         
    //email2 pruefen
        
    if(!preg_match("/[a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4}|museum)/i",$_POST["NeuerEmailEintrag2"]))
            
    $error["NeuerEmailEintrag2"]="Falsches email Format";   
        
        if(
    $_POST["NeuerEmailEintrag"]=="")
            
    $error["NeuerEmailEintrag"]="Email fehlt";         
            
         if(
    $_POST["NeuerEmailEintrag2"]=="")
            
    $error["NeuerEmailEintrag2"]="Email fehlt"
       
       if((
    $_POST["NeuerEmailEintrag"])!=($_POST["NeuerEmailEintrag2"]))
            
    $error["NeuerEmailEintrag2"]="Die E-Mails sind nicht identisch";   
            

        if(empty(
    $_POST['passwort1']))
            
    $error["passwort1"]="Passwort fehlt";  
            
        if(empty(
    $_POST['passwort2']))
            
    $error["passwort2"]="Passwort fehlt"
            
        if((
    $_POST["passwort1"])!=($_POST["passwort2"]))
            
    $error["passwort2"]="Die Passw&ouml;rter sind nicht identisch"
            


    }
    ?>

     
     </head>


    <body>

    <table cellspacing="0" cellpadding="0">

      
      
      <table class="body_tabelle" border="0" cellspacing="0" cellpadding="0"> 


      <td class="bodytext" >  
      
      
      
       <?php

      
      
    if(!isset($_COOKIE["25548OLD"])&&!isset($_COOKIE["25548NEW"]))
    {

    if((
    $_SERVER["REQUEST_METHOD"]=="GET" || count($error)>0)) 



    ?>     

    <form name="verzeichnis" method="POST" action="emailsend.php">
    <table>

     <tr>
      <td>Email 1</td>
      <td><input type ="text" name="NeuerEmailEintrag" value="<?php if (isset($_POST["NeuerEmailEintrag"])) echo $_POST["NeuerEmailEintrag"];?>"></td>
      <td><?php
            
    if(isset($error["NeuerEmailEintrag"])) echo $error["NeuerEmailEintrag"];
        
    ?></td>
     </tr>
     <tr>
      <td>Email nochmal</td>
      <td><input type ="text" name="NeuerEmailEintrag2" value="<?php if (isset($_POST["NeuerEmailEintrag2"])) echo $_POST["NeuerEmailEintrag2"];?>"></td>
      <td><?php
            
    if(isset($error["NeuerEmailEintrag2"])) echo $error["NeuerEmailEintrag2"];
        
    ?></td>
     </tr>
     <tr>
      <td>passwort1 </td>
      <td><input type ="password" name="passwort1" value="<?php if (isset($_POST["passwort1"])) echo $_POST["passwort1"];?>"></td>
      <td><?php
            
    if(isset($error["passwort1"])) echo $error["passwort1"];
        
    ?></td>
     </tr>
     <tr>
      <td>passwort nochmal </td>
      <td><input type ="password" name="passwort2" value="<?php if (isset($_POST["passwort2"])) echo $_POST["passwort2"];?>"></td>
      <td><?php
            
    if(isset($error["passwort2"])) echo $error["passwort2"];
        
    ?></td>
     </tr>
     <tr>
      <td><input type="submit" name="EmailsEintragen"/></td>
      <td><input type="reset" /></td>
      <td>15</td>
     </tr>

    </table>

    </form>    


    <?php

    }

    }
    ?>


    </body>
    </html>

  • #2
    Mach die Überprüfung vor die Ausgabe. Wenn alles ok ist, dann verarbeiten (email senden oder was auch immer), und Weiterleitung auf die andere Datei per header(). Ansonsten weiter durchlaufen lassen und Fehler ausgeben.
    ich glaube

    Kommentar


    • #3
      ich kann header() nicht benutzen da ich ausgaben im script habe ... wie kann ich das sonst lösen?

      Kommentar


      • #4
        Original geschrieben von ministry
        Mach die Überprüfung vor die Ausgabe. Wenn alles ok ist, dann verarbeiten (email senden oder was auch immer), und Weiterleitung auf die andere Datei per header().

        Kommentar


        • #5
          ich habe jetzt was neues probiert .. die daten werden aber nicht weiter gesendet .. weil der mit header() irgendwie nicht weiterleitet, bzw. die formülarangaben nicht an die datei emalsend.php übergibt.
          was machse ich falsch .. wenn es nur eine kleinigkeit ist, könnte das jemand für mich zu recht machen? oder genau erklären was ich zu machen hab..

          der code:

          PHP-Code:

           <?php    
            
           
          //////Sprache feststellen                                
              
          $spracheDateiPfad "./language.txt";
                     
          $fhandle fopen($spracheDateiPfad"r"); 
                         
          $sprache fgets($fhandle);
                     
          fclose($fhandle);  




          ///////Verzeichnis nummer lesen
                  
              
          $verzeichnisNrPfad "../verzeichnis.txt";
              
          $fhandle fopen($verzeichnisNrPfad"r");
                  
          $verzeichnisNr fgets($fhandle);
              
          fclose($fhandle);



               
          $errorV 0;

          $error=array();
          //Teil 1: Eingabeüberprüfungen, falls nicht erster Aufruf des Formulars
          if($_SERVER["REQUEST_METHOD"]=="POST")  //erster Aufruf:  ==GET
          {
              
              
          //email1 pruefen
              
          if(!preg_match("/[a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4}|museum)/i",$_POST["NeuerEmailEintrag"]))
              {
                  
          $error["NeuerEmailEintrag"]="Falsches email Format";
                  
          $errorV 1;
              }   
                  
               
          //email2 pruefen
              
          if(!preg_match("/[a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4}|museum)/i",$_POST["NeuerEmailEintrag2"]))
              {    
                  
          $error["NeuerEmailEintrag2"]="Falsches email Format"
                  
          $errorV 1;  
              }
               
              if(
          $_POST["NeuerEmailEintrag"]=="")
              {
                  
          $error["NeuerEmailEintrag"]="Email fehlt";  
                  
          $errorV 1;       
               }
                   
               if(
          $_POST["NeuerEmailEintrag2"]=="")
               {
                  
          $error["NeuerEmailEintrag2"]="Email fehlt";  
                  
          $errorV 1;
               }
             
             if((
          $_POST["NeuerEmailEintrag"])!=($_POST["NeuerEmailEintrag2"]))
             {
                  
          $error["NeuerEmailEintrag2"]="Die E-Mails sind nicht identisch";   
                  
          $errorV 1;
              }    

              if(empty(
          $_POST['passwort1'])) 
              {
                  
          $error["passwort1"]="Passwort fehlt"
                  
          $errorV 1;
              } 
                  
              if(empty(
          $_POST['passwort2'])) 
              {
                  
          $error["passwort2"]="Passwort fehlt"
                   
          $errorV 1;
              }
                  
              if((
          $_POST["passwort1"])!=($_POST["passwort2"])) 
              {
                  
          $error["passwort2"]="Die Passw&ouml;rter sind nicht identisch";   
                  
          $errorV 1;
               }   
                  if(
          $errorV 0)
                  {
                       
                       
          $pfad $verzeichnisNr."/".$sprache."/emailsend.php";      
                   
                      
          header("Location: [url]http://www.example.com/[/url]" $pfad);
                  
                  } 
            
          }
          ?>

          <html>
          <head>
           <title>Unbenannt</title> 
           
           </head>


          <body>

          <table cellspacing="0" cellpadding="0">

            
            
            
            <table class="body_tabelle" border="0" cellspacing="0" cellpadding="0"> 
            
            </td>

           </tr>


           <tr>
            <td class="bodytext" >  
            
            
            
             <?php


              
                 
          echo "<br /><br />";


            echo 
          "<br />"
            
            
          if(!isset(
          $_COOKIE["25548OLD"])&&!isset($_COOKIE["25548NEW"]))
          {
          /////////
          ////////wenn cookie nicht existiert, kann der benutzer seine email eingeben.
          if(($_SERVER["REQUEST_METHOD"]=="GET" || count($error)>0)) 


          //Teil 2: Formular ausgeben beim ersten Aufruf oder fehlerhafte Eingaben:


          ?>     

          <form name="verzeichnis" method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>">
          <table>

           <tr>
            <td>Email 1</td>
            <td><input type ="text" name="NeuerEmailEintrag" value="<?php if (isset($_POST["NeuerEmailEintrag"])) echo $_POST["NeuerEmailEintrag"];?>"></td>
            <td><?php
                  
          if(isset($error["NeuerEmailEintrag"])) echo $error["NeuerEmailEintrag"];
              
          ?></td>
           </tr>
           <tr>
            <td>Email nochmal</td>
            <td><input type ="text" name="NeuerEmailEintrag2" value="<?php if (isset($_POST["NeuerEmailEintrag2"])) echo $_POST["NeuerEmailEintrag2"];?>"></td>
            <td><?php
                  
          if(isset($error["NeuerEmailEintrag2"])) echo $error["NeuerEmailEintrag2"];
              
          ?></td>
           </tr>
           <tr>
            <td>passwort1 </td>
            <td><input type ="password" name="passwort1" value="<?php if (isset($_POST["passwort1"])) echo $_POST["passwort1"];?>"></td>
            <td><?php
                  
          if(isset($error["passwort1"])) echo $error["passwort1"];
              
          ?></td>
           </tr>
           <tr>
            <td>passwort nochmal </td>
            <td><input type ="password" name="passwort2" value="<?php if (isset($_POST["passwort2"])) echo $_POST["passwort2"];?>"></td>
            <td><?php
                  
          if(isset($error["passwort2"])) echo $error["passwort2"];
              
          ?></td>
           </tr>
           <tr>
            <td><input type="submit" name="EmailsEintragen"/></td>
            <td><input type="reset" /></td>
            <td>15</td>
           </tr>

          </table>

          </form>    


          <?php

          }

          }
                

           
           
           
          ?>
            
            </td>

           </tr>
          </table>
            
          </body>
          </html>
          Bitte helft mir .. danke im voraus!!!

          Kommentar


          • #6
            Die Daten werden immer nur von der Datei verarbeitet, an die sie gesendet werden. Mach einfach die Verarbeitung in dieser Datei.

            Andersrum kannst du auch das Formular an die andere Datei senden, aber dann hast du den selben Kladderadatsch, wenn was an der Eingabe nicht stimmt und du zurück auf das Formular umleiten willst.
            ich glaube

            Kommentar


            • #7
              ich kann die daten nicht in dieser datei verarbeiten lassen, da ich auf der anderen datei an die die daten gesendet werden auch eine weiterleitung mit header() habe... das ist dan also das gleiche problem ...

              wie kann ich das den jetzt lösen??

              Kommentar


              • #8
                Hallo,

                den letzten Post bitte nochmal auf Deutsch.

                Zum Script oben: Dein header() sieht komisch aus ....
                -> http://php.net/header (bsp für location) ... würde nich denken, dass deines funktioniert...

                mfg

                Kommentar


                • #9
                  Sein Location wird schon richtig sein, das Forum macht aus der URL aber einen Link, wenn man es nicht daran hindert.

                  Mir fehlt so ein bißchen exit; nach dem header(), aber auch error_reporting(). Sowas kommt davon, wenn man die Stickies nicht gelesen hat ...

                  Kommentar

                  Lädt...
                  X