 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
29.03.2006, 10:18
|
#1
|
|
TP-Senior
Registriert seit: Oct 2005
|
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!
|
|
|
29.03.2006, 12:51
|
#2
|
|
TP-Moderator
Registriert seit: Mar 2003
Ort: Hamburg
|
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 
|
|
|
29.03.2006, 13:01
|
#3
|
|
TP-Senior
Registriert seit: Oct 2005
|
und wie gehn diese "dynamischen" fehlermeldungen mit php? also, dass er an der gewünschten stelle text erscheinen lässt?
|
|
|
29.03.2006, 14:08
|
#4
|
|
TP-Moderator
Registriert seit: Mar 2003
Ort: Hamburg
|
auch mit ner IF-Anweisung:
PHP-Code:
if(empty($_POST['Name'])) {echo "Bitte füllen Sie das Feld aus";}
Vlt. hilft das ein wenig 
|
|
|
29.03.2006, 14:30
|
#5
|
|
TP-Senior
Registriert seit: Oct 2005
|
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">
|
|
|
29.03.2006, 14:38
|
#6
|
|
TP-Moderator
Registriert seit: Mar 2003
Ort: Hamburg
|
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?
|
|
|
29.03.2006, 14:46
|
#7
|
|
TP-Senior
Registriert seit: Oct 2005
|
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...
|
|
|
29.03.2006, 14:52
|
#8
|
|
TP-Moderator
Registriert seit: Mar 2003
Ort: Hamburg
|
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 
|
|
|
29.03.2006, 15:01
|
#9
|
|
TP-Senior
Registriert seit: Oct 2005
|
alles bestens  vielen DANK!!!
|
|
|
29.03.2006, 15:04
|
#10
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
<?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!
|
|
|
29.03.2006, 15:05
|
#11
|
|
TP-Senior
Registriert seit: Oct 2005
|
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?
|
|
|
29.03.2006, 15:16
|
#12
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
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!
|
|
|
29.03.2006, 15:29
|
#13
|
|
TP-Senior
Registriert seit: Oct 2005
|
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...
|
|
|
29.03.2006, 17:41
|
#14
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
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
|
|
|
31.03.2006, 10:00
|
#15
|
|
TP-Senior
Registriert seit: Oct 2005
|
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??!!
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| 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.
HTML-Code ist aus.
|
|
| | |