Controleren of iets is de database aanwezig is
Ik ben een soort stem-systeem aan het maken. Je kan dan een handtekening zetten, alleen één iemand mag niet twee keer stemmen, dit (wou ik) controleren doormiddel van het IP-adres. Alleen ik zou niet weten hoe je kijkt of een bepaald gegeven in de database aanwezig is. Ik hoop dat iemand mij kan helpen:
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
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
<?php
// Contact maken met de MySQL-server
include('connect.php');
// Invoergegevens in een variabele zetten
$naam = addslashes($_POST['naam']);
$mail = addslashes($_POST['mail']);
$school = addslashes($_POST['school']);
$plaats = addslashes($_POST['plaats']);
$ip = $_SERVER['REMOTE_ADDR'];
// SQL-query opgeven in variabele
$sql = "INSERT INTO anticorvee
(naam, mail, school, plaats, ip, datum)
VALUES
('$naam', '$mail', '$school', '$plaats', '$ip', NOW())";
// Gegevens invoeren in de MySQL-database
if (mysql_query($sql) == FALSE) {
die('Het stemmen om problemen met de database mislukt. Als u toch wilt stemmen, stuur dan een e-mail naar <a href="mailto:[email protected]">[email protected]</a>, met de titel HAND.');
mysql_error();
}
?>
// Contact maken met de MySQL-server
include('connect.php');
// Invoergegevens in een variabele zetten
$naam = addslashes($_POST['naam']);
$mail = addslashes($_POST['mail']);
$school = addslashes($_POST['school']);
$plaats = addslashes($_POST['plaats']);
$ip = $_SERVER['REMOTE_ADDR'];
// SQL-query opgeven in variabele
$sql = "INSERT INTO anticorvee
(naam, mail, school, plaats, ip, datum)
VALUES
('$naam', '$mail', '$school', '$plaats', '$ip', NOW())";
// Gegevens invoeren in de MySQL-database
if (mysql_query($sql) == FALSE) {
die('Het stemmen om problemen met de database mislukt. Als u toch wilt stemmen, stuur dan een e-mail naar <a href="mailto:[email protected]">[email protected]</a>, met de titel HAND.');
mysql_error();
}
?>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?PHP
$uery = mysql_query("SELECT * FROM lalal WHERE ip='".$_SERVER['REMOTE_ADDR']."'");
if(mysql_num_rows($uery) >= 1) {
echo 'u heeft al gestemt';
}
?>
$uery = mysql_query("SELECT * FROM lalal WHERE ip='".$_SERVER['REMOTE_ADDR']."'");
if(mysql_num_rows($uery) >= 1) {
echo 'u heeft al gestemt';
}
?>
ik hoop dat ik je een beetje op weg help
Je kunt better sessions gebruiken, maak er 1 aan en laat het voor 2 weken (?) runnen (totdat je een nieuwe poll hebt).
Ik weet niet of dat nut heeft, ik wil het maar 1 keertje gebruiken. Alleen met succes wordt het misschien nogmaals gebruikt, om een ander doel te bereiken bijvoorbeeld. Nooit meer nakomen lijkt me wel wat... :p
sessies blijven maximaal geldig totdat je de browser afsluit
Dus je hetb er niets aan.
Dus je hetb er niets aan.
Han:
ik hoop dat ik je een beetje op weg help
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?PHP
$uery = mysql_query("SELECT * FROM lalal WHERE ip='".$_SERVER['REMOTE_ADDR']."'");
if(mysql_num_rows($uery) >= 1) {
echo 'u heeft al gestemt';
}
?>
$uery = mysql_query("SELECT * FROM lalal WHERE ip='".$_SERVER['REMOTE_ADDR']."'");
if(mysql_num_rows($uery) >= 1) {
echo 'u heeft al gestemt';
}
?>
ik hoop dat ik je een beetje op weg help
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$sql = mysql_query("SELECT COUNT(`id`) FROM tabel WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'");
$aantal = mysql_result($sql, 0);
if ($aantal >= 1) {
# Reeds gestemd
} else {
# Niet gestemd
}
?>
$sql = mysql_query("SELECT COUNT(`id`) FROM tabel WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'");
$aantal = mysql_result($sql, 0);
if ($aantal >= 1) {
# Reeds gestemd
} else {
# Niet gestemd
}
?>
Count is sneller dan mysql_num_rows, mysql_num_rows is ook zinloos, want je haalt niet eens data op uit de database.
Als je nu data zou ophalen, en wil weten hoeveel je ophaalt, dan is mysql_num_rows een optie, anders lijkt me dit verspilling.
Maar mysql_num_rows() werkt wel, alleen wil ik nu nog tegengaan dat er een of andere grapjas is die htm/php/sql gaat gebruiken zodat ie de site platlegt. Ik ben er inmiddels achter dat je dat kunt doen met htmlentities(), maar wat moet ik nog meer gebruiken??
$naam = addslashes($_POST['naam']);
$mail = addslashes($_POST['mail']);
$school = addslashes($_POST['school']);
$plaats = addslashes($_POST['plaats']);
$ip = $_SERVER['REMOTE_ADDR'];
word:
$naam = htmlentities($_POST['naam']);
$mail = htmlentities($_POST['mail']);
$school = htmlentities($_POST['school']);
$plaats = htmlentities($_POST['plaats']);
$ip = $_SERVER['REMOTE_ADDR'];
$mail = addslashes($_POST['mail']);
$school = addslashes($_POST['school']);
$plaats = addslashes($_POST['plaats']);
$ip = $_SERVER['REMOTE_ADDR'];
word:
$naam = htmlentities($_POST['naam']);
$mail = htmlentities($_POST['mail']);
$school = htmlentities($_POST['school']);
$plaats = htmlentities($_POST['plaats']);
$ip = $_SERVER['REMOTE_ADDR'];
Gewijzigd op 29/09/2005 18:19:00 door Roy Bongers
Nu hebik het script op de webserver gezet, en tot mijn verbazing is het nu mogelijk om wel twee maal te stemmen met hetzelfde IP-adres. Weet iemand wat er fout aan is..?
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
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
<?php
// De teksten en het menu includen
include('config/text.inc.php');
include('config/menu.inc.php');
// Contact maken met de MySQL-server
include('includes/connect.inc.php');
// Invoergegevens in een variabele zetten
$naam = htmlentities($_POST['naam']);
$mail = htmlentities($_POST['mail']);
$school = htmlentities($_POST['school']);
$plaats = htmlentities($_POST['plaats']);
$ip = $_SERVER['REMOTE_ADDR'];
// SQL-query opgeven in variabele
$sql = "INSERT INTO anticorvee
(naam, mail, school, plaats, ip, datum)
VALUES
('$naam', '$mail', '$school', '$plaats', '$ip', NOW())";
// Controleren of er al getekend is
$query = mysql_query("SELECT ip FROM anticorvee WHERE ip='" .$ip. "'");
if (mysql_num_rows($query) >= 1) {
$_text= $text['algezet'];
$titel = "Babaluji // Je hebt al getekend!";
}
// Kijken of de MySQL-query uitgevoerd kan worden
else {
if (mysql_query($sql) == FALSE) {
$titel = "Babaluji // Het stemmen is mislukt";
$_text = $text['mislukt'];
}
else {
$titel = "Babaluji // Het stemmen is succesvol gelukt";
$_text = $text['succesvol'];
}
}
// De template-file includen
include('templates/standard.inc.php');
?>
// De teksten en het menu includen
include('config/text.inc.php');
include('config/menu.inc.php');
// Contact maken met de MySQL-server
include('includes/connect.inc.php');
// Invoergegevens in een variabele zetten
$naam = htmlentities($_POST['naam']);
$mail = htmlentities($_POST['mail']);
$school = htmlentities($_POST['school']);
$plaats = htmlentities($_POST['plaats']);
$ip = $_SERVER['REMOTE_ADDR'];
// SQL-query opgeven in variabele
$sql = "INSERT INTO anticorvee
(naam, mail, school, plaats, ip, datum)
VALUES
('$naam', '$mail', '$school', '$plaats', '$ip', NOW())";
// Controleren of er al getekend is
$query = mysql_query("SELECT ip FROM anticorvee WHERE ip='" .$ip. "'");
if (mysql_num_rows($query) >= 1) {
$_text= $text['algezet'];
$titel = "Babaluji // Je hebt al getekend!";
}
// Kijken of de MySQL-query uitgevoerd kan worden
else {
if (mysql_query($sql) == FALSE) {
$titel = "Babaluji // Het stemmen is mislukt";
$_text = $text['mislukt'];
}
else {
$titel = "Babaluji // Het stemmen is succesvol gelukt";
$_text = $text['succesvol'];
}
}
// De template-file includen
include('templates/standard.inc.php');
?>
Gewijzigd op 02/10/2005 12:40:00 door Eric Cartman
Rafael:
Count is sneller dan mysql_num_rows, mysql_num_rows is ook zinloos, want je haalt niet eens data op uit de database.
Als je nu data zou ophalen, en wil weten hoeveel je ophaalt, dan is mysql_num_rows een optie, anders lijkt me dit verspilling.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$sql = mysql_query("SELECT COUNT(`id`) FROM tabel WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'");
$aantal = mysql_result($sql, 0);
if ($aantal >= 1) {
# Reeds gestemd
} else {
# Niet gestemd
}
?>
$sql = mysql_query("SELECT COUNT(`id`) FROM tabel WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'");
$aantal = mysql_result($sql, 0);
if ($aantal >= 1) {
# Reeds gestemd
} else {
# Niet gestemd
}
?>
Count is sneller dan mysql_num_rows, mysql_num_rows is ook zinloos, want je haalt niet eens data op uit de database.
Als je nu data zou ophalen, en wil weten hoeveel je ophaalt, dan is mysql_num_rows een optie, anders lijkt me dit verspilling.
Ik heb dit nog even geprobeerd, maar dit werkt ook niet. Heeft niemand een oplossing?
Gewijzigd op 02/10/2005 13:42:00 door Eric Cartman
Heb je de velden 'id' & 'ip' in de database?
Heb je de tabelnaam aangepast?
Heb je de tabelnaam aangepast?
Nee, ik sla SQL-queries altijd op in een textbestandje. Dan ga ik in PHPmyadmin naar SQL en draai ik die SQL-query, zodat ik precies dezelfde tabel krijg. Daar kan het dus niet aan liggen.
...
M'n bovenstaande query diende als voorbeeld, en heeft niets te maken met je database structuur... Dus hoe kan jij dan "precies dezelfde" tabel krijgen?
M'n bovenstaande query diende als voorbeeld, en heeft niets te maken met je database structuur... Dus hoe kan jij dan "precies dezelfde" tabel krijgen?
Ik vat het nou niet helemaal meer. Je post een voorbeeld, en dat is helemaal niet van toepassing op dit script..? Of zit ik er nou weer 'ns flink naast..?
Je wou kijken of er iets aanwezig was in de database, dus gaf ik een voorbeeld om dit te tellen.
Dit is GEEN kant-en-klaar script, maar moet je zelf aanpassen naar jouw database...
Dit is GEEN kant-en-klaar script, maar moet je zelf aanpassen naar jouw database...
Gewijzigd op 02/10/2005 14:54:00 door Alfred -
Dit heb ik gedaan, maar het werkt nog steeds niet. Ik krijg de volgende foutmelding:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\apachefriends\xampp\xampp\htdocs\test\Babaluji\stem.php on line 25
En daaronder komt de lay-out te staan en vermelding Succesvol gestemd. Dan werkt het toch niet..?
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\apachefriends\xampp\xampp\htdocs\test\Babaluji\stem.php on line 25
En daaronder komt de lay-out te staan en vermelding Succesvol gestemd. Dan werkt het toch niet..?
Ongeldige query... Zoals ik zei, zelf aanpassen naar jouw db.
Ik heb hem volgens mij toch goed aangepast:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
// Controleren of er al getekend is
$query = mysql_query("SELECT COUNT(`ip`) FROM tabel WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'");
$aantal = mysql_result($query, 0);
if ($aantal >= 1) {
$_text= $text['algezet'];
$titel = "Babaluji // Je hebt al getekend!";
}
?>
// Controleren of er al getekend is
$query = mysql_query("SELECT COUNT(`ip`) FROM tabel WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'");
$aantal = mysql_result($query, 0);
if ($aantal >= 1) {
$_text= $text['algezet'];
$titel = "Babaluji // Je hebt al getekend!";
}
?>
Maak er eens
van
Code (php)
1
2
3
2
3
<?php
$query = mysql_query("SELECT COUNT(`ip`) FROM tabel WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'") or die (mysql_error());
?>
$query = mysql_query("SELECT COUNT(`ip`) FROM tabel WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'") or die (mysql_error());
?>
van
Misschien heeft het namelijk met het groeperen te maken.
In sommige gevallen bij MAX, MIN, SUM, COUNT, enz eist de query een GROUP BY
Voor jouw query lijkt het me een beetje vreemd, maar het is te proberen.
Dan krijg je zoiets als
In sommige gevallen bij MAX, MIN, SUM, COUNT, enz eist de query een GROUP BY
Voor jouw query lijkt het me een beetje vreemd, maar het is te proberen.
Dan krijg je zoiets als
Code (php)
1
2
3
2
3
<?php
$query = mysql_query("SELECT COUNT(`ip`) FROM tabel WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "' GROUP BY gebrid") or die (mysql_error());
?>
$query = mysql_query("SELECT COUNT(`ip`) FROM tabel WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "' GROUP BY gebrid") or die (mysql_error());
?>
Gewijzigd op 02/10/2005 15:44:00 door Barman V
Sorry Rafael, je had toch gelijk. Ik had FROM tabel niet aangepast. Hij werkt dus wel..! Bedankt..!
--edit
Je had in ieder geval gelijk voor mijn lokale server. Op de server waar de website staat (phpBBhost), lukt het nog steeds niet om mensen maar 1 keer te laten stemmen.
--edit
Je had in ieder geval gelijk voor mijn lokale server. Op de server waar de website staat (phpBBhost), lukt het nog steeds niet om mensen maar 1 keer te laten stemmen.
Gewijzigd op 02/10/2005 15:55:00 door Eric Cartman




