| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

29-12-2003, 21:44
|
|
g0n
Newbie
|
|
Registriert seit: Jul 2003
Beiträge: 63
|
|
Bedingungen
ich möchte, dass wenn man das formular nicht zu ende ausfüllt eine Nachricht "sorry, du hast nicht alle felder ausgefüllt", erscheint. der code:
PHP-Code:
<? include("config.php");
if($name ||$wohnort || $email || $icq == "")
{
echo "sorry, du musst alle Felder ausfuelen";
}
else
{
$sql = "INSERT INTO members (name,wohnort,email,icq) VALUES ('$name','$wohnort','$email','$icq')";
mysql_query($sql, $con);
}
?>
<b><u>Einen neuen Member eingtragen:</u></b><br>
<form action="<?=$PHP_SELF?>" method="post">
<table border=0 cellpadding=0 cellspacing=0>
<tr>
<td>Name:</td> <td><input type="text" name="name" size="20"></td>
</tr>
<tr>
<td>Wohnort:</td> <td><input type="text" name="wohnort" size="20"></td>
</tr>
<tr>
<td>E-Mail:</td> <td><input type="text" name="email" size="20"></td>
</tr>
<tr>
<td>ICQ:</td> <td><input type="text" name="icq" size="20"></td>
</tr>
<tr><td>
<input type="submit" name="sql" value="Abschicken">
</td></tr>
</table>
</form>
Irgnedwie klappt das nicht ganz, ich hoffe ihr könnt mir den fehler nennen.
mfg
|

29-12-2003, 21:53
|
|
derHund
PHP Master
|
|
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
|
|
haha,
deine if-abfrage soll doch nicht etwa: wenn name oder wohnort oder whatever oder icq == "" heißen? das geht ja nun nicht.
du solltest jede variable auf existenz, inhalt und sinnvolligkeit prüfen (regexp ...), und bei nichtgefallen eine fehlermeldung ausgeben ...
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...
|

29-12-2003, 22:04
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
guck dir mal empty() und die Forumssuche + ander Suchen an!
|

29-12-2003, 22:07
|
|
Offe1
Member
|
|
Registriert seit: Dec 2003
Beiträge: 478
|
|
PHP-Code:
if($_POST['name'] == "" ||$_POST['wohnort'] == "" || $_POST['email'] == "" || $_POST['icq'] == "")
natürlich gibt es sinnvollere Abfragen mit pregmatch, isset oder empty (z.B. !preg_match ("/[.a-z0-9_-]+@[.a-z0-9-]+/i", $_POST['email'])).
Offe
|

29-12-2003, 22:16
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
vorallem ist empty in den meisten fällen schöner als == ''.
|

30-12-2003, 19:33
|
|
g0n
Newbie
|
|
Registriert seit: Jul 2003
Beiträge: 63
|
|
Zitat:
Original geschrieben von Offe1
PHP-Code:
if($_POST['name'] == "" ||$_POST['wohnort'] == "" || $_POST['email'] == "" || $_POST['icq'] == "")
|
ok kann ich machen, nur steht schon von Anfang an immer da "sorry, du musst alle Felder ausfüllen" da stimmt was nicht.
|

30-12-2003, 19:41
|
|
derHund
PHP Master
|
|
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
|
|
code?
OffTopic: wenn du keine sicherheitsabfragen einbauen willst, verrat mal die url 
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...
|

30-12-2003, 19:48
|
|
Seccho
Senior Member
|
|
Registriert seit: May 2003
Ort: kurz vor bzw. nach Zürich gleich links.. bei der brücke..
Beiträge: 539
|
|
PHP-Code:
if(isset($_POST["sql"])) {
if($name ||$wohnort || $email || $icq == "")
{
echo "sorry, du musst alle Felder ausfuelen";
}
else
{
$sql = "INSERT INTO members (name,wohnort,email,icq) VALUES ('$name','$wohnort','$email','$icq')";
mysql_query($sql, $con);
}
}
Oder so ähnlich (mit den $_POST halt)... muste halt überprüfen ob das form gesendet wurde..
So muss gehn meine freundin ist hier
__________________
_____________
Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!!
|

30-12-2003, 21:50
|
|
MasterKiller
Newbie
|
|
Registriert seit: May 2003
Beiträge: 5
|
|
ich würds so machen:
PHP-Code:
if(isset($_POST['sql']))
{
if(empty($name) or empty($wohnort)) or !ereg(".+@.+\..+", $email) or empty($icq)) {
echo "Sorry, du musst alle Felder ausfuellen...";
}
else
{
$sql = "INSERT INTO members (name,wohnort,email,icq) VALUES ('$name','$wohnort','$email','$icq')";
mysql_query($sql, $con);
}
}
|

31-12-2003, 10:36
|
|
AtomicHX3
Newbie
|
|
Registriert seit: Jun 2003
Beiträge: 39
|
|
Bei der ICQ Nummer kannst du noch eine längenprüfung machen mit strlen() Und die Variabeln sollten schon register_globals-OFF gerechts (Standarteinstellung) über die superglobalen Arrays angesprochen werden. Ich empfehle Request weil da sowohl die wo über GET als auch über POST drin sind.
Zuguterletzt das ganze in eine etwas bessere Syntax.
PHP-Code:
if(isset($_REQUEST['sql']))
{
if(empty($_REQUEST['name']) or empty($_REQUEST['wohnort'])) or empty($_REQUEST['email']) or empty($_REQUEST['icq'])) {
echo "Sorry, du musst alle Felder ausfuellen...";
}
else
{
if(strlen($_REQUEST['icq'])!=9){
echo "Fehler: Keine gültige ICQ Nummer angegeben!";
} else if(!preg_match ("/[.a-z0-9_-]+@[.a-z0-9-]+/i", $_REQUEST['email'])){
echo "Fehler: Keine gültige E-Mail Adresse angegeben!";
} else {
$sql = "INSERT INTO members (name,wohnort,email,icq) VALUES ('".$_REQUEST['name']."','".$_REQUEST['wohnort']."','".$_REQUEST['email']."','".$_REQUEST['icq']."')";
mysql_query($sql, $con);
}
}
}
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|