was ist daran falsch ? bitte hilfe !!
Frank
- php
Moin Moin jungs und mädels,
was ist an dem quelli falsch ?
<?
$nr = "1";
if(isset($_POST['senden']))
{
for($i = 1; $i <= 5; $i++)
{
if($_POST['mail$i'] == "")
{
$check[] = "0";
}
else
{
$check[] = "1";
}
}
foreach($check as $mach)
{
echo $mach;
}
if(in_Array($nr, $check))
{
echo "geht";
}
else
{
echo "geht nicht";
}
}
?>
Hab ein Formular mit 5 email felder, und ich will alle mit einer for schleife prüfen, ob da was drin steht. wenn nix ist, dann soll er 0 in check machen und sonst 1 !
aber egal ob ich was in die input felder im formular eingebe, immer bleibt alles auf 0 !
Wo ist mein Fehler !
Wäre super wenn ihr es herausfinden würdet. Hab mir schon ne halbe std den kopf zerbrochen.
mfg
Frank
<?
$nr = "1";
if(isset($_POST['senden']))
{
for($i = 1; $i <= 5; $i++)
{
if($_POST['mail$i'] == "")
zu: if($_POST['mail'.$i] == "")
oder: if($_POST["mail$i"] == "")
denn: in '' Anführungszeichen werden keine Variabeln gefüllt. Darüberhinaus wird das eigentlich anders gemacht, aber versuchs erstmal so...
{
$check[] = "0";
}
else
{
$check[] = "1";
}
}
foreach($check as $mach)
{
echo $mach;
}
if(in_Array($nr, $check))
{
echo "geht";
}
else
{
echo "geht nicht";
}
}
?>
Gruss Stefan
denn: in '' Anführungszeichen werden keine Variabeln gefüllt. Darüberhinaus wird das eigentlich anders gemacht
ui vielen dank stefan, für die prompte hilfe.
hat sogar geklappt!
könntest du mir vielleicht sagen, wie man das eigentlich anders macht ?
wäre cool, dann könnt ich bestimmt noch was lernen :-)
mfg
Frank
Hello,
[...]
na, ich würde die Namen <input ..> für die Mailadressen im Formular schon geschickt wählen:
<input type="text" name="data[email][]" ...>
<input type="text" name="data[email][]" ...>
<input type="text" name="data[email][]" ...>
So kommen die eMail-Adressen im Array
$_POST["data"]["email"][0]
$_POST["data"]["email"][1]
$_POST["data"]["email"][2]
in PHP an und man kann einfach prüfen:
$checkmail = array();
if(isset($_POST["data"]["email"][0])
foreach($_POST["data"]["email"] as $key => $mail)
{
$checkmail[$key]["check"] = (strlen(trim($mail))>6);
$checkmail[$key]["addr"] = $mail;
}
echo "<pre>";
print_r($checkmail);
echo "</pre>";
So zum Beispiel...
Liebe Grüße aus http://www.braunschweig.de
Tom
Zwei Dumme ein Gedanke! *g*
Tom, schau mal bitte bei meinem Eintrag hier unter diesem, danke. :o)
Gruss Stefan
erstmal vielen dank an euch beide.
Aber ich muss sagen, das von stefan, versteh ich viel besser und schneller.
bei dem von Tom, ist es schwer , dem quelltext richtig zu folgen.
ist halt meine meinung.
aber trotzdem big thx.
mfg
Frank
Frank, das hört man gerne *g* ;o)
Aber letztlich sind es zwei Lösungen für ein Problem.
Tom hat sich mehr auf deinen Stil gestützt und ich hab dir meinen aufgedrückt *g* Für den Anfang ist meines sicherlich einfacher, aber irgendwann wirst Du vielleicht das von Tom besser finden :o)
Schöne Weihnachten auf jeden Fall euch beide.
Gruss Stefan
»»Für den Anfang ist meines sicherlich einfacher, aber irgendwann wirst Du vielleicht das von Tom besser finden :o)
jo, das geb ich dir recht, bin ja auch noch am PHP lernen.
und hab heut gesehen, das man nie auslernen kann.
Schöne Weihnachten auf jeden Fall euch beide.
danke, wünsch ich euch natürlich auch :o
mfg
Frank
Hello Stefan,
Zwei Dumme ein Gedanke! *g*
Tom, schau mal bitte bei meinem Eintrag hier unter diesem, danke. :o)
ja, das ist auch eine gute Idee, vor allem, wenn man gleich die Syntax der eMail-Adresse unter die Lupe nimmt.
Nun dürfte Frank erstmal genug Anregungen haben...
Liebe Grüße aus http://www.braunschweig.de
Tom
HTML Formular:
<form action="script.php" method="post">
Email1: <input type="text" name="email[]" value="" size="30" /><br />
Email2: <input type="text" name="email[]" value="" size="30" /><br />
Email3: <input type="text" name="email[]" value="" size="30" /><br />
Email4: <input type="text" name="email[]" value="" size="30" /><br />
Email5: <input type="text" name="email[]" value="" size="30" /><br />
<input type="submit" value="Abschicken" />
</form>
PHP-Script:
$email = $_POST['email'];
foreach($email as $cur_email) {
// Hier kannst Du die einzelnen Emailadresse ueberpruefen
// zum Beispiel mit preg_match().
$email_correct = preg_match("/[a-z0-9-_.]*@[a-z0-9-_.]*?.[a-z]{2,5}/i", $cur_email);
// Fall die Ueberpruefung korrekt war, Email speichern:
if($email_correct) {
$user_email_addresses[] = $cur_email;
}
}
Kann sein, dass dieses Preg-Match auf der schnelle getippt einen Fehler hat, dafür kann ich net garantieren, ich habs nur so niedergetippt *g* Schau halt mal in der Doku, wenn´s nicht läuft.
Es soll ja nur um die Logik gehen, und ich hoffe diese hast du verstanden. Du kannst über Formulare eben auch Arrays senden. Und das vereinfacht die Verarbeitung gewaltig.
Gruss Stefan
Hello,
## und hier gibts vielleicht gleich eine Notice, wenn der User gebastelt
## hat, oder das Script von sonstwo requested wird.
## if(isset()) lass ich aber auch immer weg *gg*
$email = $_POST['email'];
## auf Array sollte man vor foreach() immer prüfen!
if(is_array($email))
foreach($email as $cur_email) {
// Hier kannst Du die einzelnen Emailadresse ueberpruefen
// zum Beispiel mit preg_match().
$email_correct = preg_match("/[a-z0-9-_.]*@[a-z0-9-_.]*?.[a-z]{2,5}/i", $cur_email);// Fall die Ueberpruefung korrekt war, Email speichern:
if($email_correct) {
$user_email_addresses[] = $cur_email;
}
}
Vor der foreach()-Schleife immer fragen, ob das Argument ein Array ist. Bei meiner Version habe ich das "durch die Hintertür" gemacht
wenn nämlich if (isset($_POST["data"]["mail"][0]))
dann muss $_POST["data"]["mail"] ein Array sein.
Liebe Grüße aus http://www.braunschweig.de
Tom
_das_ ist an deinem posting vor allem falsch.
gruss,
wahsaga
_das_ ist an deinem posting vor allem falsch.
weist du was, geh mir nicht auf die nerven.
ich wusste das da ein kleiner fehler war, also kann ich als titel auch den oben genannten wählen.
wenn es dich stört, dann schau einfach nicht in den thread vorbei.
es gibt halt andere leute , die nicht solche spießer sind, wie du.
beim nächsten mal überspring es einfach, verstanden.
hab kein bock, mich jedesmal wenn ich hier was poste, von dir anmachen zu lassen, nur weil dir irgendwas nicht gefällt.
also
mfg
hi,
weist du was, geh mir nicht auf die nerven.
ich wusste das da ein kleiner fehler war, also kann ich als titel auch den oben genannten wählen.
lies bitte mal </faq/#Q-06a>
wenn es dich stört, dann schau einfach nicht in den thread vorbei.
es gibt halt andere leute , die nicht solche spießer sind, wie du.
beim nächsten mal überspring es einfach, verstanden.
hab kein bock, mich jedesmal wenn ich hier was poste, von dir anmachen zu lassen, nur weil dir irgendwas nicht gefällt.
gruss,
wahsaga