Mail script met oneindig veel mailtjes, hoe kan ik dit oplossen?
ik ben een mailscirpt aan het maken maar als ik het mailtje wilt versturen, en ik druk meerdere malen op de verzend knop dan worden de mailtjes ook meerdere malen verstuurd. Hoe kan ik dit tegen gaan? Ik heb het al geprobeerd met een cookie, door een cookie te setten als ik de query uitvoer en dan op 10 seconden zetten, en dan te controleren of hij geset is. Maar dit werkte helaas niet.
Hoe kan ik dit oplossen?
Btw ik zou zoiezo PHPMailer gebruiken, dit gebruik ik zelf ook en makkelijk om te installeren EN de mails blijven uit de spam folder bij hotmail etc :)
http://phpmailer.worxware.com/
Worden ze ook meerdere malen correct gestuurd of enkel lege mailtjes? toon is wat code :)
Toevoeging op 18/01/2013 14:40:29:
Ze worden inderdaad allemaal correct verstuurd..
Dit is de code hieronder:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
session_start();
$sessionLogin = $_SESSION['login'];
$sessionId = $_SESSION['id'];
$sessionUser = $_SESSION['username'];
date_default_timezone_set('Europe/Brussels');
if($sessionLogin != true)
{
echo "<meta http-equiv='refresh' content='0;URL=index.php' />";
}
else
{
?>
<doctype html>
<html>
<head>
<script src="ckeditor/ckeditor.js"></script>
<link href='http://fonts.googleapis.com/css?family=Nunito:300' rel='stylesheet' type='text/css'>
<link href='style.css' rel='stylesheet' type='text/css'>
</head>
<body>
<?php
require_once 'config.php';
if(isset($_POST['submit']))
{
$username = $_POST['username'];
$queryCheck = mysql_query("SELECT * FROM users WHERE username='".$username."'");
if(mysql_num_rows($queryCheck) > 0)
{
if($username == $sessionUser)
{
echo "U kunt geen bericht naar uzelf sturen.";
}
else
{
if($rowUser = mysql_fetch_assoc($queryCheck))
{
$ontvangerId = $rowUser['user_id'];
}
$datum = date("d - m - y || H:i");
$onderwerp = $_POST['onderwerp'];
$bericht = $_POST['editor1'];
$queryMessage = mysql_query("INSERT INTO bericht(verzender_id, ontvanger_id, username, onderwerp, text, datum) VALUES(".$sessionId.", ".$ontvangerId.", '".$username."', '".$onderwerp."', '".$bericht."', '".$datum."')");
}
}
else
{
echo "De gebruikersnaam van de ontvanger bestaat niet.<br/>";
}
}
?>
<a href="inbox.php">Terug naar inbox</a><br/><br/>
<form action="newMes.php" method="post">
<table>
<tr><td><b>Naam van ontvanger: </b></td><td><input type="text" name="username"/></td></tr>
<tr><td><b>Onderwerp: </b></td><td><input type="text" name="onderwerp"/></td></tr>
<tr><td><b>Bericht: </b></td><td><textarea class="ckeditor" cols="80" id="editor1" name="editor1" rows="10"></textarea></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="Verstuur" /></td></tr>
</table>
</form>
<?php
}
?>
</body>
</html>
session_start();
$sessionLogin = $_SESSION['login'];
$sessionId = $_SESSION['id'];
$sessionUser = $_SESSION['username'];
date_default_timezone_set('Europe/Brussels');
if($sessionLogin != true)
{
echo "<meta http-equiv='refresh' content='0;URL=index.php' />";
}
else
{
?>
<doctype html>
<html>
<head>
<script src="ckeditor/ckeditor.js"></script>
<link href='http://fonts.googleapis.com/css?family=Nunito:300' rel='stylesheet' type='text/css'>
<link href='style.css' rel='stylesheet' type='text/css'>
</head>
<body>
<?php
require_once 'config.php';
if(isset($_POST['submit']))
{
$username = $_POST['username'];
$queryCheck = mysql_query("SELECT * FROM users WHERE username='".$username."'");
if(mysql_num_rows($queryCheck) > 0)
{
if($username == $sessionUser)
{
echo "U kunt geen bericht naar uzelf sturen.";
}
else
{
if($rowUser = mysql_fetch_assoc($queryCheck))
{
$ontvangerId = $rowUser['user_id'];
}
$datum = date("d - m - y || H:i");
$onderwerp = $_POST['onderwerp'];
$bericht = $_POST['editor1'];
$queryMessage = mysql_query("INSERT INTO bericht(verzender_id, ontvanger_id, username, onderwerp, text, datum) VALUES(".$sessionId.", ".$ontvangerId.", '".$username."', '".$onderwerp."', '".$bericht."', '".$datum."')");
}
}
else
{
echo "De gebruikersnaam van de ontvanger bestaat niet.<br/>";
}
}
?>
<a href="inbox.php">Terug naar inbox</a><br/><br/>
<form action="newMes.php" method="post">
<table>
<tr><td><b>Naam van ontvanger: </b></td><td><input type="text" name="username"/></td></tr>
<tr><td><b>Onderwerp: </b></td><td><input type="text" name="onderwerp"/></td></tr>
<tr><td><b>Bericht: </b></td><td><textarea class="ckeditor" cols="80" id="editor1" name="editor1" rows="10"></textarea></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="Verstuur" /></td></tr>
</table>
</form>
<?php
}
?>
</body>
</html>
Je zou, na het versturen van een mail een $_SESSION kunnen aanmaken met de tijd erin. Bij het opnieuw willen versturen controleer je of er bijv. 10 seconden voorbij zijn gegaan.
En hoe kan ik de sessie met een tijd maken? Want dat heb ik nog nooit gedaan, alleen een sessie maken, maar geen tijd eraan vast. En op internet heb ik dat gezocht maar begrijp het niet zo goed.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Gewijzigd op 21/01/2013 01:49:40 door jack maessen