Mail script met oneindig veel mailtjes, hoe kan ik dit oplossen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jerry php

Jerry php

18/01/2013 14:23:56
Quote Anchor link
Mensen,

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?
 
PHP hulp

PHP hulp

24/11/2020 13:11:20
 
- Marco -

- Marco -

18/01/2013 14:37:44
Quote Anchor link
Stuur het naar een andere pagina door en voer daar de mail uit en zet er een if omheen die checed of het gepost is? :)

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/
 
Reshad F

Reshad F

18/01/2013 14:37:55
Quote Anchor link
Worden ze ook meerdere malen correct gestuurd of enkel lege mailtjes? toon is wat code :)
 
Jerry php

Jerry php

18/01/2013 14:39:02
Quote Anchor link
Maar het is een intern mail systeem, zeg maar gewoon een berichten systeem bijvoorbeeld op een spelletje.

Toevoeging op 18/01/2013 14:40:29:

Ze worden inderdaad allemaal correct verstuurd..

Dit is de code hieronder:

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
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>
 
Dennis meijer

dennis meijer

18/01/2013 16:04:22
Quote Anchor link
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.
 
Jerry php

Jerry php

20/01/2013 20:11:51
Quote Anchor link
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.
 
Jack maessen

jack maessen

21/01/2013 01:15:58
Quote Anchor link
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
<?php
session_start();

define("TIMEOUT", 10); //10 sec

//check de timeout

if (isset($_SESSION['expire'])) {
    if ($_SESSION['expire']-time()>TIMEOUT) {
        unset($_SESSION['expire']);
    }  
}


// na 10 sec submit weer toegestaan
if (!isset($_SESSION['expire'])) {
    $_SESSION['expire']=time();

    //jouw  submit code
}
?>
Gewijzigd op 21/01/2013 01:49:40 door jack maessen
 



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.