[PHP] Submit form automatisch

Pagina: 1
Acties:
  • 364 views

Acties:
  • 0 Henk 'm!

  • Storm90
  • Registratie: September 2008
  • Laatst online: 09-09 15:23
Goedendag,

Ik ben nu nog hard bezig met mijn project, de laatste dingetjes, voordat ik het morgen moet opleveren.
Nu heb ik een klein probleem, ik moet een mail verzenden als iemand op een knop "verzenden" klikt, helaas submit hij steeds maar weer het form zodra ik de pagina bezoek en wil hij de mail niet verzenden. Dit is mijn code:

Code form:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
echo 'TEST Je hebt een onjuiste gebruikersnaam of wachtwoord ingevuld.<br>Vul de gegevens juist in en probeer het opnieuw.<br><br>';
echo 'Wachtwoord en/of Gebruikersnaam vergeten? Vul dan hieronder uw e-mailadres in en klik op verzenden, dan worden uw inloggegevens direct naar uw e-mail verzonden';
?>
<form name="verzenden" method="post" class="form1" action="<?php echo($PHP_SELF)?>">
<input type="text" name="email">
<input type="submit" value="verzenden" name="verzenden">
</form>
<?php
$verzonden = $_POST["email"];
if($_SERVER['REQUEST_METHOD'] == 'POST'){
echo "<script type='text/javascript'> alert('U bent succesvol uitgelogd'); </script>";
header('Location: mail.php');

}
?>


Code verzenden mail:
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
<?php
            //vaste gegevens
            $Naar = 'erikvandeven100@hotmail.com';
            include_once('class.phpmailer.php');            
            $mail    = new PHPMailer();
            
            $body =  'Test';

            $subject = 'Testen';//_AANM_ACTIVATIEMAIL;
            
            $body    = eregi_replace("[\]",'',$body);
            $subject = eregi_replace("[\]",'',$subject);
            
            $mail->From     = "info@betterlook.net";//_ALG_SUPADRES;
            $mail->FromName = 'Erik';//_ALG_MAILNAAM;
            
            $mail->Subject = $subject;
            
            $mail->AltBody = html_entity_decode(strip_tags($body)); // optional, comment out and test
            
            $mail->MsgHTML($body);
            
            $mail->AddAddress($Naar);
            
            if(!$mail->Send()) {
              echo 'mislukt';//_AANM_AANGEMELD1;
            } else {
              echo 'gelukt';//_AANM_AANGEMELD2;
            }
?>


Aan de laatste code (Code verzenden mail) kan het niet liggen, want zodra ik deze zonder if else functie activeer, dan mailt hij wel. Hij wil hem alleen niet pakken als deze in een if else staat.
Bovendien geeft hij de alert al zodra ik de pagina bezoek.

Iemand een oplossing?

Alvast vriendelijk bedankt,

Mvg,

Erik

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23:37

Janoz

Moderator Devschuur®

!litemod

Ten eerste. Dat eerste stukje code is behoorlijke onzin. Headers kun je niet versturen wanneer je al content verstuurd hebt. Daarnaast is een header redirect iets waarmee de client al doorgestuurd wordt voordat er uberhaupt iets op het scherm verschijnt.

Over welke if heb je het eigenlijk?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Als regel 11 de uitvoering van het mailen niet tegen houdt zit daar 't probleem lijkt me, niet? Oh wacht; de mail wordt niet verstuurd :P Je eerste blok code inderdaad klinkklare onzin.

Heb je al gedebugged? (Zie Debuggen: Hoe doe ik dat?)

Verder: je weet dat je header() niet kunt/mag gebruiken nadat er al output geschreven is? Ik ben geen PHP kenner maar zoals ik het even zie heb je dan al een form e.d. uitgepoept; daarna een header sturen is op z'n minst ranzig (tenzij ik me ergens vergis uiteraard).
edit:
Ah, Janoz concurs :P _O_

[ Voor 25% gewijzigd door RobIII op 19-01-2009 22:38 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Storm90
  • Registratie: September 2008
  • Laatst online: 09-09 15:23
Klopt hebben jullie gelijk in,
ik dacht, laat ik de pagina eens rechtstreeks openen (zonder include van de index.php)
nu geeft hij wel pas de alert nadat ik op de knop verzenden heb gedrukt en verzend hij ook de mail als ik gewoon de code in de if statement zet en niet de header...,

Dit is mijn index.php code, hier zit het ergens in, zoals je ziet wordt de pagina op regel 230 geinclude :
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
<?php
session_start();
include('include.php');

if (($_SESSION['soort'] == 'PZ') || ($_SESSION['soort'] == 'AH')){
$stylesheet = 'stylesheet2.css';
}else{
$stylesheet = 'stylesheet.css';
}

switch($_GET["p"]) {
    case "afmeldingen":
      if (isset($_SESSION['soort'])){
        if ($_SESSION['soort'] == 'PZ'){
          $IncludePage = "Personeelszaken/Afmeldingen.php";
        }
        if ($_SESSION['soort'] == 'AH'){
          $IncludePage = "Afdelingshoofd/Afmeldingen.php";
        }
        if ($_SESSION['soort'] == 'WN'){
          $IncludePage = "Standaard/Afmeldingen.php";
        }
        if ($_SESSION['soort'] == ''){
          $IncludePage = "Standaard/Afmeldingen.php";
        }
      }else{
      $IncludePage = "Standaard/Afmeldingen.php";
      }
      break;
    case "nieuws":
      $IncludePage = "Nieuws.php";
      break;
    case "profiel":
      if (isset($_SESSION['soort'])){
        if ($_SESSION['soort'] == 'PZ'){
          $IncludePage = "Personeelszaken/Profiel.php";
        }
        if ($_SESSION['soort'] == 'AH'){
          $IncludePage = "Afdelingshoofd/Profiel.php";
        }
        if ($_SESSION['soort'] == 'WN'){
          $IncludePage = "Standaard/Profiel.php";
        }
        if ($_SESSION['soort'] == ''){
          $IncludePage = "Standaard/Profiel.php";
        }
      }else{
      $IncludePage = "Standaard/Profiel.php";
      }
      break;
    case "bekijkvoorraad":
      $IncludePage = "Voorraad/medicijnen.php";
      break;
    case "voorraadbeheer":
      $IncludePage = "Voorraad/showmedicijnen.php";
      break;
    default:    
      $IncludePage = "Home.php";
      break;
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ziekmeldingen</title>
<link href="http://<?=$Domein?>/<?=$stylesheet?>" rel="stylesheet" type="text/css">

<script type="text/javascript">
var xmlHttp

function toonTip(str){
    xmlHttp=MaakXmlHttpObject()
    if (xmlHttp==null) return;
    var url="http://localhost/Ziekmeldingsysteem/Voorraad/medicijnen.php" + "?q=" + str;
    xmlHttp.onreadystatechange=StatusGewijzigd;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
} 

function StatusGewijzigd() { 
    if (xmlHttp.readyState==4) VerwerkJSON();
}

function MaakXmlHttpObject() {
    xmlHttp = null;
    if (window.ActiveXObject)       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    else if (window.XMLHttpRequest) xmlHttp = new XMLHttpRequest();
    else alert ("Your browser does not support AJAX!");
    return xmlHttp;
}

function VerwerkJSON(){
    var data = eval('(' + xmlHttp.responseText + ')');
    var txt = "<table border='1'><tr><td>Bestelnummer</td><td>Artikelnaam</td><td>Bekijken</td></tr>";
    for (var i=0;i<data.length;i++)
    {
        txt += " <tr><td> " +data[i].bestellnum+"</td><td>"+data[i].artikelname+"</td><td><a href='?bekijken="+data[i].bestellnum+"'>bekijken</a></td></tr>";
    }
    txt += "</table>";
    document.getElementById("tekstTip").innerHTML=txt;
}

</script>

</head>

<body>
<div id="container">
  <div id="banner">
    <div id="HeaderLinks"></div>
    <div id="HeaderRechts">
    <h1>Ziekmeldingen</h1>
    <h2>Het ziekmeldingensysteem van Ziekenhuis MiddenPolder te Amersfoort</h2>
    </div>
  </div>
  <div id="center">
    <div id="LinkerKolom">
      <ul id="nav">
        <li><a href="http://<?=$Domein?>/home/">&raquo; Home</a></li>
        <li><a href="http://<?=$Domein?>/nieuws/">&raquo; Nieuws</a></li>
        <li><a href="http://<?=$Domein?>/afmeldingen/">&raquo; Afmeldingen</a></li>
        <li><a href="http://<?=$Domein?>/profiel/">&raquo; Profiel</a></li>
        <?php
        if ($_SESSION['soort'] == 'PZ'){?>
        <li><a href="http://<?=$Domein?>/voorraadbeheer/">&raquo; Voorraad</a></li>
        <?php 
        }
        ?>
      </ul>
      <div id="LinkerKolomBottom">
            <?php
        if ($IncludePage == "Voorraad/showmedicijnen.php"){?>
        <a href="http://<?=$Domein?>/voorraadbeheer/">&raquo; Voorraad</a><br>
        <a href="http://<?=$Domein?>/voorraadbeheer/">&raquo; Voorraad</a>
        <?php
        
        }?>
      <h1>Inloggen</h1>
      <?php
      $sessionID = session_id();
      $username = $_POST["username"];
      $password = $_POST["password"];
                        
      if (isset($_POST['logout'])){
        session_unset();
        session_destroy();
        $_SESSION = array();
                        
        if (!isset($_SESSION['gebr'])){
          echo "<script type='text/javascript'> alert('U bent succesvol uitgelogd'); </script>";
        }else{
          echo "Er is iets fout gegaan, probeer nogmaals uit te loggen"; 
        }
      }
                        
      if (isset($_SESSION['gebr'])){
        echo "<form name='form2' class='inlog' method='POST' action='".$PHP_SELF."'>";
        echo "<table id='ingelogd'><tr><td>";
        echo "Welkom <font style='color:#339933'>".$_SESSION['username']."</font>"; 
        echo "</td></tr>";
        echo "<tr><td>";
        echo "<a href='javascript:document.form2.submit()'>&raquo; Uitloggen</a>";
        echo "<input type='hidden' name='logout' />";
        echo "</td></tr></table>";
        echo "</form>";
      }else{
                        
      if (isset($_POST['login'])){
        $query = ("SELECT DISTINCT * FROM care_person INNER JOIN care_personell ON care_person.pid = care_personell.pid WHERE care_personell.pid = '".$username."' AND care_person.pw_ziekmelding = '".$password."'"); 
        $resultaat = mysql_query($query) or die ("FOUT: " .mysql_error()); // query uitvoeren
        $aantalrecords = mysql_num_rows($resultaat);
                        
        if ($aantalrecords == 1){
          $tst = ("SELECT DISTINCT * FROM care_person INNER JOIN care_personell ON care_person.pid = care_personell.pid WHERE care_personell.pid = '".$username."'");
          $resultaat2 = mysql_query($tst) or die ("FOUT: " .mysql_error());
          while ($record2 = mysql_fetch_object($resultaat2)){
            $_SESSION['gebr'] = $record2->pid; // registreer de variabele 
            $_SESSION['username'] = $record2->name_first;
            $_SESSION['record2pw'] = $record2->pw_ziekmelding; 
            $_SESSION['soort'] = $record2->soort_ziekmelding;
            if (($_SESSION['soort'] == 'PZ') || ($_SESSION['soort'] == 'AH')){
            $stylesheet = 'stylesheet2.css';
            }
          }
          echo "<form name='form2' class='inlog' method='POST' action='".$PHP_SELF."'>";
          echo "<table id='ingelogd'><tr><td>";
          echo "Welkom <font style='color:#339933'>".$_SESSION['username']."</font>";   
          echo "</td></tr>";
          echo "<tr><td>";
          echo "<a href='javascript:document.form2.submit()'>&raquo; Uitloggen</a>";
          echo "<input type='hidden' name='logout' />";
          echo "</td></tr></table>";
          echo "</form>";
          echo "<script type='text/javascript'>window.location.href='http://localhost/Ziekmeldingsysteem/afmeldingen/';</script>";
          }else{
          $IncludePage = 'verkeerd.php';
            echo "<form name='form' method='POST' action='".$PHP_SELF."'>";
            echo "<table><tr><td align='left'><h2>Username:</h2></td></tr><tr><td>";

            echo "<input class='test' type='text' name='username' size='15'>";
            echo "</td></tr><tr><td class='inlog' align='left'><h2>Password:</h2></td></tr><tr><td>";
            echo "<input class='test' type='password' name='password' size='15'></td>";
            echo "</tr><tr><td colspan='2'>";
            echo "<input class='button' type='submit' name='login' value='Inloggen' />";
            echo "<input type='hidden' name='login' />";
            echo "</td></tr></table></form>";
          }
        }else{
          echo "<form name='form' method='POST' action='".$PHP_SELF."'>";
          echo "<table><tr><td align='left'><h2>Username:</h2></td></tr><tr><td>";
          echo "<input class='test' type='text' name='username' size='15'>";
          echo "</td></tr><tr><td class='inlog' align='left'><h2>Password:</h2></td></tr><tr><td>";
          echo "<input class='test' type='password' name='password' size='15'></td>";
          echo "</tr><tr><td colspan='2'>";
          echo "<input class='button' type='submit' name='login' value='Inloggen' />";
          echo "<input type='hidden' name='login' />";
          echo "</td></tr></table></form>";
        }
      }
      ?>
      </div>
    </div>
    <div id="RechterKolom">
    <?php
    if ((isset($_SESSION['gebr'])) && ($_SESSION['record2pw'] == "")){
    require_once('leegpassword.php');
    }else{
    require($IncludePage);
    }
    ?>
    </div>
    <div id="clear">
    </div>
  </div>
</div>
<div id="copyright"> &copy; 2008 MiddenPolder. Design gemaakt door Comp-U-Service.</div>
</body>
<head>
<?php
if (($_SESSION['soort'] == 'PZ') || ($_SESSION['soort'] == 'AH')){
$stylesheet = 'stylesheet2.css';
}else{
$stylesheet = 'stylesheet.css';
}?>
<link href="http://<?=$Domein?>/<?=$stylesheet?>" rel="stylesheet" type="text/css">

</head>
</html>

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
:D We zijn hier niet van plan 250 regels code door te gaan spitten en debuggen :X (Zie quickfix en Kan iemand even...?)

Nee, dan zien we liever een uitgeklede test-case die je tot de bare-essentials beperkt hebt. We zijn hier niet om je handje vast te houden en met wat debuggen moet je hier prima zelf uit kunnen komen.

[ Voor 33% gewijzigd door RobIII op 19-01-2009 22:45 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Dit topic is gesloten.