mail script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Stef Segers

Stef Segers

02/01/2008 15:20:00
Quote Anchor link
Hey allen,

Ik heb een formulier voor een nabestelling. ik wil deze graag versturen.
Ik heb een verstuur script gevonden welke gebaseerd is op de vorige website maar krijg m niet aan de praat. Ik heb het forumlier wat aangepast misschien dat daar ergens de fout in zit?

Hier mijn NIEUWE forumlier:

<h1>Nabestellen</h1>
<form action="'XXXXX'" method="post" name="nabestelling" id="nabestelling">
<p><h2>Reportagenummer:</h2>
<input name="reportagenummer" type="text" id="reportagenummer"></p>
<h2>Foto's en formaat</h2>
<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td>aantal</td>
<td>fotonummer</td>
<td>grootte</td>
<td>mat/glans</td>
</tr>
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
<?php
for ($i=1; $i<=10; $i++)
{

  echo '
            <tr>
            <td><input name="aantal type="text" size="2" /></td>
            <td><input name="fotonummer type="text" size="10" /></td>
            <td><select name="maat">
            <option value="10x15" selected>10x15cm &euro; 3,50</option>
            <option value="15x20">15x20cm &euro; 7,00</option>
            <option value="20x25">20x25cm &euro; 12,50</option>
            <option value="20x30">20x30cm &euro; 15,00</option>
            <option value="30x40">30x40cm &euro; 25,00</option>
            </select></td>
            <td>
            <input type="radio" value="mat" checked/>mat
            <input type="radio" value="glans"/>glans</td>
          </tr>
  '
;
}

?>

</table>

</div>
<div id="content_right">
<table border="0" cellpadding="0" cellspacing="1">
<tr><td colspan="2"><b>Adresgegevens:</h2></b></tr>
<tr><td width="25%">Naam</td>
<td width="75%"><input name="naam" type="text" id="naam"></td>
</tr>
<tr>
<td width="25%">Adres</td>
<td width="75%"><input name="adres" type="text" id="adres"></td>
</tr>
<tr>
<td width="25%">Postcode</td>
<td width="75%"><input name="postcode" type="text" id="postcode"></td>
</tr>
<tr>
<td width="25%">Plaatsnaam</td>
<td width="75%"><input name="plaatsnaam" type="text" id="plaatsnaam"></td>
</tr>
<tr>
<td width="25%">&nbsp;</td>
<td width="75%">&nbsp;</td>
</tr>
<tr>
<td width="25%">Telefoon</td>
<td width="75%"><input name="telefoon" type="text" id="telefoon"></td>
</tr>
<tr>
<td width="25%">Fax</td>
<td width="75%"><input name="fax" type="text" id="fax"></td>
</tr>
<tr>
<td width="25%">E-mail</td>
<td width="75%"><input name="emailadres" type="text" id="emailadres"></td>
</tr>
<tr>
<td width="25%">&nbsp;</td>
<td width="75%">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="kop">Opmerkingen</td>
</tr>
<tr>
<td colspan="2"><textarea name="opmerkingen" rows="5" style="width: 300px" id="opmerkingen"></textarea></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td colspan="2"><input name="Submit" type="submit" value="Nabestelling verzenden"></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td colspan="2">NB: Onvolledige of foutief ingevulde formulieren
worden niet in behandeling genomen. </td>
</tr>
</table></td>
</form>


Zoals je ziet heb ik een loop gemaakt van de <TR> omdat ik dit gemakkelijk kan aanpassen als ik wil.


Hier het script dat ik niet aan de praat krijg:

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
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
<?
if($verzonden==1){
    $p_content='<span class="kop">Uw nabestelling is verzonden.</span>';
    }

else if($Submit=="Nabestelling verzenden"){

$MailBody = '
Nabestelling:

Reportagenummer: '
.$reportagenummer.'

Naam:    '
.strtoupper($naam).'
Adres:    '
.strtoupper($adres).', '.strtoupper($postcode).' '.strtoupper($plaatsnaam).'
Tel:    '
.$telefoon.'
Fax:    '
.$fax.'
Email:    '
.$emailadres.'

Opmerkingen:
'
.$opmerkingen.'

Bestelling:
'
;

$i = 0;
$counter = 0;
foreach($aantal as $key=>$val)
{

    if(trim($val!=''))
    {

        $MailBody .= '----------------------------------------------
    Fotonummer:    '
.$fotonummer[$key].'
    Mat/glans:    '
.$mg[$key].'
    Maat:        '
.$maat[$key].'
    Aantal:        '
.$val.'
'
;
    $i++;
    $counter += $val;
    }
}


$MailBody .= '
----------------------------------------------
'
;

$headers = 'From: "XXX" <[email protected]>';
  
mail('[email protected]', 'Online Nabestelling', stripslashes($MailBody), $headers);

header('Location: '.basename($PHP_SELF).'?p='.$p.'&verzonden=1');

}
else{
$p_content =  '
<form action="'
.basename($PHP_SELF).'" method="post" name="nabestelling" id="nabestelling">
<input name="p" type="hidden" value="'
.$p.'">
    <table border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td valign="top"><table width="300" border="0" cellpadding="0" cellspacing="0">
            <tr>
              <td class="kop">Reportagenummer:</td>
            </tr>
            <tr>
              <td><input name="reportagenummer" type="text" class="100proc" id="reportagenummer"></td>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
          </table></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>




      <tr>
        <td valign="top"><table width="200" border="0" cellpadding="0" cellspacing="0">
            <tr>
              <td class="kop">Prijzen per stuk:</td>
            </tr>
            <tr>
              <td>10 x 15cm</td><td>&euro; 3,50</td>
            </tr>
            <tr>
              <td>15 x 20cm</td><td>&euro; 7,00</td>
            </tr>
            <tr>
              <td>20 x 25cm</td><td>&euro; 12,50</td>
            </tr>
            <tr>
              <td>20 x 30cm</td><td>&euro; 15,00</td>
            </tr>
            <tr>
              <td>30 x 40cm</td><td>&euro; 43,50</td>
            </tr>
          </table></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>



      <tr>
        <td valign="top" class="kop">Foto\'s en formaat<br>
        
        
<table border="0" cellpadding="0" cellspacing="4">
  <tr>
    <td>aantal</td>
    <td>fotonummer</td>
    <td>grootte</td>
    <td>mat/glans</td>
  </tr>'
;
  
  for($i=1;$i<=20;$i++){
  $p_content .= '
  <tr>
    <td><input name="aantal['
.$i.']" type="text" size="3" /></td>
    <td><input name="fotonummer['
.$i.']" type="text" size="15" /></td>
    <td><select name="maat['
.$i.']">
    <option value="10x15" selected>10 x 15cm</option>
    <option value="15x20">15 x 20cm</option>
    <option value="20x25">20 x 25cm</option>
    <option value="20x30">20 x 30cm</option>
    <option value="30x40">30 x 40cm</option>
    </select></td>
    <td>
    <label for="mgm'
.$i.'"><input type="radio" name="mg['.$i.']" id="mgm'.$i.'" value="mat" checked/>mat</label>
    <label for="mgg'
.$i.'"><input type="radio" name="mg['.$i.']" id="mgg'.$i.'" value="glans"/>glans</label></td>
  </tr>'
;
  }

  
$p_content .= '          </table></td>
      </tr>
      <tr>
        <td valign="top">&nbsp;</td>
      </tr>
      <tr>
        <td valign="top"><table border="0" cellpadding="0" cellspacing="1">
            <tr>
              <td colspan="2" class="kop">Adresgegevens:</td>
            </tr>
            <tr>
              <td width="25%">Naam</td>
              <td width="75%">
                <input name="naam" type="text" class="100proc" id="naam"></td>
            </tr>
            <tr>
              <td width="25%">Adres</td>
              <td width="75%">
                <input name="adres" type="text" class="100proc" id="adres"></td>
            </tr>
            <tr>
              <td width="25%">Postcode</td>
              <td width="75%">
                <input name="postcode" type="text" class="100proc" id="postcode"></td>
            </tr>
            <tr>
              <td width="25%">Plaatsnaam</td>
              <td width="75%">
                <input name="plaatsnaam" type="text" class="100proc" id="plaatsnaam"></td>
            </tr>
            <tr>
              <td width="25%">&nbsp;</td>
              <td width="75%">&nbsp;</td>
            </tr>
            <tr>
              <td width="25%">Telefoon</td>
              <td width="75%">
                <input name="telefoon" type="text" class="100proc" id="telefoon"></td>
            </tr>
            <tr>
              <td width="25%">Fax</td>
              <td width="75%">
                <input name="fax" type="text" class="100proc" id="fax"></td>
            </tr>
            <tr>
              <td width="25%">E-mail</td>
              <td width="75%">
                <input name="emailadres" type="text" class="100proc" id="emailadres"></td>
            </tr>
            <tr>
              <td width="25%">&nbsp;</td>
              <td width="75%">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="2" class="kop">Opmerkingen</td>
            </tr>
            <tr>
              <td colspan="2"> <textarea name="opmerkingen" rows="10" style="width: 300px" id="opmerkingen"></textarea></td>
            </tr>
            <tr>
              <td colspan="2">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="2"><input name="Submit" type="submit" value="Nabestelling verzenden"></td>
            </tr>
            <tr>
              <td colspan="2">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="2">NB: Onvolledige of foutief ingevulde formulieren
                worden niet in behandeling genomen. </td>
            </tr>
          </table></td>
      </tr>
    </table>
    </form>'
;
}

echo $HTML_pagina_start.$p_content.$HTML_pagina_end;
?>


Zoals je ziet zit ook hier het formulier in verwerkt.

De error is Parse error of Unddefined variable:

Iemand enig idee of een beter idee?

Stef
 
PHP hulp

PHP hulp

26/04/2024 06:56:50
 

02/01/2008 15:24:00
Quote Anchor link
Bitte alles zwischen und tags!
Quote:
Parse error of Unddefined variable:
is natuurlijk niet de hele fout.
 
Stef Segers

Stef Segers

02/01/2008 15:26:00
Quote Anchor link
Sorry,

Als ik dit huidige script plaatst en uitvoer krijg ik

Notice: Undefined variable: verzonden in F:\wwwroot\stefan\fransnijssen\test.php on line 2

Notice: Undefined variable: Submit in F:\wwwroot\stefan\fransnijssen\test.php on line 5

Notice: Undefined variable: p in F:\wwwroot\stefan\fransnijssen\test.php on line 54

Notice: Undefined variable: HTML_pagina_start in F:\wwwroot\stefan\fransnijssen\test.php on line 211

Notice: Undefined variable: HTML_pagina_end in F:\wwwroot\stefan\fransnijssen\test.php on line 211


Ik wilde eigenlijk uit het oude/huidige script het mail gedeelte halen en verwerken in mijn nieuwe forumlier. Maar met deze errors kom ik niet verder
 
- SanThe -

- SanThe -

02/01/2008 15:42:00
Quote Anchor link
Die vars bestaan niet.
 
Stef Segers

Stef Segers

02/01/2008 15:55:00
Quote Anchor link
Dat vermoede had ik al toen ik de foutmelding las....

Wat ik wil is dus dit script verwerken in mijn script. Wat heb ik nog meer nodig dan dit?
 
Frank -

Frank -

02/01/2008 15:59:00
Quote Anchor link
$Submit mag worden: $_POST['Submit']

En zo ga je ook de rest aanpassen aan de gewenste situatie. POST voor POST-formulieren, GET voor GET-formulieren en data uit de url, COOKIE voor cookies, etc.

Zie de php-handleiding, die is niet voor niets geschreven.
 
Stef Segers

Stef Segers

03/01/2008 08:13:00
Quote Anchor link
Hey allen,

Ik denk dat ik er al uit ben. Ik werk zelf met versie php 4.3.7 en op de server van de klant staat versie 4.4.7
De grap is dat hetzelfde script WEL werk op deze nieuwe versie!!!

Er jammer.... het upgraden op mijn IIS6 naar 4.4.7 is me niet gelukt op 1 of andere manier.....
 
Stef Segers

Stef Segers

03/01/2008 09:21:00
Quote Anchor link
Ik heb inmiddels het originele script overgenomen en in de nieuwe stijl aangepast. Maar wat ik niet voor elkaar krijg is dat wnneer ik een forumlier compleet heb ingevuld en op de SUBMIT klik hij daadwerkelijk verder gaat met het uitvoeren van het script.
www.fransnijssen.nl/test.php

Iemand enig idee waar dit aan kan liggen?
Hier is de code:

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
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
<?
if($verzonden==1){
    $p_content='<span>Uw nabestelling is verzonden.</span>';
    }

else if($Submit=="Nabestelling verzenden"){

$MailBody = '
Nabestelling:

Reportagenummer: '
.$reportagenummer.'

Naam:    '
.strtoupper($naam).'
Adres:    '
.strtoupper($adres).', '.strtoupper($postcode).' '.strtoupper($plaatsnaam).'
Tel:    '
.$telefoon.'
Fax:    '
.$fax.'
Email:    '
.$emailadres.'

Opmerkingen:
'
.$opmerkingen.'

Bestelling:
'
;

$i = 0;
$counter = 0;
foreach($aantal as $key=>$val)
{

    if(trim($val!=''))
    {

        $MailBody .= '----------------------------------------------
    Fotonummer:    '
.$fotonummer[$key].'
    Mat/glans:    '
.$mg[$key].'
    Maat:        '
.$maat[$key].'
    Aantal:        '
.$val.'
'
;
    $i++;
    $counter += $val;
    }
}


$MailBody .= '
----------------------------------------------
'
;

$headers = 'From: "Frans Nijssen Fotografie" <[email protected]>';
  
mail('[email protected]', 'Online Nabestelling', stripslashes($MailBody), $headers);

header('Location: '.basename($PHP_SELF).'?p='.$p.'&verzonden=1');

}
else{
$p_content =  '
<div id="content_left">
<form action="'
.basename($PHP_SELF).'" method="post" name="nabestelling" id="nabestelling">
<input name="p" type="hidden" value="'
.$p.'">
<h2>Reportagenummer: <input name="reportagenummer" type="text" id="reportagenummer"></h2>
<h2>Foto\'s en formaat</h2>
<table border="0" cellpadding="0" cellspacing="4">
  <tr>
    <td>aantal</td>
    <td>fotonummer</td>
    <td>grootte</td>
    <td>mat/glans</td>
  </tr>'
;
  
  for($i=1;$i<=10;$i++){
  $p_content .= '
  <tr>
    <td><input name="aantal['
.$i.']" type="text" size="2" /></td>
    <td><input name="fotonummer['
.$i.']" type="text" size="10" /></td>
    <td><select name="maat['
.$i.']">
    <option value="10x15" selected>10x15cm &euro; 3,50</option>
    <option value="15x20">15x20cm &euro; 7,00</option>
    <option value="20x25">20x25cm &euro; 12,50</option>
    <option value="20x30">20x30cm &euro; 15,00</option>
    <option value="30x40">30x40cm &euro; 25,00</option>
    </select></td>
    <td>
    <label for="mgm'
.$i.'"><input type="radio" name="mg['.$i.']" id="mgm'.$i.'" value="mat" checked/>mat</label>
    <label for="mgg'
.$i.'"><input type="radio" name="mg['.$i.']" id="mgg'.$i.'" value="glans"/>glans</label></td>
  </tr>'
;
  }

  
$p_content .= '</table></div>
      <div id="content_right">
          <table border="0" cellpadding="0" cellspacing="1">
            <tr>
              <td colspan="2"><h2>Adresgegevens:</h2></td>
            </tr>
            <tr>
              <td width="25%">Naam</td>
              <td width="75%">
                <input name="naam" type="text" id="naam"></td>
            </tr>
            <tr>
              <td width="25%">Adres</td>
              <td width="75%">
                <input name="adres" type="text" id="adres"></td>
            </tr>
            <tr>
              <td width="25%">Postcode</td>
              <td width="75%">
                <input name="postcode" type="text" id="postcode"></td>
            </tr>
            <tr>
              <td width="25%">Plaatsnaam</td>
              <td width="75%">
                <input name="plaatsnaam" type="text" id="plaatsnaam"></td>
            </tr>
            <tr>
              <td width="25%">&nbsp;</td>
              <td width="75%">&nbsp;</td>
            </tr>
            <tr>
              <td width="25%">Telefoon</td>
              <td width="75%">
                <input name="telefoon" type="text" id="telefoon"></td>
            </tr>
            <tr>
              <td width="25%">Fax</td>
              <td width="75%">
                <input name="fax" type="text" id="fax"></td>
            </tr>
            <tr>
              <td width="25%">E-mail</td>
              <td width="75%">
                <input name="emailadres" type="text" id="emailadres"></td>
            </tr>
            <tr>
              <td width="25%">&nbsp;</td>
              <td width="75%">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="2">Opmerkingen</td>
            </tr>
            <tr>
              <td colspan="2"> <textarea name="opmerkingen" rows="4" style="width: 350px" id="opmerkingen"></textarea></td>
            </tr>
            <tr>
              <td colspan="2">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="2"><input name="Submit" type="submit" value="Nabestelling verzenden"></td>
            </tr>
            <tr>
              <td colspan="2">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="2">NB: Onvolledige of foutief ingevulde formulieren
                worden niet in behandeling genomen. </td>
            </tr>
          </table>
    </form>
    </div>'
;
}


$HTML_pagina_start = '<!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=iso-8859-1" />
<title>Frans Nijssen Fotografie - Nabestellen</title>
<link type="text/css" rel="stylesheet" href="http://frans.stefsegers.nl/css/fransstyle.css" />
</head>

<body>
<div id="horizon">
<div id="wrapper">
    <div id="logo">
        <span>Frans Nijssen Fotografie</span>
    </div>
    
    <div id="menu">
        <ul>
            <li><a href="/index.html">home</a></li>
            <li><a href="/portfolio/bruiloften.php">bruiloften</a></li>
            <li><a href="/portfolio/studio.php">studio</a></li>
            <li><a href="/portfolio/bedrijfs.php">in bedrijf</a></li>
            <li><a href="/slideshows.php">slideshows</a></li>
            <li><a href="/boeken.php">fotoboeken</a></li>
            <li><a href="/links.html">links</a></li>
            <li><a href="/contact.html">contact</a></li>
            <li id="current"><a href="/nabestellen.php">nabestellen</a></li>
        </ul>
    </div>
    <div id="menuline">&nbsp;</div>
    <div id="content">
'
;
$HTML_pagina_end = '
    </div>
    <div id="footer">
        Footer info
    </div>
    
</div>
</div>
</body>
</html>
'
;
echo $HTML_pagina_start.$p_content.$HTML_pagina_end;
?>
Gewijzigd op 01/01/1970 01:00:00 door Stef Segers
 
- SanThe -

- SanThe -

03/01/2008 09:31:00
Quote Anchor link
Niet Bumpen.
Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.

Edit: Zet dit bovenin je script.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Joep

Joep

03/01/2008 09:50:00
Quote Anchor link
Sorry, maar probeer iets met de tips te doen die je hierbovenin krijgt, deze code is hopeloos verouderd en nu je er toch mee bezig ben is het een kwestie van seconden om dit script iig php5 waardig alvast te maken..

Kijk naar de opmerking van Frank, reviseer je code en breng nieuwe problemen, alleen op die manier kunnen mensen je helpen
 
Stef Segers

Stef Segers

03/01/2008 10:33:00
Quote Anchor link
Ik ben echt een newbie met PHP dus probeer zo veel mogelijk tips van jullie uit.
De server waarop dit script gaat draaien heeft php 4.4.7 vandaar misschien de verouderde code?

Hier zijn de foutmeldingen van de pagina.

Notice: Undefined variable: verzonden in /webdocs/users/fransnijssen/httpdocs/fransnijssen.nl/www-docs/test.php on line 8

Notice: Undefined variable: Submit in /webdocs/users/fransnijssen/httpdocs/fransnijssen.nl/www-docs/test.php on line 11

Notice: Undefined variable: PHP_SELF in /webdocs/users/fransnijssen/httpdocs/fransnijssen.nl/www-docs/test.php on line 60

Notice: Undefined variable: p in /webdocs/users/fransnijssen/httpdocs/fransnijssen.nl/www-docs/test.php on line 61


Wel grappig dat het originele document wel werkt ... ik heb slechts de vormgeving aangepast....

Stef
 
Joep

Joep

03/01/2008 10:37:00
Quote Anchor link
pgFrank schreef op 02.01.2008 15:59:
$Submit mag worden: $_POST['Submit']

En zo ga je ook de rest aanpassen aan de gewenste situatie. POST voor POST-formulieren, GET voor GET-formulieren en data uit de url, COOKIE voor cookies, etc.

Zie de php-handleiding, die is niet voor niets geschreven.
 
Stef Segers

Stef Segers

03/01/2008 11:25:00
Quote Anchor link
Hoi Joep,

Ik had dat al geprobeerd, maar dat werkt dus niet. Zoals eerder verteld ben ik een ASP-er en een php newbie dus ik volg netjes alle adviezen op en als het werkt ga ik uitzoeken waardoor dit is gelukt.
PHP handleiding kom ik niet uit... en alle mailscripts op deze website zijn mij te ingewikkeld.

In ASP had ik een script gemaakt welke een forumlier uitleest en alle velden verzameld en in een mail stopt.... ik ging ervan uit dat dit ook even gedaan kon worden in PHP... helaas niet dus :(

Ik hoop dat iemand mij nuttige tips kan geven voor mijn probleem

Stef

------

UPDATE:
Mail werkt wel maar krijg een lege mail binnen. De gegevens zijn NIET verzameld uit het document. Bovendien blijven de errors die er waren nog steeds bestaan:
Notice: Undefined variable: verzonden in /webdocs/users/fransnijssen/httpdocs/fransnijssen.nl/www-docs/test.php on line 8

Notice: Undefined index: Submit in /webdocs/users/fransnijssen/httpdocs/fransnijssen.nl/www-docs/test.php on line 11

Notice: Undefined variable: PHP_SELF in /webdocs/users/fransnijssen/httpdocs/fransnijssen.nl/www-docs/test.php on line 60

Notice: Undefined variable: p in /webdocs/users/fransnijssen/httpdocs/fransnijssen.nl/www-docs/test.php on line 61
Gewijzigd op 01/01/1970 01:00:00 door Stef Segers
 
- wes  -

- wes -

03/01/2008 11:31:00
Quote Anchor link
Vroeger in de prehistorie mocht je form-variabelen in je verwerkpagina direct oproepen als variabele, dus bijvoorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<form action="pagina.php" method="GET">
<input type="text" name="koekjes">
<input type="submit" name="knop" value="verzend">
</form>


Deze mocht je in pagina.php toendertijd oproepen direct met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
    echo $koekjes;
    echo $knop;
?>



Maar gelukkig mag dit niet meer (superglobals). Correcte afhandeling van het formulier hierboven zal dan zijn:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    if (isset($_GET['knop']) && isset($_GET['koekjes']) && !empty($_GET['knop']) && !empty($_GET['koekjes']))
    {

        echo $_GET['koekjes'];
        // of
        $koekjes = $_GET['koekjes'];
        echo $koekjes;
    }

?>
 
Jaws

Jaws

03/01/2008 12:01:00
Quote Anchor link
http://nl3.php.net/register_globals

Voor meer info. Niet doen dus.
 
Stef Segers

Stef Segers

03/01/2008 12:03:00
Quote Anchor link
Hoi Wes,

Jouw code is inderdaad duidelijk, maar hoe vewerk ik dat in mijn code?
Deze is zo ingewikkeld in elkaar gezet..... (voor een newbie als ik ;) )
 
- wes  -

- wes -

03/01/2008 12:18:00
Quote Anchor link
Nou er staat dus hoe jij het doet (code stukkie 2)
en hoe het wel moet (code stukkie 3)
 
Stef Segers

Stef Segers

03/01/2008 12:21:00
Quote Anchor link
Hey Jaws,

Leuke pagina, maar wat bedoel je er nou mee? Ik weet niet eens wat globals zijn. Zoals eerder vermeld ik ben echt een newbie op php gebied.

Ik heb inmiddels de error coding bovenaan weg gehaald en de Submit aangepast. Maar toch nog steeds niet werkend...

Ik hoop echt dat iemand me een bruikbare code kan geven. Het script is op zich prima qua verzenden van de mail. Hij checked hoeveel velden zijn ingevuld en verstuurd alleen die. Helemaal super! Maar dan moet het welr werken.

De grap is als ik de exacte code van de module pagina in een nieuw document zet en dan gebruik werkt het ook niet. Ik ben verder gaan zoeken en zag dat er een template.php wordt gebruikt. Deze heb ik ook erin verwerkt maar nog niet werken. De index.php maar een verwijzing naar deze module pagina. Maar daar staat volgens mij niets bijzonders in alleen dbase connecties etc.

Hier is mijn aangepaste code

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
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
<?php

if($verzonden==1){
    $p_content='<span>Uw nabestelling is verzonden.</span>';
    }

else if($_POST['Submit']=="Nabestelling verzenden"){

$MailBody = '
Nabestelling:

Reportagenummer: '
.$reportagenummer.'

Naam:    '
.strtoupper($naam).'
Adres:    '
.strtoupper($adres).', '.strtoupper($postcode).' '.strtoupper($plaatsnaam).'
Tel:    '
.$telefoon.'
Fax:    '
.$fax.'
Email:    '
.$emailadres.'

Opmerkingen:
'
.$opmerkingen.'

Bestelling:
'
;

$i = 0;
$counter = 0;
foreach($aantal as $key=>$val)
{

    if(trim($val!=''))
    {

        $MailBody .= '----------------------------------------------
    Fotonummer:    '
.$fotonummer[$key].'
    Mat/glans:    '
.$mg[$key].'
    Maat:        '
.$maat[$key].'
    Aantal:        '
.$val.'
'
;
    $i++;
    $counter += $val;
    }
}


$MailBody .= '
----------------------------------------------
'
;

$headers = 'From: "Frans Nijssen Fotografie" <[email protected]>';
mail('[email protected]', 'Online Nabestelling', stripslashes($MailBody), $headers);

header('Location: '.basename($PHP_SELF).'?p='.$p.'&verzonden=1');

}
else{
$p_content =  '
<div id="content_left">
<form action="'
.basename($PHP_SELF).'" method="post" name="nabestelling" id="nabestelling">
<input name="p" type="hidden" value="'
.$p.'">
<h2>Reportagenummer: <input name="reportagenummer" type="text" id="reportagenummer"></h2>
<h2>Foto\'s en formaat</h2>
<table border="0" cellpadding="0" cellspacing="4">
  <tr>
    <td>aantal</td>
    <td>fotonummer</td>
    <td>grootte</td>
    <td>mat/glans</td>
  </tr>'
;
  
  for($i=1;$i<=10;$i++){
  $p_content .= '
  <tr>
    <td><input name="aantal['
.$i.']" type="text" size="2" /></td>
    <td><input name="fotonummer['
.$i.']" type="text" size="10" /></td>
    <td><select name="maat['
.$i.']">
    <option value="10x15" selected>10x15cm &euro; 3,50</option>
    <option value="15x20">15x20cm &euro; 7,00</option>
    <option value="20x25">20x25cm &euro; 12,50</option>
    <option value="20x30">20x30cm &euro; 15,00</option>
    <option value="30x40">30x40cm &euro; 25,00</option>
    </select></td>
    <td>
    <label for="mgm'
.$i.'"><input type="radio" name="mg['.$i.']" id="mgm'.$i.'" value="mat" checked/>mat</label>
    <label for="mgg'
.$i.'"><input type="radio" name="mg['.$i.']" id="mgg'.$i.'" value="glans"/>glans</label></td>
  </tr>'
;
  }

  
$p_content .= '</table></div>
      <div id="content_right">
          <table border="0" cellpadding="0" cellspacing="1">
            <tr>
              <td colspan="2"><h2>Adresgegevens:</h2></td>
            </tr>
            <tr>
              <td width="25%">Naam</td>
              <td width="75%">
                <input name="naam" type="text" id="naam"></td>
            </tr>
            <tr>
              <td width="25%">Adres</td>
              <td width="75%">
                <input name="adres" type="text" id="adres"></td>
            </tr>
            <tr>
              <td width="25%">Postcode</td>
              <td width="75%">
                <input name="postcode" type="text" id="postcode"></td>
            </tr>
            <tr>
              <td width="25%">Plaatsnaam</td>
              <td width="75%">
                <input name="plaatsnaam" type="text" id="plaatsnaam"></td>
            </tr>
            <tr>
              <td width="25%">&nbsp;</td>
              <td width="75%">&nbsp;</td>
            </tr>
            <tr>
              <td width="25%">Telefoon</td>
              <td width="75%">
                <input name="telefoon" type="text" id="telefoon"></td>
            </tr>
            <tr>
              <td width="25%">Fax</td>
              <td width="75%">
                <input name="fax" type="text" id="fax"></td>
            </tr>
            <tr>
              <td width="25%">E-mail</td>
              <td width="75%">
                <input name="emailadres" type="text" id="emailadres"></td>
            </tr>
            <tr>
              <td width="25%">&nbsp;</td>
              <td width="75%">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="2">Opmerkingen</td>
            </tr>
            <tr>
              <td colspan="2"> <textarea name="opmerkingen" rows="4" style="width: 350px" id="opmerkingen"></textarea></td>
            </tr>
            <tr>
              <td colspan="2">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="2"><input name="Submit" type="submit" value="Nabestelling verzenden"></td>
            </tr>
            <tr>
              <td colspan="2">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="2">NB: Onvolledige of foutief ingevulde formulieren
                worden niet in behandeling genomen. </td>
            </tr>
          </table>
    </form>
    </div>'
;
}


$HTML_pagina_start = '<!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=iso-8859-1" />
<title>Frans Nijssen Fotografie - Nabestellen</title>
<link type="text/css" rel="stylesheet" href="http://frans.stefsegers.nl/css/fransstyle.css" />
</head>

<body>
<div id="horizon">
<div id="wrapper">
    <div id="logo">
        <span>Frans Nijssen Fotografie</span>
    </div>
    
    <div id="menu">
        <ul>
            <li><a href="/index.html">home</a></li>
            <li><a href="/portfolio/bruiloften.php">bruiloften</a></li>
            <li><a href="/portfolio/studio.php">studio</a></li>
            <li><a href="/portfolio/bedrijfs.php">in bedrijf</a></li>
            <li><a href="/slideshows.php">slideshows</a></li>
            <li><a href="/boeken.php">fotoboeken</a></li>
            <li><a href="/links.html">links</a></li>
            <li><a href="/contact.html">contact</a></li>
            <li id="current"><a href="/nabestellen.php">nabestellen</a></li>
        </ul>
    </div>
    <div id="menuline">&nbsp;</div>
    <div id="content">
'
;
$HTML_pagina_end = '
    </div>
    <div id="footer">
        Frans Nijssen Fotografie | Mary Beystraat 1 | 2324 DK  Leiden | tel. 071 - 5120982 | fax. 071 - 5134371
    </div>
    
</div>
</div>
</body>
</html>
'
;
echo $HTML_pagina_start.$p_content.$HTML_pagina_end;
?>
 
- wes  -

- wes -

03/01/2008 12:26:00
Quote Anchor link
Stef

Beste tip die ik je kan geven is begin bij het begin.
Op dit moment probeer je iets te maken waar je simpelweg de kennis niet voor hebt. Voor dit probleem heb je aan de basiskennis PHP genoeg (wat hier ook al is uitgelegt).
Zoals je al hebt gemerkt is PHP niet hetzelfde als ASP , far from it.

Begin bij het begin en leg dit aan de kant, persoonlijk heb ik namelijk geen zin om bij elke undifined var een nieuw topic te zien verschijnen omdat je niet weet wat superglobals zijn.
 
Stef Segers

Stef Segers

03/01/2008 12:35:00
Quote Anchor link
Oke... bedankt voor je tip Wes,

Ik heb dus nu een forumlier en wil deze mailen.

Zoals verteld wil ik dat ik de gegevens uit mijn forumlier haal en deze verwerk in het mailtje.
De opmaak van het mailtje zoals in dit script is perfect
Daarnaast wil ik ook dat allen de ingevulde bestellingen worden verstuurd en niet de lege velden van het bestel formulier

Ik ben al op de phphulp script pagina's gaan kijken... maar nog best moeilijk verhaal...

Het begin: mijn forumlier

<form action="'.basename($PHP_SELF).'" method="post" name="nabestelling" id="nabestelling">
<input name="p" type="hidden" value="'.$p.'">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top"><table width="300" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="kop">Reportagenummer:</td>
</tr>
<tr>
<td><input name="reportagenummer" type="text" class="100proc" id="reportagenummer"></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>




<tr>
<td valign="top"><table width="200" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="kop">Prijzen per stuk:</td>
</tr>
<tr>
<td>10 x 15cm</td><td>&euro; 3,50</td>
</tr>
<tr>
<td>15 x 20cm</td><td>&euro; 7,00</td>
</tr>
<tr>
<td>20 x 25cm</td><td>&euro; 12,50</td>
</tr>
<tr>
<td>20 x 30cm</td><td>&euro; 15,00</td>
</tr>
<tr>
<td>30 x 40cm</td><td>&euro; 43,50</td>
</tr>
</table></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>



<tr>
<td valign="top" class="kop">Foto\'s en formaat<br>


<table border="0" cellpadding="0" cellspacing="4">
<tr>
<td>aantal</td>
<td>fotonummer</td>
<td>grootte</td>
<td>mat/glans</td>
</tr>';

for($i=1;$i<=20;$i++){
$p_content .= '
<tr>
<td><input name="aantal['.$i.']" type="text" size="3" /></td>
<td><input name="fotonummer['.$i.']" type="text" size="15" /></td>
<td><select name="maat['.$i.']">
<option value="10x15" selected>10 x 15cm</option>
<option value="15x20">15 x 20cm</option>
<option value="20x25">20 x 25cm</option>
<option value="20x30">20 x 30cm</option>
<option value="30x40">30 x 40cm</option>
</select></td>
<td>
<label for="mgm'.$i.'"><input type="radio" name="mg['.$i.']" id="mgm'.$i.'" value="mat" checked/>mat</label>
<label for="mgg'.$i.'"><input type="radio" name="mg['.$i.']" id="mgg'.$i.'" value="glans"/>glans</label></td>
</tr>';
}

$p_content .= ' </table></td>
</tr>
<tr>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td valign="top"><table border="0" cellpadding="0" cellspacing="1">
<tr>
<td colspan="2" class="kop">Adresgegevens:</td>
</tr>
<tr>
<td width="25%">Naam</td>
<td width="75%">
<input name="naam" type="text" class="100proc" id="naam"></td>
</tr>
<tr>
<td width="25%">Adres</td>
<td width="75%">
<input name="adres" type="text" class="100proc" id="adres"></td>
</tr>
<tr>
<td width="25%">Postcode</td>
<td width="75%">
<input name="postcode" type="text" class="100proc" id="postcode"></td>
</tr>
<tr>
<td width="25%">Plaatsnaam</td>
<td width="75%">
<input name="plaatsnaam" type="text" class="100proc" id="plaatsnaam"></td>
</tr>
<tr>
<td width="25%">&nbsp;</td>
<td width="75%">&nbsp;</td>
</tr>
<tr>
<td width="25%">Telefoon</td>
<td width="75%">
<input name="telefoon" type="text" class="100proc" id="telefoon"></td>
</tr>
<tr>
<td width="25%">Fax</td>
<td width="75%">
<input name="fax" type="text" class="100proc" id="fax"></td>
</tr>
<tr>
<td width="25%">E-mail</td>
<td width="75%">
<input name="emailadres" type="text" class="100proc" id="emailadres"></td>
</tr>
<tr>
<td width="25%">&nbsp;</td>
<td width="75%">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="kop">Opmerkingen</td>
</tr>
<tr>
<td colspan="2"> <textarea name="opmerkingen" rows="10" style="width: 300px" id="opmerkingen"></textarea></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td colspan="2"><input name="Submit" type="submit" value="Nabestelling verzenden"></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td colspan="2">NB: Onvolledige of foutief ingevulde formulieren
worden niet in behandeling genomen. </td>
</tr>
</table></td>
</tr>
</table>
</form>';


Hoe kan ik dit beste beste oplossen?
 
Stef Segers

Stef Segers

03/01/2008 13:58:00
Quote Anchor link
Ik kom al langzaam weer een stukje verder... heb alles van ground up geprogrammeerd.

Ik zit nu met mijn foreach probleempje:

Warning: Invalid argument supplied for foreach() in /webdocs/users/fransnijssen/httpdocs/fransnijssen.nl/www-docs/test.php on line 55

Hier is de code van foreach:

$i = 0;
$counter = 0;
foreach($aantal as $key=>$val)
{
if(trim($val!=''))
{
$MailBody .= '----------------------------------------------
Fotonummer: '.$_POST[fotonummer($key)].'
Mat/glans: '.$_POST[mg($key)].'
Maat: '.$_POST[maat($key)].'
Aantal: '.$_POST[val].'
';
$i++;
$counter += $val;
}
}


Hier is mijn formuliertje:

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
<?php
for ($i=1; $i<=10; $i++)
{

  echo '
            <tr>
              <td><input name="aantal['
.$i.']" type="text" size="3" /></td>
            <td><input name="fotonummer['
.$i.']" type="text" size="15" /></td>
            <td><select name="maat['
.$i.']">
            <option value="10x15" selected>10x15cm &euro; 3,50</option>
            <option value="15x20">15x20cm &euro; 7,00</option>
            <option value="20x25">20x25cm &euro; 12,50</option>
            <option value="20x30">20x30cm &euro; 15,00</option>
            <option value="30x40">30x40cm &euro; 25,00</option>
            </select></td>
            <td>
            <label for="mgm'
.$i.'"><input type="radio" name="mg['.$i.']" id="mgm'.$i.'" value="mat" checked/>mat</label>
            <label for="mgg'
.$i.'"><input type="radio" name="mg['.$i.']" id="mgg'.$i.'" value="glans"/>glans</label></td>
          </tr>
  '
;
}

?>


Ik ben er nog niet helemaal achter waar de fout zit... misschien iemand een idee?
 

Pagina: 1 2 volgende »



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.