na verzenden blokkeren
Pagina: « vorige 1 2 3 volgende »
Als dat zo is dan zit ik met een probleempje want ik weet de email adressen van de ontvangers nog niet!!
Maar zolang je de geen mailtjes verstuurd word je enquete nog niet ingevuld.
De enquete moet begin volgend jaar verstuurd worden en dan krijg ik ook pas de emailadressen en vragen ;)
Dus maak wal grapigge mail-aliassen aan en gaan met die banaan.
Gewijzigd op 01/01/1970 01:00:00 door - Ariën -
maar ik zit echt met het probleem dat ik er niet veel van snap.
Maar zoals mijn vorige post: ik moet dus de e-mailadressen opslaan en er een unieke string aan geven. Als ik dit zou doen kan ik dus ook gewoon zelf een naam meegeven?
Kan ook, iets wat de anderen neit makkelijk kunnen raden. Daarvoor is de rand-functie nou handig.
ok dus ik ga nu even om te testen mijn emailadres in de database gooien met een "unieke" naam. Zou je me dan wel even kunnen vertellen hoe ik de link ga maken die ik in de mail meestuur?
Vervolgens doe je
"SELECT uid, mail, ingevuld FROM tabel WHERE mail='".$mail."' AND uniekeid='".$_GET['uid']."' AND ingevuld=0";
if(mysql_num_rows() == 0) {
echo 'ongeldig';
}
else {
echo 'enquete';
}
EDIT:
script is nu wel gevoelig voor mysql injection
Gewijzigd op 01/01/1970 01:00:00 door Pepijn
$randomcode = rand(1000,9999);
En dan kanje $randomcode gebruiken in je mail.
Code (php)
EDIT
om in de database op te slaan doe je zoiets..
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$code = create_regcode();
$Query_insert = mysql_query("INSERT INTO tabel (emailadres, ip, code) VALUES ('".mysql_real_escape_string($_POST['email'])."', '".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."', '".mysql_real_escape_string($code)."')");
if($Query_insert)
{
# hier mailen
}
else
{
echo 'Error in query: '.mysql_error();
}
?>
$code = create_regcode();
$Query_insert = mysql_query("INSERT INTO tabel (emailadres, ip, code) VALUES ('".mysql_real_escape_string($_POST['email'])."', '".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."', '".mysql_real_escape_string($code)."')");
if($Query_insert)
{
# hier mailen
}
else
{
echo 'Error in query: '.mysql_error();
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Niels K
Met create_regcode(), krijg je een 32-caracter lange code.
O sorry ik zag niet dat je al gepost had:P
ik krijg als foutmelding
Warning: Wrong parameter count for mysql_num_rows() in /usr/home/xxx/domains/xxx.xx/public_html/enquete/formulier.php on line 23
line 23 = if(mysql_num_rows() == 0) {
@Niels
Thnx maar ga eerst even dit van Aar proberen
Zie php.net/mysql_num_rows
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$sql = "SELECT uid, mail, ingevuld FROM users WHERE mail='".$mail."' AND uniekeid='".$_GET['uid']."' AND ingevuld=0";
if(mysql_num_rows($sql) == 0) {
?>
$sql = "SELECT uid, mail, ingevuld FROM users WHERE mail='".$mail."' AND uniekeid='".$_GET['uid']."' AND ingevuld=0";
if(mysql_num_rows($sql) == 0) {
?>
en ook met
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql = "SELECT uid, mail, ingevuld FROM users WHERE mail='".$mail."' AND uniekeid='".$_GET['uid']."' AND ingevuld=0";
$result = mysql_query($sql);
if(mysql_num_rows($result) == 0) {
echo 'ongeldig';
}
else {
echo 'enquete';
}
?>
$sql = "SELECT uid, mail, ingevuld FROM users WHERE mail='".$mail."' AND uniekeid='".$_GET['uid']."' AND ingevuld=0";
$result = mysql_query($sql);
if(mysql_num_rows($result) == 0) {
echo 'ongeldig';
}
else {
echo 'enquete';
}
?>
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/home/paarsburo/domains/besidespurple.nl/public_html/enquete/formulier.php on line 24
line24 = if(mysql_num_rows($result) == 0) {
Ongetwijfeld doe ik iets fout maar wat?
Gewijzigd op 01/01/1970 01:00:00 door Michel van B
Wat PHP nu zegt is niets meer dan: "jammer, het lukt niet...".
Daarom heb ik een if/else-statement aangemaakt waarmee die kijkt of de query gelukt is. Zo ja, ga dan door naar het kijken of de enquete bestaat en nog niet ingevuld is (ingevuld=0). Zo nee, laat dan met mysql_error() zien wat er fout ging.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$sql = "SELECT uid, mail, ingevuld FROM users WHERE mail='".$mail."' AND uniekeid='".mysql_real_escape_string($_GET['uid'])."' AND ingevuld=0";
$result = mysql_query($sql);
if($result) {
if(mysql_num_rows($result) == 0) {
echo 'Enquete bestaat niet of hij is al ingevuld.';
} else {
echo 'Hier komt je enquete';
}
} else {
echo "Fout in je query: ".mysql_error();
}
?>
$sql = "SELECT uid, mail, ingevuld FROM users WHERE mail='".$mail."' AND uniekeid='".mysql_real_escape_string($_GET['uid'])."' AND ingevuld=0";
$result = mysql_query($sql);
if($result) {
if(mysql_num_rows($result) == 0) {
echo 'Enquete bestaat niet of hij is al ingevuld.';
} else {
echo 'Hier komt je enquete';
}
} else {
echo "Fout in je query: ".mysql_error();
}
?>
Gewijzigd op 01/01/1970 01:00:00 door - Ariën -
top bedankt.
euhm.. even de situatie.
In de database staat een email adres, een uid en de ingevuld staat op 0
ik heb de link als volgt
<a href=enquete.php?uid=1234>klik</a>
in de database staat een uid met 1234. (moet ik deze nu bij iedereen aangeven)
als ik op de link klik uit me mail dan krijg ik op de website hetvolgende:
Enquete bestaat niet of hij is al ingevuld.
Hoe kom ik er nou achter of iemand het al ingevult heeft of niet en hoe ziet php/mijn server dit?
Want waar komt $mail vandaan?
Quote:
Hoe kom ik er nou achter of iemand het al ingevult heeft of niet en hoe ziet php/mijn server dit?
Dat doet die code, zie mysql_num_rows
Gewijzigd op 01/01/1970 01:00:00 door - Ariën -
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$host="localhost"; // Host name
$username="xxx_xxx"; // Mysql username
$password="xxx"; // Mysql password
$db_name="xxx_xxx"; // Database name
$tbl_name="users"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql = "SELECT uid, mail, ingevuld FROM users WHERE mail='".$mail."' AND uid='".mysql_real_escape_string($_GET['uid'])."' AND ingevuld=0";
$result = mysql_query($sql);
if($result) {
if(mysql_num_rows($result) == 0) {
echo 'Enquete bestaat niet of hij is al ingevuld.';
} else {
echo 'Hier komt je enquete';
}
} else {
echo "Fout in je query: ".mysql_error();
}
?>
$host="localhost"; // Host name
$username="xxx_xxx"; // Mysql username
$password="xxx"; // Mysql password
$db_name="xxx_xxx"; // Database name
$tbl_name="users"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql = "SELECT uid, mail, ingevuld FROM users WHERE mail='".$mail."' AND uid='".mysql_real_escape_string($_GET['uid'])."' AND ingevuld=0";
$result = mysql_query($sql);
if($result) {
if(mysql_num_rows($result) == 0) {
echo 'Enquete bestaat niet of hij is al ingevuld.';
} else {
echo 'Hier komt je enquete';
}
} else {
echo "Fout in je query: ".mysql_error();
}
?>
Ik zat me ook al af te vragen waar die vandaan kwam maar dacht ik snap het niet helemaal het zal wel (is iets voor later)
is het niet logischer als het mail='".mysql_real_escape_string($_GET['mail'])."'
zou zijn want hij moet uit de database opgehaald worden
Ik snap nog niet helemaal hoe dit hele gebeuren werkt hoor
Kijk maar eens als je $sql echo'ed.
Komt die uit de URL, (net als het 'uid')? Gebruik $_GET['mail'] in je $sql.
Gewijzigd op 01/01/1970 01:00:00 door - Ariën -