Contact met nieuwsbrief checkbox
Indien niet; voegt hij het toe in de db.
Iemand een idee of een leuk scriptje vanwaar ik kan vertrekken.
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
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
<?php
ini_set ('display_errors', 1);
error_reporting (E_ALL | E_STRICT);
$errs = array (); // deze moet je zelf vullen met eventuele errors
$msgs = array ();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset ($_POST['nieuwsbrief'])) {
if (isset ($_POST['email'])) {
$sql = "
SELECT COUNT(id) AS aantal
FROM tabelnaam
WHERE email = '" . mysql_real_escape_string ($_POST['email']) . "'
";
if ($res = mysql_query ($sql) && mysql_num_rows ($res) == 0) {
$sql_insert = "
INSERT INTO tabelnaam
(
email
)
VALUES
(
'" . mysql_real_escape_string ($_POST['email']) . "'
)
";
if (mysql_query ($sql_insert)) {
if (mysql_affected_rows () == 1) {
array_push ($msgs, 'E-mail adres is toegevoegd');
}
}
}
}
}
}
?>
ini_set ('display_errors', 1);
error_reporting (E_ALL | E_STRICT);
$errs = array (); // deze moet je zelf vullen met eventuele errors
$msgs = array ();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset ($_POST['nieuwsbrief'])) {
if (isset ($_POST['email'])) {
$sql = "
SELECT COUNT(id) AS aantal
FROM tabelnaam
WHERE email = '" . mysql_real_escape_string ($_POST['email']) . "'
";
if ($res = mysql_query ($sql) && mysql_num_rows ($res) == 0) {
$sql_insert = "
INSERT INTO tabelnaam
(
)
VALUES
(
'" . mysql_real_escape_string ($_POST['email']) . "'
)
";
if (mysql_query ($sql_insert)) {
if (mysql_affected_rows () == 1) {
array_push ($msgs, 'E-mail adres is toegevoegd');
}
}
}
}
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Ik heb volgend ding al ineen kunnen steken, maar het wringt enkel nog bij de insert. Vermoedelijk verkeerd genoteerd: trial en error tot het is opgelost.
Vind je het script ok ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
if(isset($_POST['nieuwsbrief'])) {
$loginUsername = $_POST['uemail'];
$LoginRS__query = "SELECT email FROM tblnieuwsgebruiker WHERE email='" . $loginUsername . "'";
mysql_select_db($dbxxx, $dconnxx);
$LoginRS=mysql_query($LoginRS__query, $dconnxx) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
//if there is now row in the database, the email was not found - can add email now
if (empty($loginFoundUser)) {
$datumm = date('Y-m-d H:i:s');
$emaill = $_POST['uemail'];
$naamm = $_POST['uname'];
$insertSQL = sprintf("INSERT INTO tblnieuwsgebruiker naam, email, datum VALUES '%s','%s','%s'", $naamm, $emaill, $datumm);
echo $insertSQL;
mysql_select_db($dbxxx, $dconnxx);
$Result1 = mysql_query($insertSQL, $dconnxx) or die(mysql_error());
}
}
?>
if(isset($_POST['nieuwsbrief'])) {
$loginUsername = $_POST['uemail'];
$LoginRS__query = "SELECT email FROM tblnieuwsgebruiker WHERE email='" . $loginUsername . "'";
mysql_select_db($dbxxx, $dconnxx);
$LoginRS=mysql_query($LoginRS__query, $dconnxx) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
//if there is now row in the database, the email was not found - can add email now
if (empty($loginFoundUser)) {
$datumm = date('Y-m-d H:i:s');
$emaill = $_POST['uemail'];
$naamm = $_POST['uname'];
$insertSQL = sprintf("INSERT INTO tblnieuwsgebruiker naam, email, datum VALUES '%s','%s','%s'", $naamm, $emaill, $datumm);
echo $insertSQL;
mysql_select_db($dbxxx, $dconnxx);
$Result1 = mysql_query($insertSQL, $dconnxx) or die(mysql_error());
}
}
?>
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
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
<?php
if(isset($_POST['nieuwsbrief'])) {
// waarom de ene variabele in de andere kopieren?
$loginUsername = $_POST['uemail'];
// kijk uit voor SQL injection; gebruik mysql_real_escape_string
$LoginRS__query = "SELECT email FROM tblnieuwsgebruiker WHERE email='" . $loginUsername . "'";
// connecten/selecten van je DB doe je meestal aan het begin van je script
mysql_select_db($dbxxx, $dconnxx);
$LoginRS=mysql_query($LoginRS__query, $dconnxx) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
//if there is now row in the database, the email was not found - can add email now
if (empty($loginFoundUser)) {
// deze is niet nodig. Dat kun je met NOW() doen in je INSERT query
$datumm = date('Y-m-d H:i:s');
// waarom de ene variabele in de andere kopieren?
$emaill = $_POST['uemail'];
$naamm = $_POST['uname'];
// kijk uit voor SQL injection; gebruik mysql_real_escape_string
$insertSQL = sprintf("INSERT INTO tblnieuwsgebruiker naam, email, datum VALUES '%s','%s','%s'", $naamm, $emaill, $datumm);
echo $insertSQL;
// die select heb je al gedaan, dus is hier niet meer nodig
mysql_select_db($dbxxx, $dconnxx);
$Result1 = mysql_query($insertSQL, $dconnxx) or die(mysql_error());
}
}
?>
if(isset($_POST['nieuwsbrief'])) {
// waarom de ene variabele in de andere kopieren?
$loginUsername = $_POST['uemail'];
// kijk uit voor SQL injection; gebruik mysql_real_escape_string
$LoginRS__query = "SELECT email FROM tblnieuwsgebruiker WHERE email='" . $loginUsername . "'";
// connecten/selecten van je DB doe je meestal aan het begin van je script
mysql_select_db($dbxxx, $dconnxx);
$LoginRS=mysql_query($LoginRS__query, $dconnxx) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
//if there is now row in the database, the email was not found - can add email now
if (empty($loginFoundUser)) {
// deze is niet nodig. Dat kun je met NOW() doen in je INSERT query
$datumm = date('Y-m-d H:i:s');
// waarom de ene variabele in de andere kopieren?
$emaill = $_POST['uemail'];
$naamm = $_POST['uname'];
// kijk uit voor SQL injection; gebruik mysql_real_escape_string
$insertSQL = sprintf("INSERT INTO tblnieuwsgebruiker naam, email, datum VALUES '%s','%s','%s'", $naamm, $emaill, $datumm);
echo $insertSQL;
// die select heb je al gedaan, dus is hier niet meer nodig
mysql_select_db($dbxxx, $dconnxx);
$Result1 = mysql_query($insertSQL, $dconnxx) or die(mysql_error());
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Wél bezoekervriendelijk:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$inResult = mysql_query($insertSQL, $dconnxx);
if($inResult) {
// goed
} else {
echo "Query ging fout: ".$insertSQL."<br />";
echo "Fout: ".mysql_error();
}
?>
$inResult = mysql_query($insertSQL, $dconnxx);
if($inResult) {
// goed
} else {
echo "Query ging fout: ".$insertSQL."<br />";
echo "Fout: ".mysql_error();
}
?>
Jan, kan het zijn dat volgende lijn in uw scriptje niet kan:
Ik heb dit
Code (php)
1
2
3
4
5
2
3
4
5
<?
$res = mysql_query($sql);
$num_rows = mysql_num_rows($res);
if ($num_rows == 0) {
?>
$res = mysql_query($sql);
$num_rows = mysql_num_rows($res);
if ($num_rows == 0) {
?>
Dan lukt de insert wel, maar geeft hij een foutmelding weer:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/kasadv/public_html/nl/SendMail_contact.php on line 8
Voor de rest is het nog niet gans werkende, omdat ik het ook moet implementeren tussen het contactformulier en die validatie. Maar ik stormbrain verder.
Je kunt geen records tellen bij een INSERT-query. Dat geldt alleen bij een SELECT-query. Bovendien controleert jouw stukje niet of de query wel of niet gelukt is ;-).