Email controleren toevoegen aan inlog
Ik heb een tutorial gevolgt voor het maken van een inlog systeem, http://www.phphulp.nl/php/tutorials/2/167/ om precies te zijn. Het enige wat ik er graag bij zou willen is een email controle. Ik heb dus dit geprobeert.
Code (php)
1
2
3
4
5
2
3
4
5
<?php
include("data.inc");
$global_dbh = mysql_connect($hostname, $username, $password);
mysql_select_db($db, $global_dbh);
?>
include("data.inc");
$global_dbh = mysql_connect($hostname, $username, $password);
mysql_select_db($db, $global_dbh);
?>
<html>
<head>
<title>Registreren</title>
<style type="text/css">
<!--
table { border-style: solid;
border-width: 2px 2px;
border-color: #8182FE;
width: 100%;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 75%;
border-collapse: collapse;
}
th { background-color: #BFBFFF;
padding: 5px 5px 5px 5px;
color: #FFFFFF;
width: 50%;
text-align: center;
}
td { background-color: #E3E3FF;
padding: 5px 30px 5px 10px;;
width: 50%;
}
A:link { color: red;
text-decoration: none;
}
A:visited { color: red;
text-decoration: none;
}
A:hover { color: red;
text-decoration: underline;
}
A:active { color: red;
text-decoration: underline;
}
.help { font-size: 75%;
color: #000000;
font-weight: normal;
}
td.error { color: red;
text-align: center;
font-size: 12;
font-weight: bold;
background-color: #FEFD9A;
}
-->
</style>
</head>
<body>
Code (php)
<form method="post" action="">
<table>
<tr>
<th colspan="2">REGISTREREN</th>
</tr>
<tr>
<td align="right">Gebruikersnaam</td>
<td><input type="text" name="gebruikersnaam" size="20" maxlength="30" />
</tr>
<tr>
<td align="right">Wachtwoord</td>
<td><input type="password" name="wachtwoord" size="20" maxlength="30" /></td>
</tr>
<tr>
<td align="right">E-mailadres</td>
<td><input type="text" name="email" size="40" maxlength="50" /></td>
<tr>
<th colspan="2"><input type="hidden" name="stage" value="2" />
<input type="submit" value="Registreren" /></th>
</tr>
</table>
</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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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
<?php
}
function check_email($mail)
{
if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
{
$email_adres = $mail;
$email = explode("@", $email_adres);
if (gethostbyname($email[1]) == $email[1])
$valid = "no";
}
else
$valid = "no";
return $valid;
}
// *********************** Stage 2 ***************************
elseif($_POST['stage'] == 2)
{
// ****************** Alle velden zijn ingevuld *********************
if ($_POST["submit"] && $_POST["login"] && $_POST["pass"] && $_post["email"] && !check_email($_POST["email"]))
{
$query_1 = "SELECT * FROM members WHERE Gebruikersnaam = '$_POST[gebruikersnaam]'";
$result_id_1 = mysql_query($query_1) or die(mysql_error($query_1));
$row = mysql_num_rows($result_id_1);
// ************************** Nog niet gebruikte gebruikersnaam ********************
if($row == 0)
{
$query_2 = "INSERT INTO members (Gebruikersnaam, Wachtwoord, Email) values ('$_POST[gebruikersnaam]', '$_POST[wachtwoord]', '$_POST[email]')";
$result_id_2 = mysql_query($query_2) or die(mysql_query($query_2));
$mailsend = mail($_POST[email], "Uw registratiegegevens bij $site_name", "Hallo $_POST[gebruikersnaam]!\n\nBedankt dat u geregistreerd hebt bij ons!\n\nUw gebruikersnaam: $_POST[gebruikersnaam]\nUw wachtwoord: $_POST[wachtwoord]\n\n\nDe webmaster");
?>
}
function check_email($mail)
{
if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
{
$email_adres = $mail;
$email = explode("@", $email_adres);
if (gethostbyname($email[1]) == $email[1])
$valid = "no";
}
else
$valid = "no";
return $valid;
}
// *********************** Stage 2 ***************************
elseif($_POST['stage'] == 2)
{
// ****************** Alle velden zijn ingevuld *********************
if ($_POST["submit"] && $_POST["login"] && $_POST["pass"] && $_post["email"] && !check_email($_POST["email"]))
{
$query_1 = "SELECT * FROM members WHERE Gebruikersnaam = '$_POST[gebruikersnaam]'";
$result_id_1 = mysql_query($query_1) or die(mysql_error($query_1));
$row = mysql_num_rows($result_id_1);
// ************************** Nog niet gebruikte gebruikersnaam ********************
if($row == 0)
{
$query_2 = "INSERT INTO members (Gebruikersnaam, Wachtwoord, Email) values ('$_POST[gebruikersnaam]', '$_POST[wachtwoord]', '$_POST[email]')";
$result_id_2 = mysql_query($query_2) or die(mysql_query($query_2));
$mailsend = mail($_POST[email], "Uw registratiegegevens bij $site_name", "Hallo $_POST[gebruikersnaam]!\n\nBedankt dat u geregistreerd hebt bij ons!\n\nUw gebruikersnaam: $_POST[gebruikersnaam]\nUw wachtwoord: $_POST[wachtwoord]\n\n\nDe webmaster");
?>
<table>
<tr>
<td class="error">
Code (php)
</td>
</tr>
</table>
Code (php)
<table>
<tr>
<td class="error">Deze gebruikersnaam is reeds in gebruik. Probeer een andere!</error></td>
</tr>
</table>
<form method="post" action="">
<table>
<tr>
<th colspan="2">REGISTREREN</th>
</tr>
<tr>
<td align="right">Gebruikersnaam</td>
<td><input type="text" name="gebruikersnaam" size="20" maxlength="30" />
</tr>
<tr>
<td align="right">Wachtwoord</td>
<td><input type="password" name="wachtwoord" size="20" maxlength="30" /></td>
</tr>
<tr>
<td align="right">E-mailadres</td>
<td><input type="text" name="email" size="40" maxlength="50" /></td>
<tr>
<th colspan="2"><input type="hidden" name="stage" value="2" />
<input type="submit" value="Registreren" /></th>
</tr>
</table>
</form>
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
}
}
// ******************* Niet alle velden zijn ingevuld **********************
else
{
?>
}
}
// ******************* Niet alle velden zijn ingevuld **********************
else
{
?>
<table>
<tr>
<td class="error">U moet alle velden invullen!</error></td>
</tr>
</table>
<form method="post" action="">
<table>
<tr>
<th colspan="2">REGISTREREN</th>
</tr>
<tr>
<td align="right">Gebruikersnaam</td>
<td><input type="text" name="gebruikersnaam" size="20" maxlength="30" />
</tr>
<tr>
<td align="right">Wachtwoord</td>
<td><input type="password" name="wachtwoord" size="20" maxlength="30" /></td>
</tr>
<tr>
<td align="right">E-mailadres</td>
<td><input type="text" name="email" size="40" maxlength="50" /></td>
<tr>
<th colspan="2"><input type="hidden" name="stage" value="2" />
<input type="submit" value="Registreren" /></th>
</tr>
</table>
</form>
</body>
</html>
Het probleem is dat ook als ik alles goed in vul er steeds de fout melding: Uw gegevens zijn opgeslagen in onze database en er is naar u een e-mail verzonden met deze gegevens. U kunt nu inloggen! komt. Ik kan zelf zo niet zien wat er fout is omdat ik nog maar net met PHP begonnen ben. Alle hulp is makkelijk. Alvast bedankt en greetz Dave
Quote:
[2] Copieer de relevante stukken code. Dit betekend niet je hele script. Verwacht niet dat mensen 200 regels code gaan nakijken op fouten. Dat mag je zelf doen.
Bron: Adje's Slimme Vragen Stellen Tutorial
Quote:
probleem is dat ook als ik alles goed in vul er steeds de fout melding: Uw gegevens zijn opgeslagen in onze database en er is naar u een e-mail verzonden met deze gegevens. U kunt nu inloggen! komt.
Dat is toch de bedoeling??
en speciaal voor Rafael het stuk code
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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
<?php
}
function check_email($mail)
{
if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
{
$email_adres = $mail;
$email = explode("@", $email_adres);
if (gethostbyname($email[1]) == $email[1])
$valid = "no";
}
else
$valid = "no";
return $valid;
}
// *********************** Stage 2 ***************************
elseif($_POST['stage'] == 2)
{
// ****************** Alle velden zijn ingevuld *********************
if ($_POST["submit"] && $_POST["login"] && $_POST["pass"] && $_post["email"] && !check_email($_POST["email"]))
{
$query_1 = "SELECT * FROM members WHERE Gebruikersnaam = '$_POST[gebruikersnaam]'";
$result_id_1 = mysql_query($query_1) or die(mysql_error($query_1));
$row = mysql_num_rows($result_id_1);
// ************************** Nog niet gebruikte gebruikersnaam ********************
if($row == 0)
{
$query_2 = "INSERT INTO members (Gebruikersnaam, Wachtwoord, Email) values ('$_POST[gebruikersnaam]', '$_POST[wachtwoord]', '$_POST[email]')";
$result_id_2 = mysql_query($query_2) or die(mysql_query($query_2));
$mailsend = mail($_POST[email], "Uw registratiegegevens bij $site_name", "Hallo $_POST[gebruikersnaam]!\n\nBedankt dat u geregistreerd hebt bij ons!\n\nUw gebruikersnaam: $_POST[gebruikersnaam]\nUw wachtwoord: $_POST[wachtwoord]\n\n\nDe webmaster");
?>
}
function check_email($mail)
{
if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
{
$email_adres = $mail;
$email = explode("@", $email_adres);
if (gethostbyname($email[1]) == $email[1])
$valid = "no";
}
else
$valid = "no";
return $valid;
}
// *********************** Stage 2 ***************************
elseif($_POST['stage'] == 2)
{
// ****************** Alle velden zijn ingevuld *********************
if ($_POST["submit"] && $_POST["login"] && $_POST["pass"] && $_post["email"] && !check_email($_POST["email"]))
{
$query_1 = "SELECT * FROM members WHERE Gebruikersnaam = '$_POST[gebruikersnaam]'";
$result_id_1 = mysql_query($query_1) or die(mysql_error($query_1));
$row = mysql_num_rows($result_id_1);
// ************************** Nog niet gebruikte gebruikersnaam ********************
if($row == 0)
{
$query_2 = "INSERT INTO members (Gebruikersnaam, Wachtwoord, Email) values ('$_POST[gebruikersnaam]', '$_POST[wachtwoord]', '$_POST[email]')";
$result_id_2 = mysql_query($query_2) or die(mysql_query($query_2));
$mailsend = mail($_POST[email], "Uw registratiegegevens bij $site_name", "Hallo $_POST[gebruikersnaam]!\n\nBedankt dat u geregistreerd hebt bij ons!\n\nUw gebruikersnaam: $_POST[gebruikersnaam]\nUw wachtwoord: $_POST[wachtwoord]\n\n\nDe webmaster");
?>
er zou dus daaro ergens een fout moeten zitten.
Gewijzigd op 11/10/2004 22:32:00 door Alfred -
enige manier om dit op te lossen ben nog niet egt een expert...
Rafael:
Je set de var wel, maar laat deze niet uitvoeren... ?
Maw je stelt het op, maar steekt het in een var, ipv de mail te laten verzenden...
Code (php)
1
2
3
2
3
<?
$mailsend = mail($_POST[email], "Uw registratiegegevens bij $site_name", "Hallo $_POST[gebruikersnaam]!\n\nBedankt dat u geregistreerd hebt bij ons!\n\nUw gebruikersnaam: $_POST[gebruikersnaam]\nUw wachtwoord: $_POST[wachtwoord]\n\n\nDe webmaster");
?>
$mailsend = mail($_POST[email], "Uw registratiegegevens bij $site_name", "Hallo $_POST[gebruikersnaam]!\n\nBedankt dat u geregistreerd hebt bij ons!\n\nUw gebruikersnaam: $_POST[gebruikersnaam]\nUw wachtwoord: $_POST[wachtwoord]\n\n\nDe webmaster");
?>
Je set de var wel, maar laat deze niet uitvoeren... ?
Maw je stelt het op, maar steekt het in een var, ipv de mail te laten verzenden...
Nix fout aan rafael ...
Denk aan $res = mysql_query($sql); wordt toch ook uitgevoerd?
Quote:
Nix fout aan rafael ...
Denk aan $res = mysql_query($sql); wordt toch ook uitgevoerd?
Denk aan $res = mysql_query($sql); wordt toch ook uitgevoerd?
Oké dan :-/ Mijn fout... :-/ Sorry voor de verkeerde melding...
Quote:
Example 1. Sending mail.
Nevermind mijn zever... 't is precies mijn dag niet ...
[ZEVER]
Is de volgorde niet:
Naam -> email -> onderwerp -> bericht -> afzender naam -> afzender email?
afzender naam & email zijn blanco, dat kan nog, maar indit geval wordt zijn emailadres niet ingegeven, zijn email wordt ingevoerd als naam, onderwerp als emailadres, bericht als onderwerp... maw mail kan niet aankomen...
Sorry als ik (weer) verkeerd zit :/
[/ZEVER]
Gewijzigd op 11/10/2004 22:45:00 door Alfred -