Wat is er mis, checkfunctie mailform.
Kan iemand ook uitleggen waarom het onderste niet werkte. Zodat ik het ook kan snappen en er ook van kan leren :)
Hier het code gedeelte origineel waar de "check if empty " werkte
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if (isset($_POST["cp_email"]) && $_POST["cp_email"] <> "") {
$form .= "<tr>\n<td class=\"td\">\n Email:</td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" value=\"" . $_POST["cp_email"] . "\" /></td>\n</tr>\n";
} else {
$error = "ja";
$form .= "<tr>\n<td class=\"td\">\n<b>Geen emailadres ingevuld</b><br /> Email:</td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" /></td>\n</tr>\n";
}
?>
if (isset($_POST["cp_email"]) && $_POST["cp_email"] <> "") {
$form .= "<tr>\n<td class=\"td\">\n Email:</td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" value=\"" . $_POST["cp_email"] . "\" /></td>\n</tr>\n";
} else {
$error = "ja";
$form .= "<tr>\n<td class=\"td\">\n<b>Geen emailadres ingevuld</b><br /> Email:</td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" /></td>\n</tr>\n";
}
?>
Hier de code waardoor die opeens nie werkt
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (isset($_POST["cp_email"]) && $_POST["cp_email"] <> "") {
$form .= "<tr>\n<td class=\"td\">\n Email: /td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" value=\"" . $_POST["cp_email"] . "\" /></td>\n</tr>\n";
} elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST[cp_email])) {
echo "Email adres onjuist";
} else {
$error = "ja";
$form .= "<tr>\n<td class=\"td\">\n<b>Geen emailadres ingevuld</b><br /> Email /td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" /></td>\n</tr>\n";
}
?>
if (isset($_POST["cp_email"]) && $_POST["cp_email"] <> "") {
$form .= "<tr>\n<td class=\"td\">\n Email: /td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" value=\"" . $_POST["cp_email"] . "\" /></td>\n</tr>\n";
} elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST[cp_email])) {
echo "Email adres onjuist";
} else {
$error = "ja";
$form .= "<tr>\n<td class=\"td\">\n<b>Geen emailadres ingevuld</b><br /> Email /td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" /></td>\n</tr>\n";
}
?>
Gewijzigd op 02/09/2005 11:19:00 door Nancy
Email: /td>\n<td class=\"td\">\n
Dit moet zijn:
Email: </td>\n<td class=\"td\">\n
maak daarvan:
elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
dus quotes in de POST..
De tag moet altijd beginnen met < en eindigen op >.
Het is trouwens ontzettend onduidelijk met al die \", maar dat vind ik persoonlijk lastig. Je kan ook met dubbele en enkele quotes werken.
Dus in plaats van:
$form .= "<tr>\n<td class=\"td\">";
Kan je ook dit doen:
$form .= "<tr>\n<td class='td'>";
Als je dit verder doorvoert, dan maakt het een stuk overzichtelijker.
Ik gebruik alleen de \ als het echt moet.
Succes
Email /td> naar Email </td>
2x verbetert moet worden
Want het staat er 2 keer in
Heb nu onderstaand gebeuren.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (isset($_POST["cp_email"]) && $_POST["cp_email"] <> "") {
$form .= "<tr>\n<td class=\"td\">\n Email: </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" value=\"" . $_POST["cp_email"] . "\" /></td>\n</tr>\n";
} elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
echo "Email adres onjuist";
} else {
$error = "ja";
$form .= "<tr>\n<td class=\"td\">\n<b>Geen emailadres ingevuld</b><br /> Email </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" /></td>\n</tr>\n";
}
?>
if (isset($_POST["cp_email"]) && $_POST["cp_email"] <> "") {
$form .= "<tr>\n<td class=\"td\">\n Email: </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" value=\"" . $_POST["cp_email"] . "\" /></td>\n</tr>\n";
} elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
echo "Email adres onjuist";
} else {
$error = "ja";
$form .= "<tr>\n<td class=\"td\">\n<b>Geen emailadres ingevuld</b><br /> Email </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" /></td>\n</tr>\n";
}
?>
Gewijzigd op 02/09/2005 11:45:00 door Nancy
Als het emailadres onjuist is, dan zie je alleen de tekst Email adres onjuist.
Maar verder staat er niks in die elseif. Dus vandaar dat je je email invoervak kwijt bent.
Je kan het zo doen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
if (isset($_POST["cp_email"]) && $_POST["cp_email"] <> "") {
$form .= "<tr>\n<td class=\"td\">\n Email: </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" value=\"" . $_POST["cp_email"] . "\" /></td>\n</tr>\n";
} elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
echo "Email adres onjuist";
$form .= "<tr>\n<td class=\"td\">\n<b>Geen emailadres ingevuld</b><br /> Email </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" /></td>\n</tr>\n";
} else {
$error = "ja";
$form .= "<tr>\n<td class=\"td\">\n<b>Geen emailadres ingevuld</b><br /> Email </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" /></td>\n</tr>\n";
}
?>
if (isset($_POST["cp_email"]) && $_POST["cp_email"] <> "") {
$form .= "<tr>\n<td class=\"td\">\n Email: </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" value=\"" . $_POST["cp_email"] . "\" /></td>\n</tr>\n";
} elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
echo "Email adres onjuist";
$form .= "<tr>\n<td class=\"td\">\n<b>Geen emailadres ingevuld</b><br /> Email </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" /></td>\n</tr>\n";
} else {
$error = "ja";
$form .= "<tr>\n<td class=\"td\">\n<b>Geen emailadres ingevuld</b><br /> Email </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" /></td>\n</tr>\n";
}
?>
Dit is trouwens nog een omslagtige manier. Je kan het veeeeeeel korter maken. Maar ik doe het even zo.
Ik had de verkeerde tekst overgehaald.
ipv
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
} elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
echo "Email adres onjuist";
$form .= "<tr>\n<td class=\"td\">\n<b>Geen emailadres ingevuld</b><br /> Email </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" /></td>\n</tr>\n";
}
?>
} elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
echo "Email adres onjuist";
$form .= "<tr>\n<td class=\"td\">\n<b>Geen emailadres ingevuld</b><br /> Email </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" /></td>\n</tr>\n";
}
?>
is het
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
} elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
echo "Email adres onjuist";
$form .= "<tr>\n<td class=\"td\">\n Email: </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" value=\"" . $_POST["cp_email"] . "\" /></td>\n</tr>\n";
}
?>
} elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
echo "Email adres onjuist";
$form .= "<tr>\n<td class=\"td\">\n Email: </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" value=\"" . $_POST["cp_email"] . "\" /></td>\n</tr>\n";
}
?>
Barman:
Dit is trouwens nog een omslagtige manier. Je kan het veeeeeeel korter maken. Maar ik doe het even zo.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
if (isset($_POST["cp_email"]) && eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email']))
{
$foutje="";
}
else
{
$error = "ja";
$foutje="<b>Geen of ongeldig emailadres ingevuld</b><br />";
}
$form .= "<tr>\n<td class=\"td\">\n" . $foutje . " Email: </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" value=\"" . $_POST["cp_email"] . "\" /></td>\n</tr>\n";
?>
if (isset($_POST["cp_email"]) && eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email']))
{
$foutje="";
}
else
{
$error = "ja";
$foutje="<b>Geen of ongeldig emailadres ingevuld</b><br />";
}
$form .= "<tr>\n<td class=\"td\">\n" . $foutje . " Email: </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" value=\"" . $_POST["cp_email"] . "\" /></td>\n</tr>\n";
?>
Dit zou ook moeten werken en is een heel stuk korter.
Gewijzigd op 02/09/2005 12:23:00 door - SanThe -
Heeft het nies met die echo te maken? Ik gil maar wat hoor.
Hier m'n hele script
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
if (isset($_POST["cp_email"]) && $_POST["cp_email"] <> "") {
$form .= "<tr>\n<td class=\"td\">\n Email: </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" value=\"" . $_POST["cp_email"] . "\" /></td>\n</tr>\n";
} elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
echo "Email adres onjuist";
$form .= "<tr>\n<td class=\"td\">\n Email: </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" value=\"" . $_POST["cp_email"] . "\" /></td>\n</tr>\n";
} else {
$error = "ja";
$form .= "<tr>\n<td class=\"td\">\n<b>Geen emailadres ingevuld</b><br /> Email </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" /></td>\n</tr>\n";
}
?>
if (isset($_POST["cp_email"]) && $_POST["cp_email"] <> "") {
$form .= "<tr>\n<td class=\"td\">\n Email: </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" value=\"" . $_POST["cp_email"] . "\" /></td>\n</tr>\n";
} elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
echo "Email adres onjuist";
$form .= "<tr>\n<td class=\"td\">\n Email: </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" value=\"" . $_POST["cp_email"] . "\" /></td>\n</tr>\n";
} else {
$error = "ja";
$form .= "<tr>\n<td class=\"td\">\n<b>Geen emailadres ingevuld</b><br /> Email </td>\n<td class=\"td\">\n<input type=\"text\" name=\"cp_email\" size=\"50\" /></td>\n</tr>\n";
}
?>
Gewijzigd op 02/09/2005 12:24:00 door Nancy
Probeer mijn vorige post eens. Uiteraard niet gelijk je eigen stuk script weggooien natuurlijk.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (!empty($_POST["cp_email"])){
if(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
$error = "Emailadres onjuist";
} else {
$error = "Geen emailadres ingevuld";
}
}
$form .= "
<tr>
<td class='td'>".$error." Email: </td>
<td class='td'>
<input type='text' name='cp_email' size='50' value='".$_POST["cp_email"]."'>
</td>
</tr>";
echo $form;
?>
if (!empty($_POST["cp_email"])){
if(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
$error = "Emailadres onjuist";
} else {
$error = "Geen emailadres ingevuld";
}
}
$form .= "
<tr>
<td class='td'>".$error." Email: </td>
<td class='td'>
<input type='text' name='cp_email' size='50' value='".$_POST["cp_email"]."'>
</td>
</tr>";
echo $form;
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
if (isset($_POST["cp_email"])){
if(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
$error = "Emailadres onjuist";
} else {
$error = "Emailadres juist";
}
}
$form .= "
<form method='POST' action='".$_SERVER['PHP_SELF']."'>
<p>".$error."</p>
<table>
<tr>
<td class='td'> Email: </td>
<td class='td'>
<input type='text' name='cp_email' size='50' value='".$_POST["cp_email"]."'>
<input type='submit' value='OK'>
</td>
</tr>
</table>
</form>";
echo $form;
?>
if (isset($_POST["cp_email"])){
if(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
$error = "Emailadres onjuist";
} else {
$error = "Emailadres juist";
}
}
$form .= "
<form method='POST' action='".$_SERVER['PHP_SELF']."'>
<p>".$error."</p>
<table>
<tr>
<td class='td'> Email: </td>
<td class='td'>
<input type='text' name='cp_email' size='50' value='".$_POST["cp_email"]."'>
<input type='submit' value='OK'>
</td>
</tr>
</table>
</form>";
echo $form;
?>
@Barman: Op bovenstaande regel komt ie nooit. Want als er niets is ingevuld komt ie niet langs de eerste if().
Dan zou je het zo moeten doen.
if (!empty($_POST["cp_email"]))
{
if(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email']))
{
$error = "Emailadres onjuist";
}
}
else
{
$error = "Geen emailadres ingevuld";
}
Edit: Idem voor isset()
Gewijzigd op 02/09/2005 12:53:00 door - SanThe -
@SanThe: Zie mijn laatste reactie
@Barman: Idem voor isset()
Bij mijn laatste reactie heb ik de zin
$error = "Geen emailadres ingevuld";
veranderd door
$error = "Emailadres juist";
Dus als er niks is ingevuld, dan gaat het ook om een onjuiste emailadres.
Barman:
Sorry was de uitleg vergeten, maar ik denk dat je het zelf al weet.
Ik gebruik alleen de \ als het echt moet.
Succes
Ik gebruik alleen de \ als het echt moet.
Succes
Ik streef daar ook naar. Het schijnt ook nog een tikkie sneller te gaan, omdat PHP strings met dubbele aanhalingstekens nog even moet evalueren op de aanwezigheid van variabelen, bijv zo:
Dus zodra een string geen variabelen bevat kun je hem volgens mij het beste tussen enkele aanhalingstekens zetten.
Gewijzigd op 02/09/2005 13:41:00 door Jan Koehoorn
Zou iemand mij ander ffe via msn kunnen helpen ofzo?
Mijn laatste code werkt wel qua emailvalidatie.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
if (isset($_POST["cp_email"])){
if(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
$error = "Emailadres onjuist";
} else {
$error = "Emailadres juist";
}
}
$form .= "
<form method='POST' action='".$_SERVER['PHP_SELF']."'>
<p>".$error."</p>
<table>
<tr>
<td class='td'> Email: </td>
<td class='td'>
<input type='text' name='cp_email' size='50' value='".$_POST["cp_email"]."'>
<input type='submit' value='OK'>
</td>
</tr>
</table>
</form>";
echo $form;
?>
if (isset($_POST["cp_email"])){
if(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['cp_email'])) {
$error = "Emailadres onjuist";
} else {
$error = "Emailadres juist";
}
}
$form .= "
<form method='POST' action='".$_SERVER['PHP_SELF']."'>
<p>".$error."</p>
<table>
<tr>
<td class='td'> Email: </td>
<td class='td'>
<input type='text' name='cp_email' size='50' value='".$_POST["cp_email"]."'>
<input type='submit' value='OK'>
</td>
</tr>
</table>
</form>";
echo $form;
?>
Het ligt er aan wat er nog allemaal omheen moet gebeuren. Dus zonder de complete code kan ik je niet verder helpen.
Stuur je msn-adres even op via interne mail of in deze topic, zodat we je verder kunnen helpen.