Seite neu laden wenn If-Zweig fasst

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

  • Seite neu laden wenn If-Zweig fasst

    Hallo mal wieder,
    ich hab da mal ein frägelchen, im Forum bin ich nicht so recht fündig geworden, oder hab einfach nur die falschen suchbegriffe benutzt?

    also ich hab da son script und das soll wenn die aussage im if zweig stimmt die seite mit n paar variablen neu laden, wie mach ich das? Hat da wer ne ahnung?

    Hatte zwar eine glänzende idee, wie ich dachte, aber das hat dann nicht so ganz geklappt,
    wie ihr unten sehen könnt
    PHP-Code:
    if(!isset($UserName)):
            
    $fehlertext="Bitte geben Sie einen Benutzernamen ein.<br>\n";
            
    header ("Location: reg.php?fehlertext=$fehlertext&UserName=$Username&UserEMail=$UserEMail&UserEMail2=$UserEMail2");
            exit;
          endif; 

  • #2
    also wenn du das so machst wird niemand den text da lesen können weil ja sofort danach die weiterleitung kommt. außerdem:
    PHP-Code:
    header ("Location: reg.php?fehlertext=".$fehlertext."&UserName=".$Username."&UserEMail=".$UserEMail."&UserEMail2=".$UserEMail2); 

    Kommentar


    • #3
      register_globals?
      probier mal if(!isset($_POST ['UserName'])) oder if(!isset($_GET['UserName']))

      außerdem: wenn er die weiterleitung nur macht, wenn die variable nicht gesetzt is, warum übergibst du sie dann noch an reg.php?
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        Es geht darum das er zurück zum Formular gehen soll wenn es nicht korrekt ausgeführt ist. Es handelt sich dabei um ein registrierformular. und der soll halt die gesetzten Variablen mitnehmen damit der User nicht alles neu eintragen muß.

        Kommentar


        • #5
          ja und wo liegt das problem

          hast doch den code schon im ersten beitrag

          Kommentar


          • #6
            Original geschrieben von Imion
            Es geht darum das er zurück zum Formular gehen soll wenn es nicht korrekt ausgeführt ist. Es handelt sich dabei um ein registrierformular. und der soll halt die gesetzten Variablen mitnehmen damit der User nicht alles neu eintragen muß.
            und warum reisst du das nicht gleich alles mit ein und dem selben script runter?

            direkter aufruf, kein abgeschicktes formular? -> formular anzeigen
            abgeschicktes formular? -> angaben prüfen, wenn ok ab in die DB, andernfalls formular erneut ausgeben und dabei die eingegebenen werte übernehmen, plus fehlermeldung(en).
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              genau das will cih ja,
              nur leider hab ich absolut kein plan wie ich dem klar mache das der das formular mit den eingegebenen daten bei fehler auch neu lädt

              Kommentar


              • #8
                Original geschrieben von Imion
                genau das will cih ja,
                nur leider hab ich absolut kein plan wie ich dem klar mache das der das formular mit den eingegebenen daten bei fehler auch neu lädt
                die daten hast du, ausgeben kannst du mit echo, ... was fehlt dir noch?
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Manchmal ist es ganz Sinnvoll die AUgen auf zu machen,
                  hab grad erst gesehn das bei Realmaker ja n veränderter header drinne steht. Dann hab ich jetzt alles, danke schön und sorry das ich das verpeilt hab.

                  Kommentar


                  • #10
                    ...

                    cool, ich will genau das gleiche machen, damit ich nen bisschen mehr über if-anweisungen lerne, also stimmt dieser code? Und könnte ich den noch besser gestalten? Ich stell die frage gleich hier weil wenn der code richtig ist imion gleich seine Antwort hat. Nicht vergessen ich brauch auch eine ;-)

                    PHP-Code:
                    if(!isset($submit)
                      {

                       
                    // Formular.


                      
                    } else if(isset($submit) {
                      
                        if(!isset(
                    $username OR $mail OR $mail2 OR $pass OR $pass2)
                          {

                           
                    // Bitte drücken sie den zurück Button Ihres Browsers, und geben alle Daten an!

                          
                    } else if($pass <> $pass2) {

                           
                    // Die Passwörter stimmen nicht überin! 

                          
                    } else if($mail <> $mail2) {

                           
                    // Die Email adressen stimmen nicht überin!

                          
                    } else { 

                           
                    // Angaben wiederholen, damit der user überpfüfen kann ob sie stimmen,
                           // außerdem Button ($submit2) einfügen der zur Seite führt der die Daten
                           // in die Datenbank einträgt  

                          
                    }

                      } else if(isset(
                    $submit2) {

                           
                    // Daten des Users in die Datenbank eintragen.

                      

                    Kommentar


                    • #11
                      Also beim ersten überfliegen würde ich deinen Code als korrekt einstufen,
                      ich hab ihn aber jetzt nicht getestet.
                      Allerdings gibt es zwischen unseren beiden abfagen einen Unterschied,
                      und zwar möchte ich nicht das der User den Zurückbutton benutzen muß,
                      sondern das das Formular wieder angezeigt wird mit einem Text wo der Fehler in der EIngabe liegt.

                      PHP-Code:
                      <html>
                        <head>
                          <title>Regsitrieren</title>
                        </head>
                        <body bgcolor="#000066" text="#ff9900">
                        <?
                          $show="1";
                          if($site=="reg" && $show=="0")
                          {
                            echo"Eintrag";
                            # jetzt die datenbankeintragung und das Formular wird nicht mehr angezeigt
                          }
                          if($show=="1")
                          {
                        ?>
                            <form name='regis' acrion="reg.php" methode="post">
                            <input type="hidden" name="site" value="reg">
                            <input type="hidden" name="show" value="0">
                            <table width='300' border='2' cellspacing='0' cellpadding='2' bordercolor='#ff9900' bgcolor='#000066' align='center'>
                              <tr>
                                <th colspan='2'>Registrieren</th>
                              </tr>
                              <tr>
                                <td width='100' valign='top'>Username:</td>
                        <? echo"<td width='100' valign='top'><input type='text' name='UserName' value='$UserName'></td>\n";
                                   if($UserName == "" && $site == "reg"){
                                     unset($site);
                                     $show="1";
                                              echo"Bitte Usernamen eingeben";
                                   }
                         ?>
                              </tr>
                              <tr>
                                <td width='100' valign='top'>EMail:</td>
                        <? echo"<td width='100' valign='top'><input type='text' name='UserEMail' value='$UserEMail'></td>\n";
                                   if($UserEMail == "" && $site == "reg"){
                                     unset($site);
                                     $show="1";
                                              echo"Bitte Email eingeben";
                                   }
                         ?>
                              </tr>
                              <tr>
                                <td width='100' valign='top'>EMail wdh.:</td>
                        <? echo"<td width='100' valign='top'><input type='text' name='UserEMail2' value='$UserEMail2'></td>\n";
                                   if($UserEMail2 == "" && $site == "reg"){
                                     unset($site);
                                     $show="1";
                                              echo"Bitte Email wiederholung eingeben";
                                   }
                        ?>
                              </tr>
                              <tr>
                                <td width='100' valign='top'>Passwort:</td>
                        <? echo"<td width='100' valign='top'><input type='password' name='UserPassword' value='$UserPassword'></td>\n";
                                   if($UserPassword == "" && $site == "reg"){
                                     unset($site);
                                     $show="1";
                                              echo"Bitte Passwort eingeben";
                                   }
                        ?>
                              </tr>
                              <tr>
                                <td width='100' valign='top'>Passwort wdh.:</td>
                        <? echo"<td width='100' valign='top'><input type='password' name='UserPassword2'></td>\n";
                                   if($UserPassword2 == "" && $site == "reg"){
                                     unset($site);
                                     $show="1";
                                              echo"Bitte Passwort wiederholung eingeben";
                                   }
                                   if($UserPassword != $UserPassword2 && $site == "reg"){
                                     unset($site);
                                     $show="1";
                                              echo"Bitte Passwort und Wiederholung überprüfen";
                                   }
                                   if($UserEMail != $UserEMail2 && $site == "reg"){
                                     unset($site);
                                     $show="1";
                                              echo"Bitte Emailadresse überprüfen.";
                                   }


                        ?>
                              </tr>
                              <tr>
                                <td width='100' valign='top' colspan='2'><input type='submit' value='Registrieren'></td>
                              </tr>
                            </table>
                            </form>
                        <? } ?>
                        </body>
                      </html>

                      Kommentar


                      • #12
                        Also zuerstmal sind mir doch ein paar Sachen aufgefallen die u.U. doch falsch sind an deinem Script, oder zumindest anders sicherer sind:

                        PHP-Code:
                        if(!isset($submit)
                          {
                           
                        // Formular.
                          
                        }
                          elseif(
                        $submit=="inhalt1"# Als erstes, schreibe elseif immer zusammen, ich habs nicht getestet, kann mir aber vorstellen das du hier nen süßen kleinen Fehlercode bekommst
                               
                        {                     # desweiteren prüfe lieber den Inhalt der Variablen, nicht ob sie gesetzt ist, das könnte Probleme machen
                            
                        if(!isset($username) OR !isset($mail) OR !isset($mail2) OR !isset($pass) OR !isset($pass2)) #das sollte so aussehen, deine variante erzeugte bei mir einen fehler
                            
                        {                                                                                           #und die schließende Klammer vom if fehlte dir
                              // Bitte drücken sie den zurück Button Ihres Browsers, und geben alle Daten an!
                            
                        }
                            elseif(
                        $pass != $pass2# hier nimm lieber das != als das <>, denn != überprüft ob der inhalt identisch ist während
                            
                        {                       # <> so wie ich das sehe nur nachschaut ob der Ihhalt kleiner oder größer ist
                              // Die Passwörter stimmen nicht überin! 
                            
                        }
                            elseif(
                        $mail != $mail2)
                            {
                               
                        // Die Email adressen stimmen nicht überin!
                            
                        }
                            else
                            { 
                               
                        // Angaben wiederholen, damit der user überpfüfen kann ob sie stimmen,
                               // außerdem Button ($submit2) einfügen der zur Seite führt der die Daten
                               // in die Datenbank einträgt  
                            
                        }
                          }
                          elseif(
                        $submit2=="inhalt2"# hier das gleiche wie oben, du kannst $submit und $submit2 ja mit nem hidden feld setzen und wirst du ja wahrscheinlcih eh machen
                          
                        {
                            
                        // Daten des Users in die Datenbank eintragen.
                          

                        Das sind so die Sachen die mir aufgefallen sind.
                        Hier nun mein Script, es funktioniert nun, aber für einen Vorschlag wie ich das Formular nur einmal rein machen muß und dennoch den gleichen effekt erzeile wäre cih dankbar, habe es zuerst mit einer funktion versucht was zwar auch klappte, aber dann wurden bei einem Fehler nicht die vorhandenen Daten eingefügt.

                        PHP-Code:
                        <html>
                          <head>
                            <title>Regsitrieren</title>
                          </head>
                          <body bgcolor="#000066" text="#ff9900">
                            <?
                              if(!isset($site)):
                                ?>
                                  <form name='regis' action="reg.php" methode="post">
                                  <input type="hidden" name="site" value="reg">
                                  <table width='300' border='2' cellspacing='0' cellpadding='2' bordercolor='#ff9900' bgcolor='#000066' align='center'>
                                    <tr>
                                      <th colspan='2'>Registrieren</th>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>Username:</td>
                              <? echo"<td width='100' valign='top'><input type='text' name='UserName' value='$UserName'></td>\n"; ?>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>EMail:</td>
                              <? echo"<td width='100' valign='top'><input type='text' name='UserEMail' value='$UserEMail'></td>\n"; ?>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>EMail wdh.:</td>
                              <? echo"<td width='100' valign='top'><input type='text' name='UserEMail2' value='$UserEMail2'></td>\n"; ?>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>Passwort:</td>
                                      <td width='100' valign='top'><input type='password' name='UserPassword'></td>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>Passwort wdh.:</td>
                                      <td width='100' valign='top'><input type='password' name='UserPassword2'></td>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top' colspan='2'><input type='submit' value='Registrieren'></td>
                                    </tr>
                                  </table>
                                  </form>
                                  <?
                              else:
                                if($UserName=="" OR $UserEMail=="" OR $UserEMail2=="" OR $UserPassword=="" OR $UserPassword2==""):
                                  echo"<div align='center'>Bitte füllen Sie alle Felder aus</div><br>\n";
                                  ?>
                                  <form name='regis' action="reg.php" methode="post">
                                  <input type="hidden" name="site" value="reg">
                                  <table width='300' border='2' cellspacing='0' cellpadding='2' bordercolor='#ff9900' bgcolor='#000066' align='center'>
                                    <tr>
                                      <th colspan='2'>Registrieren</th>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>Username:</td>
                              <? echo"<td width='100' valign='top'><input type='text' name='UserName' value='$UserName'></td>\n"; ?>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>EMail:</td>
                              <? echo"<td width='100' valign='top'><input type='text' name='UserEMail' value='$UserEMail'></td>\n"; ?>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>EMail wdh.:</td>
                              <? echo"<td width='100' valign='top'><input type='text' name='UserEMail2' value='$UserEMail2'></td>\n"; ?>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>Passwort:</td>
                                      <td width='100' valign='top'><input type='password' name='UserPassword'></td>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>Passwort wdh.:</td>
                                      <td width='100' valign='top'><input type='password' name='UserPassword2'></td>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top' colspan='2'><input type='submit' value='Registrieren'></td>
                                    </tr>
                                  </table>
                                  </form>
                                  <?
                                  exit;
                                elseif($UserPassword != $UserPassword2):
                                  echo"<div align='center'>Passwort und Wiederholung stimmen nicht überein</div><br>\n";
                                  ?>
                                  <form name='regis' action="reg.php" methode="post">
                                  <input type="hidden" name="site" value="reg">
                                  <table width='300' border='2' cellspacing='0' cellpadding='2' bordercolor='#ff9900' bgcolor='#000066' align='center'>
                                    <tr>
                                      <th colspan='2'>Registrieren</th>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>Username:</td>
                              <? echo"<td width='100' valign='top'><input type='text' name='UserName' value='$UserName'></td>\n"; ?>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>EMail:</td>
                              <? echo"<td width='100' valign='top'><input type='text' name='UserEMail' value='$UserEMail'></td>\n"; ?>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>EMail wdh.:</td>
                              <? echo"<td width='100' valign='top'><input type='text' name='UserEMail2' value='$UserEMail2'></td>\n"; ?>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>Passwort:</td>
                                      <td width='100' valign='top'><input type='password' name='UserPassword'></td>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>Passwort wdh.:</td>
                                      <td width='100' valign='top'><input type='password' name='UserPassword2'></td>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top' colspan='2'><input type='submit' value='Registrieren'></td>
                                    </tr>
                                  </table>
                                  </form>
                                  <?
                                  exit;
                                elseif($UserEMail != $UserEMail2):
                                  echo"<div align='center'>Emailadresse und Wiederholung stimmen nicht überein</div><br>\n";
                                  ?>
                                  <form name='regis' action="reg.php" methode="post">
                                  <input type="hidden" name="site" value="reg">
                                  <table width='300' border='2' cellspacing='0' cellpadding='2' bordercolor='#ff9900' bgcolor='#000066' align='center'>
                                    <tr>
                                      <th colspan='2'>Registrieren</th>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>Username:</td>
                              <? echo"<td width='100' valign='top'><input type='text' name='UserName' value='$UserName'></td>\n"; ?>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>EMail:</td>
                              <? echo"<td width='100' valign='top'><input type='text' name='UserEMail' value='$UserEMail'></td>\n"; ?>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>EMail wdh.:</td>
                              <? echo"<td width='100' valign='top'><input type='text' name='UserEMail2' value='$UserEMail2'></td>\n"; ?>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>Passwort:</td>
                                      <td width='100' valign='top'><input type='password' name='UserPassword'></td>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top'>Passwort wdh.:</td>
                                      <td width='100' valign='top'><input type='password' name='UserPassword2'></td>
                                    </tr>
                                    <tr>
                                      <td width='100' valign='top' colspan='2'><input type='submit' value='Registrieren'></td>
                                    </tr>
                                  </table>
                                  </form>
                                  <?
                                  exit;
                                else:
                                  echo"Registrierung erfolgreich<br>\n";
                                endif;
                              endif;
                        ?>
                          </body>
                        </html>

                        Kommentar


                        • #13
                          ...

                          jo mir ist erst hinterher aufgefallen das ich immer nur einmal ) gestzt habe, obwohl es ja if(isset(... hieß.

                          Kommentar


                          • #14
                            Hoffe das ich dir helfen konnte, mich hast du da auf ne idee gebracht wie man oben sieht und es funktioniert =)

                            Kommentar

                            Lädt...
                            X