getreidemuehlen
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 29.03.2006, 10:18   #1
TP-Senior
 
Registriert seit: Oct 2005
tobias82 macht alles soweit korrekt

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!
tobias82 ist offline   Mit Zitat antworten


Alt 29.03.2006, 12:51   #2
TP-Moderator
 
Benutzerbild von hero-master
 
Registriert seit: Mar 2003
Ort: Hamburg
hero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKE
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
__________________
Grüße Nico

Meine kleinen CSS-Tutorials
hero-master ist offline   Mit Zitat antworten
Alt 29.03.2006, 13:01   #3
TP-Senior
 
Registriert seit: Oct 2005
tobias82 macht alles soweit korrekt
und wie gehn diese "dynamischen" fehlermeldungen mit php? also, dass er an der gewünschten stelle text erscheinen lässt?
tobias82 ist offline   Mit Zitat antworten
Alt 29.03.2006, 14:08   #4
TP-Moderator
 
Benutzerbild von hero-master
 
Registriert seit: Mar 2003
Ort: Hamburg
hero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKE
auch mit ner IF-Anweisung:
PHP-Code:
if(empty($_POST['Name'])) {echo "Bitte füllen Sie das Feld aus";} 
Vlt. hilft das ein wenig
__________________
Grüße Nico

Meine kleinen CSS-Tutorials
hero-master ist offline   Mit Zitat antworten
Alt 29.03.2006, 14:30   #5
TP-Senior
 
Registriert seit: Oct 2005
tobias82 macht alles soweit korrekt
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">
tobias82 ist offline   Mit Zitat antworten
Alt 29.03.2006, 14:38   #6
TP-Moderator
 
Benutzerbild von hero-master
 
Registriert seit: Mar 2003
Ort: Hamburg
hero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKE
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?
__________________
Grüße Nico

Meine kleinen CSS-Tutorials
hero-master ist offline   Mit Zitat antworten
Alt 29.03.2006, 14:46   #7
TP-Senior
 
Registriert seit: Oct 2005
tobias82 macht alles soweit korrekt
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...
tobias82 ist offline   Mit Zitat antworten
Alt 29.03.2006, 14:52   #8
TP-Moderator
 
Benutzerbild von hero-master
 
Registriert seit: Mar 2003
Ort: Hamburg
hero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKEhero-master ist ein richtiges Arbeitstier - DANKE
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
__________________
Grüße Nico

Meine kleinen CSS-Tutorials
hero-master ist offline   Mit Zitat antworten
Alt 29.03.2006, 15:01   #9
TP-Senior
 
Registriert seit: Oct 2005
tobias82 macht alles soweit korrekt
alles bestens vielen DANK!!!
tobias82 ist offline   Mit Zitat antworten
Alt 29.03.2006, 15:04   #10
321
TP-Specialist
 
Benutzerbild von 321
 
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
321 hilft, wo's geht321 hilft, wo's geht321 hilft, wo's geht
<?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!
321 ist offline   Mit Zitat antworten
Alt 29.03.2006, 15:05   #11
TP-Senior
 
Registriert seit: Oct 2005
tobias82 macht alles soweit korrekt
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?
tobias82 ist offline   Mit Zitat antworten
Alt 29.03.2006, 15:16   #12
321
TP-Specialist
 
Benutzerbild von 321
 
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
321 hilft, wo's geht321 hilft, wo's geht321 hilft, wo's geht
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!
321 ist offline   Mit Zitat antworten
Alt 29.03.2006, 15:29   #13
TP-Senior
 
Registriert seit: Oct 2005
tobias82 macht alles soweit korrekt
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...
tobias82 ist offline   Mit Zitat antworten
Alt 29.03.2006, 17:41   #14
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
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
Boris ist offline   Mit Zitat antworten
Alt 31.03.2006, 10:00   #15
TP-Senior
 
Registriert seit: Oct 2005
tobias82 macht alles soweit korrekt
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??!!
tobias82 ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Traum-Talk > Webdesign & Co.
formular mit php prüfen und fehler im formular anzeigen lassen formular mit php prüfen und fehler im formular anzeigen lassen
« Suche Dingbats wie aus iPod-Spots | lustige Fehlersuche im IE - wo kommt der Streifen her? »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu