Email veld in mysql

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stefan lenders

stefan lenders

21/02/2008 11:41:00
Quote Anchor link
He phpers

ik ben op zoek hoe ik een veld kan maken in php/mysql waar ik vraag om een email adres, en dan wanneer er geen geldig email adres in staat (bijv zonder @) hij een fout geeft en niet doorgaat

hoe moet ik dit doen?
 
PHP hulp

PHP hulp

28/11/2024 01:13:23
 
Lorenzo

lorenzo

21/02/2008 11:50:00
Quote Anchor link
met eregi
hier een simpel voorveeld

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<input name="email" type="text">
<input name="submit" type="submit">

<?php

if ($_SERVER['REQUEST_METHOD'] == 'post') {
 if (!eregi('@', $_POST['email']) {echo "Hallo dit is verkeerd :P";}
}

?>
 
Lode

Lode

21/02/2008 11:58:00
 
Frank -

Frank -

21/02/2008 12:01:00
Quote Anchor link
In MySQL gaat dat niet, MySQL kent geen domeinen. Je zult het dus wel in PHP moeten oplossen of een andere (lees: betere) database kiezen.

Ps. Met triggers, stored procedures en een regulair expression (kan dat in MySQL?) zou het ook moeten lukken, maar dat is erg omslachtig. Een domain of check-constraint is vele malen handiger. Maar ja, MySQL...
 
Stefan lenders

stefan lenders

21/02/2008 12:02:00
Quote Anchor link
ik heb dit


db_toevoegen.php
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
<html>
<h2>Contact toevoegen</h2>
<table>
<form method="post" action="toevoegen.php">
<tr><td>Datum van invoer: <td><input type="text" name="datum" value="<?php echo(date("Y-m-d"));?>"><br>
<tr><td>Voornaam: <td><input type="text" name="voornaam"><br>
<tr><td>Achternaam: <td><input type="text" name="achternaam"><br>
<tr><td>Adres: <td><input type="text" name="adres"><br>
<tr><td>Woonplaats: <td><input type="text" name="woonplaats"><br>
<tr><td>Telefoon: <td><input type="int" name="telefoon"><br>
<tr><td>E-mail: <td><input type="text" name="email"><br>
</table>
<input type="submit" value="Toevoegen"> <input type="reset" value="Opnieuw beginnen"><br>
</form>
<hr>
<a href="index.php">Terug naar Startpagina</a>
</html>


Toevoegen.php
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php

/**
 * @author Stefan en jasper
 * @copyright 2008
 */


include("connect.php");

if (empty($_POST)){
    echo("Vul eertst <a href=\"db_toevoegen.php\"> Contact toevoegen</a> in");
    exit();
}
else{
    $query="INSERT INTO contacten (datum, voornaam, achternaam, adres, woonplaats, telefoon, email)";
    $query .="VALUES ('";
    $query .= $_POST["datum"] ."', '" ;
    $query .= $_POST["voornaam"] ."', '" ;
    $query .= $_POST["achternaam"] ."', '" ;
    $query .= $_POST["adres"] ."', '" ;
    $query .= $_POST["woonplaats"] ."', '" ;
    $query .= $_POST["telefoon"] ."', '" ;
    $query .= $_POST["email"] ."');" ;
    $result = mysql_query($query) or die ("FOUT: " . mysql_error());
}

?>

<html>
<head>
<title>Contact invoegen</title>
</head>
<body>
<?php
    echo("Query die wordt uitgevoerd: <b>$query</b>\n");
    echo("De volgende gegevens zijn ingevoegd:<br>\n");
    echo("Datum van invoer: <br>". $_POST["datum"] . "</b><br>");
    echo("Voornaam: <br>". $_POST["voornaam"] . "</b><br>");
    echo("Achternaam: <br>". $_POST["achternaam"] . "</b><br>");
    echo("Adres: <br>". $_POST["adres"] . "</b><br>");
    echo("Telefoon: <br>". $_POST["telefoon"] . "</b><br>");
    echo("E-Mail: <br>". $_POST["email"] . "</b><br>");
    echo("<hr><a href=\"db_toevoegen.php\">Nog een contact toevoegen</a>
    | <a href=\"database.php\">Overzicht van alle contacten</a>"
);
?>

</body>
</html>



ik weet niet zo goed waar ik dat moet in zetten
Gewijzigd op 01/01/1970 01:00:00 door stefan lenders
 
Frank -

Frank -

21/02/2008 12:06:00
Quote Anchor link
Tja, al jouw controles ontbreken. Jij controleert of de array POST bestaat en dat is het geval zodra het formulier is verzonden. Er is alleen geen enkele reden om aan te nemen dat alle data correct is, dat gaat dus hopeloos fout. De kans dat de datum bv. correct is, is nul-komma-niks. Vrijwel niemand gebruikt het formaat yyyy-mm-dd en dat is toch het formaat dat jouw database eist voor een DATE (datatype).

Kortom, ga eerst maar eens alle controles e.d. inbouwen.

Ps. De geldigheid van een datum kun je met checkdate() vaststellen. MySQL controleert dat normaal gesproken niet... Dat is dan ook nauwelijks een database te noemen.

Edit: Zie ook deze tutorial
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Stefan lenders

stefan lenders

21/02/2008 12:09:00
Quote Anchor link
ik heb er weinig verstand van dus :( snap er nix van. ik heb dit script zo uit een boek aan gepast aan mijn database
 
Lode

Lode

21/02/2008 12:29:00
Quote Anchor link
1) initieer..
We vertouwen helemaal niks!

2) defineer...
Dus standaard is iets NULL, bestaat wel, maar is niks...
Scheelt je heel veel errors gezien NULL well bestaat maar bijvoorbeeld !isset();

3) controleer....
Wat verwacht je? string? nummer? decimaal? text? e-mail adres? link? etc...
controleer de inhoud van een veld daarop...
Zo niet dan blijft het NULL anders kunnen we het gebruiken...

@see eerdere link!

NOTE:
Tijd voor een php-formulier 101 tutorial?
 



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.