probleem met nieuwsbrief systeem (db)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Leon den H

Leon den H

08/12/2010 18:06:20
Quote Anchor link
Hallo,

Ik zit met het volgende.

Ik heb een nieuwsbrief systeem met Mysql. Het is een bestaand script, maar wil deze verder aanpassen. Ik heb al extra rijen toegevoegd etc.

In de database 'email' staat momenteel:


CREATE TABLE IF NOT EXISTS `emails` (
`id` int(11) NOT NULL auto_increment,
`email` text NOT NULL,
`naam` text NOT NULL,
`kinderen` text NOT NULL,
`groep` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

$toevoegquery
= "INSERT INTO emails (naam, email, kinderen, groep) VALUES ('" . mysql_real_escape_string($_GET['naam']) . "', '" . mysql_real_escape_string($_GET['email']) . "')"; //De query om het emailadres in de database op te slaan
if(mysql_query($toevoegquery)){ //Query gelukt? bericht laten zien
echo "Beste " . htmlentities($_GET['naam'], ENT_QUOTES) . " uw e-mail adres: " . htmlentities($_GET['email'], ENT_QUOTES) . " is toegevoegd aan de database.";

?>


Wanneer ik het email adres wil bevestigen krijg ik de volgende melding:

Er is een fout opgetreden tijdens het toevoegen. De query was: INSERT INTO emails (naam, email, kinderen, groep) VALUES ('Leon', '[email protected]')
De error van mysql: Column count doesn't match value count at row 1

Wie weet waar het probeelm kan zitten? Mochten jullie meer info willen hoor ik het graag.

Alvast bedankt voor jullie hulp.
 
PHP hulp

PHP hulp

25/04/2024 11:10:33
 
Vincent Huisman

Vincent Huisman

08/12/2010 18:10:08
Quote Anchor link
je zegt dat je 4 rijen wilt toevoegen maar je geeft maar 2 inhouden
 
Joakim Broden

Joakim Broden

08/12/2010 18:10:19
Quote Anchor link
Ik heb deze error nog nooit gehad, maar als ik de error lees komt het omdat je 4 columns aangeeft en 2 values. beide moeten dezelfde aantal zijn..
 
Maarten PHP

Maarten PHP

08/12/2010 18:13:10
Quote Anchor link
gewoon 4 waardes in de query doen
 
Leon den H

Leon den H

08/12/2010 18:13:17
Quote Anchor link
klopt ik heb het inderdaad gezien.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
// hier zit het probleem

('" . mysql_real_escape_string($_GET['naam']) . "', '" . mysql_real_escape_string($_GET['email']) . "')";

// het moet het volgende worden volgens mij

('"
. mysql_real_escape_string($_GET['naam']) . "', '" . mysql_real_escape_string($_GET['email']) . "', '" . mysql_real_escape_string($_GET['kinderen']) . "', '" . mysql_real_escape_string($_GET['groep']) . "')";

?>


Klopt dit of heb ik het fout?
 
Vincent Huisman

Vincent Huisman

08/12/2010 18:16:13
Quote Anchor link
zou je even moeten proberen
 
Leon den H

Leon den H

08/12/2010 18:18:39
Quote Anchor link
Het positieve is dat ik geen foutmelding krijg :), maar de gegevens zie ik niet terug in de db? De velden zijn wel aangegeven: naam ; email ; kinderen ; groep. Alleen naam en email zijn gevuld. De overige twee niet...

Heeft iemand idee hoe dit probleem opgelost kan worden? Mochten er meer info nodig zijn hoor ik het wel.
Gewijzigd op 08/12/2010 18:23:37 door Leon den H
 
Joakim Broden

Joakim Broden

08/12/2010 18:28:13
Quote Anchor link
Laat je hele code nog eens zien wat je nu hebt
 
Leon den H

Leon den H

08/12/2010 18:31:54
Quote Anchor link
Dit is de code die ik heb:

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

include ("config.php"); //De config laden
include ("connect.php"); //Connectie maken met database
include ("class.phpmailer.php"); //PHP mailer includen

function checkmail($mail)
{

    // explode het e-mail adres op een @
    $email_host = explode("@", $mail);
    // pak alles na de @
    $email_host = $email_host['1'];
    // zet een var met de (eventuele) DNS van de domein
    $email_resolved = gethostbyname($email_host);

    // kijk of er een DNS aan zit en of alles voor en na het e-mail adres klopt
    if ($email_resolved != $email_host && eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$",$mail))
        $valid = 1;

    // wanneer het geldig is, is $valid = 1, zo niet, dan geeft hij geen result (NULL)
    return $valid;
}




if (checkmail($_GET['email']))
{

if(isset($_GET['email']) and isset($_GET['naam']))

    {

    $email = $_GET['email'];
    $naam = $_GET['naam'];
$check = mysql_query("SELECT email FROM emails WHERE email = '$email'") //Kijken of de email al bestaat
or die(mysql_error()); //Checken lukt niet? Mysql error!
$check2 = mysql_num_rows($check); //Checken

if ($check2 != 0) { // Bestaat hij al?
die('Sorry, het e-mail adres '.$_POST['email'].' staat al in ons systeem.'); //Bericht weergeven
}



$toevoegquery = "INSERT INTO emails (naam, email, kinderen, groep) VALUES ('" . mysql_real_escape_string($_GET['naam']) . "', '" . mysql_real_escape_string($_GET['email']) . "', '" . mysql_real_escape_string($_GET['kinderen']) . "', '" . mysql_real_escape_string($_GET['groep']) . "')";

 //De query om het emailadres in de database op te slaan
if(mysql_query($toevoegquery)){ //Query gelukt? bericht laten zien
echo "Beste " . htmlentities($_GET['naam'], ENT_QUOTES) . " uw e-mail adres: " . htmlentities($_GET['email'], ENT_QUOTES) . " is toegevoegd aan de database.";

$onderwerp = "Bedankt voor uw aanmelding voor de digitale nieuwsbrief";
$bericht = "Beste " . htmlentities($_GET['naam'], ENT_QUOTES) . "<br />
<br>Bedankt voor uw aanmelding voor de digitale nieuwsbrief.<br />
<br>Uw account is nu geactiveerd. Vanaf nu zult u op dit e-mail adres de nieuwsbrieven ontvangen.<br /><br />
Met vriendelijke groet,
<br>

"
;
$mail             = new PHPMailer();


$mail->From       = $email_verzender;
$mail->FromName   = $naam_verzender;

$mail->Subject    = $onderwerp;

$mail->AltBody    = "Om deze mail te bekijken heb je een HTML email reader nodig!";

$mail->MsgHTML($bericht);

$mail->AddAddress($email);

$mail->AddAttachment($bijlage);

if(!$mail->Send())
{

   echo "Het bericht kon niet worden verstuurd. <p>";
   echo "Error: " . $mail->ErrorInfo;
   exit;
}
}
else{
echo "Er is een fout opgetreden tijdens het toevoegen. De query was: " . $toevoegquery; //Anders de query laten zien
echo "<br />De error van mysql: " . mysql_error(); //En de error die mysql gaf
}
    }
else    {
            echo'Hacking!';
            }

}

else
{
echo ("Sorry maar dat is geen geldig e-mail adres");
echo ("<br>");
echo ("<br>");
echo ("<a href=\"#\" onClick=\"history.back()\">Klik hier om terug te keren</a>");
}

?>

</td>
</tr>

</table>
?>
 
Vincent Huisman

Vincent Huisman

08/12/2010 18:33:16
Quote Anchor link
bestaan $_GET['kinderen'] en $_GET['groep'] wel?
 
Leon den H

Leon den H

08/12/2010 18:35:32
Quote Anchor link
Dat wou ik net typen, volgens mij missen deze. Deze moet dan op regel 33 en 34 komen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    $kinderen
= $_GET['kinderen'];
    $groep = $_GET['groep'];

?>


Zou het dan goed zijn, of moet ik nog meer aanpassen in verschillende .php files?
 
Joakim Broden

Joakim Broden

08/12/2010 18:37:27
Quote Anchor link
Ik snap het niet, de ene keer is het $_POST en andere keer $_GET bij jou,

Komen alle gegevens die je wilt hebben uit formulier of uit de url?
 
Leon den H

Leon den H

08/12/2010 18:39:20
Quote Anchor link
Dit is de index.

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

<script language="javascript" type="text/javascript">
function
check(formulier)
{

if (formulier.email.value=="")
{

alert("Vul uw email in.");
return false;
}

else if (formulier.email.value=="Email")
{

alert("Vul uw email in!");
return false;
}

else if (formulier.naam.value=="")
{

alert("Vul uw naam in.");
return false;
}

else if (formulier.naam.value=="Naam")
{

alert("Vul uw naam in!");
return false;
}

}

else if (formulier.kinderen.value=="")
{

alert("Vul de namen van uw kinderen in.");
return false;
}

else if (formulier.kinderen.value=="kinderen")
{

alert("Vul uw namen van de kinderen in");
return false;
}

}

else if (formulier.groep.value=="")
{

alert("Vul de groep van uw oudste kind in.");
return false;
}

else if (formulier.groep.value=="groep")
{

alert("Vul de naam van groep in van uw oudste kind!");
return false;
}
}

</script>

?>


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

echo ("<br>");
echo ("<form id=\"formulier\" onSubmit=\"return check(this)\" method=\"POST\" action=\"inschrijven.php\">");
echo ("<input size=\"25\" maxlength=\"35\" type=\"text\" name=\"naam\" value=\"Uw voor- en achternaam\" style=\"font-weight:normal;\">");
echo ("<br>");
echo ("<br>");
echo ("<input size=\"25\" maxlength=\"35\" type=\"text\" name=\"email\" value=\"Uw email\" style=\"font-weight:normal;\">");
echo ("<br>");
echo ("<br>");
echo ("<input size=\"25\" maxlength=\"40\" type=\"text\" name=\"kinderen\" value=\"Naam van uw kinderen\" style=\"font-weight:normal;\">");
echo ("<br>");
echo ("<br>");
echo ("<input size=\"25\" maxlength=\"35\" type=\"text\" name=\"groep\" value=\"Groep oudste kind\" style=\"font-weight:normal;\">");
echo ("<br>");
echo ("<br>");
echo ("<input type=\"submit\" value=\"Inschrijven\" style=\"font-weight:normal; center;\">");
echo ("</form>");

?>
 
Vincent Huisman

Vincent Huisman

08/12/2010 18:42:24
Quote Anchor link
dan moet je ook $_POST gebruiken, je moet ook in je php nog een keer checken of alles goed is, javascript kan altijd uit staan
 



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.