Wat is er mis, checkfunctie mailform.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Nancy

Nancy

02/09/2005 11:16:00
Quote Anchor link
Wat is er mis in onderstaand formulier bij het veldje email? Hij checkte eerstt gewoon alleen of het veld niet leeg was. Nu checkt ie als het goed is of het geldig emailadres is. Maar als ik zomaar wat invul bijv "reager" dan is het hele emailveld verdwenen.

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)
PHP script in nieuw venster Selecteer het PHP script
1
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";
        
    }

?>

Hier de code waardoor die opeens nie werkt

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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";
        
    }

?>
Gewijzigd op 02/09/2005 11:19:00 door Nancy
 
PHP hulp

PHP hulp

17/11/2024 00:45:13
 

02/09/2005 11:25:00
Quote Anchor link
Ik zie hier een foutje
Email: /td>\n<td class=\"td\">\n

Dit moet zijn:
Email: </td>\n<td class=\"td\">\n
 
- SanThe -

- SanThe -

02/09/2005 11:26:00
Quote Anchor link
elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST[cp_email])) {

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..
 

02/09/2005 11:32:00
Quote Anchor link
Sorry was de uitleg vergeten, maar ik denk dat je het zelf al weet.

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
 

02/09/2005 11:38:00
Quote Anchor link
Ik zie dat
Email /td> naar Email </td>
2x verbetert moet worden
Want het staat er 2 keer in
 
Nancy

Nancy

02/09/2005 11:40:00
Quote Anchor link
Mmm klopt ook niet, want als ik dan op de button controleer druk is opeens m'n e-mail veld weg. Terwijl ik helemaal niets heb ingevuld daar :S

Heb nu onderstaand gebeuren.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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";
        
    }

?>
Gewijzigd op 02/09/2005 11:45:00 door Nancy
 

02/09/2005 12:01:00
Quote Anchor link
Dat komt omdat je de check op de onjuiste plek hebt staan.

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)
PHP script in nieuw venster Selecteer het PHP script
1
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";
          
    }

?>



Dit is trouwens nog een omslagtige manier. Je kan het veeeeeeel korter maken. Maar ik doe het even zo.
 
Nancy

Nancy

02/09/2005 12:07:00
Quote Anchor link
werkt ook niet, want nu checkt hij dus niet op op het geldig( @ .) emailadres is. Hij checkt nu alleen op of het veld leeg is of niet

Pff hoezo ingewikkeld :S
Gewijzigd op 02/09/2005 12:10:00 door Nancy
 

02/09/2005 12:16:00
Quote Anchor link
Ja ik zie het.

Ik had de verkeerde tekst overgehaald.

ipv
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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";

    }

?>



is het


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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";

    }

?>
 
- SanThe -

- SanThe -

02/09/2005 12:20:00
Quote Anchor link
Barman:
Dit is trouwens nog een omslagtige manier. Je kan het veeeeeeel korter maken. Maar ik doe het even zo.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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";
?>


Dit zou ook moeten werken en is een heel stuk korter.
Gewijzigd op 02/09/2005 12:23:00 door - SanThe -
 
Nancy

Nancy

02/09/2005 12:23:00
Quote Anchor link
Sorry maar werkt nog steeds niet. Hij checkt nu zelfs niet meer of het veld leeg is ja of nee.

Heeft het nies met die echo te maken? Ik gil maar wat hoor.

Hier m'n hele script

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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";
          
    }

?>
Gewijzigd op 02/09/2005 12:24:00 door Nancy
 
- SanThe -

- SanThe -

02/09/2005 12:32:00
Quote Anchor link
Probeer mijn vorige post eens. Uiteraard niet gelijk je eigen stuk script weggooien natuurlijk.
 

02/09/2005 12:39:00
Quote Anchor link
Ik denk dat ie zo beter is.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
?>
 

02/09/2005 12:45:00
Quote Anchor link
Dit in het geheel (sorry voor de posts)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
?>
 
- SanThe -

- SanThe -

02/09/2005 12:50:00
Quote Anchor link
$error = "Geen emailadres ingevuld";

@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 -
 

02/09/2005 12:53:00
Quote Anchor link
@SanThe: Zie mijn laatste reactie
 
- SanThe -

- SanThe -

02/09/2005 12:53:00
Quote Anchor link
@Barman: Idem voor isset()
 

02/09/2005 13:02:00
Quote Anchor link
@SanThe:
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.
 
Jan Koehoorn

Jan Koehoorn

02/09/2005 13:40:00
Quote Anchor link
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 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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
  echo "in deze string zit een $variabele";
?>


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
 
Nancy

Nancy

02/09/2005 14:49:00
Quote Anchor link
Mensen dit werkt allemaal niet :(

Zou iemand mij ander ffe via msn kunnen helpen ofzo?
 
Barman V

Barman V

02/09/2005 15:00:00
Quote Anchor link
@Nancy: Ik heb je een interne mail gestuurd, want ik weet je msn-adres niet.

Mijn laatste code werkt wel qua emailvalidatie.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
?>


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.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.