Newsletter signoff
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
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
<?php
if($_POST['signoff']){
if(!check_email($email)){ $fout .= "- E-mail invalid.<br />"; }
//
if(isset($fout)){
echo "<p>$fout</p>";
echo "<input type=\"button\" onclick=\"history.go(-1);\" value=\"Go back\" />";
}
else{
$query = "UPDATE `clients` SET `news` = '0' WHERE `email` = '$email' LIMIT 1";
mysql_query($query);
//
echo "<p>You succesfully signed off for the newsletter.</p>";
echo "<input type=\"button\" onclick=\"window.location.href='".$config['url']."'\" value=\"Go further\" />";
}
}
else{
if($_POST['submit']){
if(!check_email($email)){ $fout .= "- E-mail invalid.<br />"; }
//
if(isset($fout)){
echo "<p>$fout</p>";
echo "<input type=\"button\" onclick=\"history.go(-1);\" value=\"Go back\" />";
}
else{
?>
<p>Are you sure to sign off from the newsletter?</p>
<form method="post" action="<?= $config['url']; ?>clients/newsletter/<?= $email; ?>">
<input type="submit" name="signoff" value="Yes" />
<input type="button" onclick="window.location.href='<?= $config['url']; ?>'" value="No" />
</form>
<?php
}
}
else{
?>
<p>Insert your e-mail address below here to sign off for the newsletter.</p>
<form method="post" action="<?= $config['url']; ?>clients/newsletter">
<table>
<tr>
<td width="25%"><b>E-mail:</b></td>
<td width="75%"><input name="email" type="text" size="30" /></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Sign off" /></td>
<td> </td>
</tr>
</table>
</form>
<?php
}
}
?>
if($_POST['signoff']){
if(!check_email($email)){ $fout .= "- E-mail invalid.<br />"; }
//
if(isset($fout)){
echo "<p>$fout</p>";
echo "<input type=\"button\" onclick=\"history.go(-1);\" value=\"Go back\" />";
}
else{
$query = "UPDATE `clients` SET `news` = '0' WHERE `email` = '$email' LIMIT 1";
mysql_query($query);
//
echo "<p>You succesfully signed off for the newsletter.</p>";
echo "<input type=\"button\" onclick=\"window.location.href='".$config['url']."'\" value=\"Go further\" />";
}
}
else{
if($_POST['submit']){
if(!check_email($email)){ $fout .= "- E-mail invalid.<br />"; }
//
if(isset($fout)){
echo "<p>$fout</p>";
echo "<input type=\"button\" onclick=\"history.go(-1);\" value=\"Go back\" />";
}
else{
?>
<p>Are you sure to sign off from the newsletter?</p>
<form method="post" action="<?= $config['url']; ?>clients/newsletter/<?= $email; ?>">
<input type="submit" name="signoff" value="Yes" />
<input type="button" onclick="window.location.href='<?= $config['url']; ?>'" value="No" />
</form>
<?php
}
}
else{
?>
<p>Insert your e-mail address below here to sign off for the newsletter.</p>
<form method="post" action="<?= $config['url']; ?>clients/newsletter">
<table>
<tr>
<td width="25%"><b>E-mail:</b></td>
<td width="75%"><input name="email" type="text" size="30" /></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Sign off" /></td>
<td> </td>
</tr>
</table>
</form>
<?php
}
}
?>
Gewijzigd op 14/01/2012 20:08:16 door J L
Plaats je hele code aub even tussen code-tags. Zo is het bijna niet te lezen.
Gewijzigd op 14/01/2012 20:05:11 door J L
probeer [c0de] en [/c0de] eens (dan 0 vervangen door 0)
Obelix en Idefix op 14/01/2012 20:05:30:
probeer [c0de] en [/c0de] eens (dan 0 vervangen door 0)
Yup dat werkt. Thnx. Nu is de code normaal te lezen.
Gewijzigd op 14/01/2012 20:09:25 door J L
War komt die vandaan?
De 1e stap is het invullen van het email adres dan neemt deze hem mee naar de nieuwe pagina waar er gekozen kan worden voor Yes or No voor het afmelden.
Als ik dan in de broncode kijk dan staat deze goed en heeft de email goed toegevoegd. De stap waar het dus fout gaat is wanneer er dan op Yes wordt geklikt dan vervangt deze de 1 niet voor de 0 in de mysql database en geeft de browser een 404 error.
Code (php)
1
2
3
4
2
3
4
<form method="post" action="http://www.website.nl/clients/newsletter/[email protected]">
<input type="submit" name="signoff" value="Yes" />
<input type="button" onclick="window.location.href='http://www.website.nl/'" value="No" />
</form>
<input type="submit" name="signoff" value="Yes" />
<input type="button" onclick="window.location.href='http://www.website.nl/'" value="No" />
</form>
Gewijzigd op 14/01/2012 20:16:10 door J L
naar welke link wordt de browser dan gestuurd, gezien de 404 error?
$fout .= "- E-mail invalid.<br />";
Dit gaat fout als $fout nog geen waarde heeft. Een regel of wat later check je of $fout een waarde heeft, maar hiervoor niet. Is dit eerder geinitialiseerd?
En dit is ook geen nette check:
if($_POST['signoff'])
Gebruik daarvoor isset($_POST['signoff'])
- Aar - op 14/01/2012 20:16:14:
naar welke link wordt de browser dan gestuurd, gezien de 404 error?
Deze dus. Zoals in mijn vorige post ook in de form stond.
Toevoeging op 14/01/2012 20:25:29:
Erwin H op 14/01/2012 20:17:38:
Regel 3:
$fout .= "- E-mail invalid.<br />";
Dit gaat fout als $fout nog geen waarde heeft. Een regel of wat later check je of $fout een waarde heeft, maar hiervoor niet. Is dit eerder geinitialiseerd?
En dit is ook geen nette check:
if($_POST['signoff'])
Gebruik daarvoor isset($_POST['signoff'])
$fout .= "- E-mail invalid.<br />";
Dit gaat fout als $fout nog geen waarde heeft. Een regel of wat later check je of $fout een waarde heeft, maar hiervoor niet. Is dit eerder geinitialiseerd?
En dit is ook geen nette check:
if($_POST['signoff'])
Gebruik daarvoor isset($_POST['signoff'])
Volgens mij niet, maar in dit stuk ligt niet de fout dat het niet werkt. Bij een fout email adres dan gaat die alsnog door, maar die bug maakt me niet zo heel veel uit.
Als ik if in isset verander dan krijg ik deze error.
Parse error: syntax error, unexpected '{' in
Gewijzigd op 14/01/2012 20:22:36 door J L
Er mist een {
J L op 14/01/2012 20:22:17:
Als ik if in isset verander dan krijg ik deze error.
Parse error: syntax error, unexpected '{' in
Parse error: syntax error, unexpected '{' in
Niet de if in isset veranderen, die if blijf je natuurlijk nodig houden.
Als ik geen email invul dan werkt de $fout wel gewoon en geeft deze de melding E-mail invalid. Waar zou ik die extra { dan moeten plaatsen als ik if in isset verander. Met if krijg ik die error niet.
Erwin H op 14/01/2012 20:35:19:
Niet de if in isset veranderen, die if blijf je natuurlijk nodig houden.
J L op 14/01/2012 20:22:17:
Als ik if in isset verander dan krijg ik deze error.
Parse error: syntax error, unexpected '{' in
Parse error: syntax error, unexpected '{' in
Niet de if in isset veranderen, die if blijf je natuurlijk nodig houden.
Oke, thnx dat is fixed. Alleen de laatste stap als ik op Yes druk om te bevestigen dat de newsletter uit moet werkt nog niet. De 1 in de MySql database moet naar 0 veranderen en dat stuk wert nog niet.
Ik heb het op een andere pagina op een andere wijze en dan kan via select de setting wel gewoon aangepast worden. Alleen op deze newsletter pagina wil het via deze andere manier niet lukken.
Toevoeging op 14/01/2012 20:41:28:
Erwin H op 14/01/2012 20:38:19:
Yep, had het al gevonden. Mijn kennis van PHP is nog niet heel groot, maar ben lerende en het gaat goed. Alleen soms kom ik er niet uit zoals nu bijvoorbeeld.
Gewijzigd op 14/01/2012 20:57:06 door J L
J L op 14/01/2012 20:22:17:
Volgens mij niet,
Erwin H op 14/01/2012 20:17:38:
Regel 3:
$fout .= "- E-mail invalid.<br />";
Dit gaat fout als $fout nog geen waarde heeft.
$fout .= "- E-mail invalid.<br />";
Dit gaat fout als $fout nog geen waarde heeft.
Volgens mij niet,
Zet de errors eens aan dan zie je wat.
Bovenin je pagina zetten:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest
?>
Notice: Undefined index: submit in newsletter.php
Dus die bestaat niet.
- SanThe - op 14/01/2012 20:48:53:
Dus die bestaat niet.
De error is weg als ik:
verander in
Gewijzigd op 14/01/2012 20:54:53 door J L
Klopt, stuk beter zo.
Als ik nu op signoff druk zonder een email in te vullen of een foute email invul dan krijg ik de volgende error.
Code (php)
1
2
2
Notice: Undefined variable: on line 26
if(!check_email($email)){ $fout .= "- E-mail invalid.<br />"; }
if(!check_email($email)){ $fout .= "- E-mail invalid.<br />"; }
Gewijzigd op 14/01/2012 21:10:38 door J L