+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 15 von 23

Thema: formular mit php prüfen und fehler im formular anzeigen lassen

  1. #1
    TP-Senior tobias82 macht alles soweit korrekt
    Registriert seit
    Oct 2005
    Beiträge
    104

    formular mit php prüfen und fehler im formular anzeigen lassen

    hi leude,

    ich habe ein html formular welches ich mit php auf seine richtigkeit hin überprüfen kann. sollte etwas falsch sein, wird eine neue seite mit header(...) geöffnet und der fehler angezeigt. soweit so gut. ist nur etwas benutzerunfreundlich. wie kann ich denn eine überprüfung erstellen, welche direkt im formular den fehler anzeigt (ein kleiner text soll erscheinen. wenn möglich mit css formatiert, aber das krieg ich glaub ich auch allein hin)? also wie lautet der befehl und muss die überprüfung im html formular stattfinden oder kann es eine ausgelagerte php datei sein, die durch action aufgerufen wird (so wie es bislang der fall ist)?

    danke für die tipps!

  2. #2
    TP-Moderator hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User Avatar von hero-master
    Registriert seit
    Mar 2003
    Ort
    Hamburg
    Beiträge
    5.927
    Hi tobias
    dazu musst du das PHP-Script in die Datei mit dem Formular einfügen.
    Damit das Script erst bei Klick auf den Sendebutton erfolgt, musst du noch ne if-Anweisung geben:
    PHP-Code:
    if(isset($_POST['namedesbuttons']))
    {
    dein script

    Als action bei dem Formular noch einie Kleinigkeit ändern:
    HTML-Code:
    action="<?php echo $_SERVER["PHP_SELF"]; ?>"
    und schon hast du das Ganze auf einer Seite

  3. #3
    TP-Senior tobias82 macht alles soweit korrekt
    Registriert seit
    Oct 2005
    Beiträge
    104
    und wie gehn diese "dynamischen" fehlermeldungen mit php? also, dass er an der gewünschten stelle text erscheinen lässt?

  4. #4
    TP-Moderator hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User Avatar von hero-master
    Registriert seit
    Mar 2003
    Ort
    Hamburg
    Beiträge
    5.927
    auch mit ner IF-Anweisung:
    PHP-Code:
    if(empty($_POST['Name'])) {echo "Bitte füllen Sie das Feld aus";} 
    Vlt. hilft das ein wenig

  5. #5
    TP-Senior tobias82 macht alles soweit korrekt
    Registriert seit
    Oct 2005
    Beiträge
    104
    danke für die antwort. sieht auch logisch aus. nur funktionierts noch nicht. bekomme nämlich jetzt in der seite den php-code angezeigt...habe die klammern nach bestem gewissen überprüft aber nichts gefunden. woran könnte es liegen? hier der quellcode:

    HTML-Code:
    <html>
    <head>
    <title>Hattipp</title>
    <meta name="description" content="Hattipp">
    <meta name="author" content="Tobias">
    <meta name="keywords" content="Hattipp">
    <link rel="stylesheet" type="text/css" href="site.css">
    <link rel="stylesheet" type="text/css" href="links.css">
    <link rel="stylesheet" type="text/css" href="text.css">
    
    <!--[if IE]>
    <link rel="stylesheet" type="text/css" href="siteie.css">
    <link rel="stylesheet" type="text/css" href="linksie.css">
    <link rel="stylesheet" type="text/css" href="textie.css">
    <![endif]-->
    
    </head>
    <body>
    
    <?php
    	if (isset($_POST["submit"]))
             	{
                     error_reporting(E_ALL);
    
    	        include ('config.php');
    
    	        $usernameuser =  $_POST['username'];
    	        $passwort =  $_POST['passwort'];
    	        $name = $_POST['name'];
    	        $vorname = $_POST['vorname'];
    	        $email = $_POST['email'];
    	        $managerid = $_POST['htid'];
    	        $account = "freeaccount";
    
    	        $db_link = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
    	        mysql_select_db ("user");
    
    	        $username = strtolower($usernameuser);
    
    	        $sql = "SELECT Username FROM TabUser WHERE Username = '$username';";
    
    	        $userquery = mysql_query($sql) OR die(mysql_error());
    
    	        $row = mysql_fetch_assoc($userquery);
    
    	        if ($row['Username'] == $username OR $username == "")
    	           {
    	           echo "<p>Bitte überprüfe den Benutzernamen. Evtl. ist er schon vergeben<p>";
    	           }
    	        else
    	           {
    	           $username = $usernameuser;
    
    	           if ($email != "" && ereg("^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+)$", $email))
    	              {
    	              if ($managerid != "")
    	                 {
    	                 $query = "INSERT INTO TabUser (UserID,Username,Passwort,Name,Vorname,Email,ManagerID,Account) VALUES (NULL,'$username','$passwort','$name','$vorname','$email','$managerid','$account')";
    
    	                 $hinzufuegen=mysql_query($query) or die ("Fehler in Abfrage: $query. " . mysql_error());
    
    	                 header("Location:freedanke.html");
    	                 }
    	              else
    	              	 {
    	                 echo "<p>Bitte überprüfe deine Manager ID</p>";
    	                 }
    	              }
    	           else
    	              {
    	              echo "<p>Bitte überprüfe deine Emailadresse</p>";
    	              }
    	           }
                     }
    ?>
    
    	<div id="site">
    
    	<div id="header">
             	<span class="headerlogo">Hattipp</span>
    	</div>
    
             <div id="current">
             	Anmeldung - Freeaccount
             </div>
    
    	<div id="mainmenu">
             	<div id="headertext">Menü</div>
                     <div id="menulink">
                     	<a href="index.html">Home</a><br>
                     	<a href="anmeldung.html">Anmelden</a><br>
                             <div id="submenulink">
                             	<a href="payaccount.html">Payaccount</a><br>
                                     <a href="freeaccount.html">Freeaccount</a><br>
                          	</div>
                     	<a href="hilfe.html">Hilfe</a><br>
                             <a href="http://www.hattrick.org" target="_blank" title="hattrick">Hattrick</a>
                     </div>
    
    	</div>
    
    	<div id="loginmenu">
             	<div id="headertext">Login</div>
                     <div id="loginform">
    	                <form action="login.php" method="post">
    	                        Managername
    	                        <input type="text" name="username" size="10">
    	                        Passwort
    	                	<input type="password" name="passwort" size="10">
                                  	<input type="submit" name="senden" value="Enter" style="margin-top: 2px;">
                             </form>
                             <span id="menulink"><a href="#">Passwort vergessen?</a></span>
                     </div>
    
    	</div>
    
    	<div id="main">
             	<h1>Freeaccount</h1>
    
                     <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
                     	<table style="font-size: 8pt;">
                                     <tr>
                                     	<td>Benutzername</td>
                                     	<td><input type="text" length="10" maxlength="30" name="username"></td>
                                     </tr>
                                     <tr>
                                     	<td>Passwort</td>
                                     	<td><input type="password" length="10" maxlength="30" name="passwort"></td>
                                     </tr>
                                     <tr>
                                     	<td>Name</td>
                                     	<td><input type="text" length="10" maxlength="30" name="name"></td>
                                     </tr>
                                     <tr>
                                     	<td>Vorname</td>
                                     	<td><input type="text" length="10" maxlength="30" name="vorname"></td>
                                     </tr>
                                     <tr>
                                     	<td>Email</td>
                                     	<td><input type="text" length="10" maxlength="30" name="email"></td>
                                     </tr>
                                     <tr>
                                     	<td>Manager ID</td>
                                     	<td><input type="text" length="10" maxlength="30" name="htid"></td>
                                     </tr>
                                     <tr height="60">
    	                                 <td><input type="submit" value="Anmelden" id="submit" name="submit"></td>
                                              <td><input type="reset" value="Löschen"></td>
                                     </tr>
                             </table>
                     </form>
                     </p>
                     </p>
    	</div>
    
    </div>
    
    
    </body>
    </html>
    und hier der schnipsel der angezeigt wird:

    HTML-Code:
    Bitte überprüfe den Benutzernamen. Evtl. ist er schon vergeben
    
    '; } else { $username = $usernameuser; if ($email != "" && ereg("^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+)$", $email)) { if ($managerid != "") { $query = "INSERT INTO TabUser (UserID,Username,Passwort,Name,Vorname,Email,ManagerID,Account) VALUES (NULL,'$username','$passwort','$name','$vorname','$email','$managerid','$account')"; $hinzufuegen=mysql_query($query) or die ("Fehler in Abfrage: $query. " . mysql_error()); header("Location:freedanke.html"); } else { echo '
    
    Bitte überprüfe deine Manager ID
    '; } } else { echo '
    
    Bitte überprüfe deine Emailadresse
    '; } } } ?>

    und das auch noch, aber an einer andren stelle (im div-tag, wos auch gecodet platziert ist):

    HTML-Code:
    " method="post">

  6. #6
    TP-Moderator hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User Avatar von hero-master
    Registriert seit
    Mar 2003
    Ort
    Hamburg
    Beiträge
    5.927
    Zitat Zitat von tobias82
    danke für die antwort. sieht auch logisch aus. nur funktionierts noch nicht. bekomme nämlich jetzt in der seite den php-code angezeigt
    if (isset($_POST["submit"])) {....

    Der Button heißt aber "senden"
    Hast du die Datei als .php-Datei gespeichert?

  7. #7
    TP-Senior tobias82 macht alles soweit korrekt
    Registriert seit
    Oct 2005
    Beiträge
    104
    jetzt hab ichs als php gespeichert und auf "senden" geändert, wenngleich ich das nicht verstehe, da es ja heisst:

    HTML-Code:
    <td><input type="submit" value="Anmelden" id="submit" name="submit"></td>
    somit müsste er doch submit heissen??!!

    joa und ansonsten zeigt er mir leider keine echos an...

    zumindest ist der code nich mehr zu sehen...

  8. #8
    TP-Moderator hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User hero-master lebt für das TP und seine User Avatar von hero-master
    Registriert seit
    Mar 2003
    Ort
    Hamburg
    Beiträge
    5.927
    Zitat Zitat von tobias82
    somit müsste er doch submit heissen??!!
    Ja, dann heißt er "submit".
    Da bei dir mehrere Abschick-Buttons sind, wusste ich nicht welcher gemeint war

  9. #9
    TP-Senior tobias82 macht alles soweit korrekt
    Registriert seit
    Oct 2005
    Beiträge
    104
    alles bestens vielen DANK!!!

  10. #10
    321
    321 ist offline
    TP-Specialist 321 hilft, wo's geht 321 hilft, wo's geht 321 hilft, wo's geht Avatar von 321
    Registriert seit
    Nov 2004
    Ort
    Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
    Beiträge
    4.248
    <?php
    lauter PHP-Code
    ?>
    HTML-Code
    <?php
    wieder PHP-Code
    ?>
    usw (auch wieder HTML-Code)

    submit submit submit ... Da vergisst mancher oft, was was ist/bedeutet
    [321 Name="Joe"]
    wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
    [/321]


    use my HTML-Tester

    Motto'06: Mut zur deutschen Sprache!

  11. #11
    TP-Senior tobias82 macht alles soweit korrekt
    Registriert seit
    Oct 2005
    Beiträge
    104
    neues probs...er löscht immer die einträge und setzt alles auf den im cache gespicherten standard eintrag bei diesem formular zurück. liegt das an meinem browser oder kann ich da noch was am script für tun?

  12. #12
    321
    321 ist offline
    TP-Specialist 321 hilft, wo's geht 321 hilft, wo's geht 321 hilft, wo's geht Avatar von 321
    Registriert seit
    Nov 2004
    Ort
    Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
    Beiträge
    4.248
    Dann musst Du die Eingabefelder wieder ausgeben!
    PHP-Code:
    <input type="text" name="username" 
     value="<?php echo $username ?>" size="10">
    [321 Name="Joe"]
    wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
    [/321]


    use my HTML-Tester

    Motto'06: Mut zur deutschen Sprache!

  13. #13
    TP-Senior tobias82 macht alles soweit korrekt
    Registriert seit
    Oct 2005
    Beiträge
    104
    stück für stück komme ich voran und lerne...er machts noch nicht bei jedem feld aber das krieg ich noch hin.

    wenn jetzt alle pflichtfelder ausgefüllt sind kommt folgende fehlermeldung:

    Warning: Cannot modify header information - headers already sent by (output started at C:\Dokumente und Einstellungen\Tobias\Desktop\Testlab\xampp-win32-1.5.1\xampp\htdocs\hattipp\freeaccount.php:12) in C:\Dokumente und Einstellungen\Tobias\Desktop\Testlab\xampp-win32-1.5.1\xampp\htdocs\hattipp\freeaccount.php on line 62

    hier der betroffen code:

    PHP-Code:
                      if ($managerid != "")
                         {
                         
    $query "INSERT INTO TabUser (UserID,Username,Passwort,Name,Vorname,Email,ManagerID,Account) VALUES (NULL,'$username','$passwort','$name','$vorname','$email','$managerid','$account')";

                         
    $hinzufuegen=mysql_query($query) or die ("Fehler in Abfrage: $query. " mysql_error());

                         
    header("Location:freedanke.html");
                         }
                      else
                           {
                         echo 
    "<p style=\"font-size:8pt; font-family:arial, verdana, sans-serif; color:red; position: absolute; margin: 351px 0 0 580px;\">Bitte überprüfe deine Manager ID!</p>";
                         } 
    der erste header ist zeile 62! der fehler kam vorher nie...

  14. #14
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    Du scheinst irgendwo davor bereits Zeichen an den Browser zu schicken. Das kann HTML sein, aber auch ein einziges Leerzeichen ...

    Schreib bitte auch eine komplette URL bei header() hin - so ist das nämlich nicht richtig.
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  15. #15
    TP-Senior tobias82 macht alles soweit korrekt
    Registriert seit
    Oct 2005
    Beiträge
    104
    das mit dem zeichen muss ich wohl ma prüfen. aber was meinst du mit url? die datei befindet sich auf der selben ordnerebene. was soll denn da noch hin? abgesehn davon hat es wie gesagt vorher auch schon genauso funktioniert und ich habe an der betroffenen stelle nichts geändert. normalerweise müsste die fehlermeldung dann doch für ne andre zeile kommen??!!

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51