Het probleem is:
Ik zet mijn ip in de database (ja op de juiste plek)
Maar ik wordt niet doorgestuurd.
Plus ik besef dat er uit meer rows moet worden gehaald dan alleen "report"
select ip from botnet_ip_blacklist
select ipadress from proxy_ip_blacklist
Ik krijg het alleen niet voor elkaar.
Wat doe ik fout, en als je de fout ziet, graag de oplossing geheel.
<?php
$visitor = $_SERVER['REMOTE_ADDR'];
require ('includes/config.php');
$query = "SELECT ipadres FROM report WHERE ipadres = '.mysql_real_escape_string($visitor).'";
$result = mysql_query($query);
if (mysql_num_rows($result) > 0)
{
header('Location: http://www.eenwebsite.nl/ffwatanders
else
{
//geen report bekend, alles prima, blijf op pagina
}
?>
- HELLUP query werkt niet
-
18-03-2017, 20:34 #1Particulier
- Berichten
- 132
- Lid sinds
- 9 Jaar
HELLUP query werkt niet
-
18-03-2017, 20:50 #2
- Berichten
- 1.290
- Lid sinds
- 13 Jaar
Re: HELLUP query werkt niet
Kijk is naar PDO, dit is verouderd.
-
18-03-2017, 21:05 #3Particulier
- Berichten
- 132
- Lid sinds
- 9 Jaar
Re: HELLUP query werkt niet
dit zegt mij nog weinig, maar toch bedankt voor de moeite
-
18-03-2017, 21:43 #4Particulier
- Berichten
- 132
- Lid sinds
- 9 Jaar
Re: HELLUP query werkt niet
Met andere woorden, weet iemand hoe het dan wel moet?
-
18-03-2017, 22:47 #5
- Berichten
- 138
- Lid sinds
- 18 Jaar
Re: HELLUP query werkt niet
Voeg na de regel
$query = ...
het volgende toe:
echo $query; die();
Geeft dit de gewenste query?
Voor deze query ook eens in phpmyadmin in. Geeft dat het gewenste resultaat?
-
18-03-2017, 22:56 #6Particulier
- Berichten
- 132
- Lid sinds
- 9 Jaar
Re: HELLUP query werkt niet
-
18-03-2017, 23:22 #7
- Berichten
- 138
- Lid sinds
- 18 Jaar
Re: HELLUP query werkt niet
Het klopt dat daarmee je select in beeld komt. Maar klopt die select ook met wat je verwacht?
-
18-03-2017, 23:27 #8Particulier
- Berichten
- 132
- Lid sinds
- 9 Jaar
Re: HELLUP query werkt niet
ik zit in de juiste DB, heb de juiste tabel, heb de juiste row,
report is de tabel,
ik wil ook botnet_ip_blacklist en proxy_ip_blacklist als tabel,
In die tabellen staan (bij de ene ip de andere ipadress en bij tabel report ipadres.
Dus het zou moeten werken, ware het niet dat het niet werkt.
Want ik heb mijn eigen ip ingevoerd, maar 0 doorgestuurd worden he
-
19-03-2017, 01:24 #9
- Berichten
- 5
- Lid sinds
- 12 Jaar
Re: HELLUP query werkt niet
$query = "SELECT ipadres FROM report WHERE ipadres = '.mysql_real_escape_string($visitor).'";
Je opent en sluit je string met dubbele aanhalingstekens (de " voor SELECT en de " voor de ;). Dan moet je ook een dubbel aanhalingsteken gebruiken als je de string onderbreekt om een functie aan te roepen (mysql_real_escape_string(), tussen de enkele aanhalingstekens die je gebruikt om de string in de query te openen en sluiten).
M.a.w.:
$query = "SELECT ipadres FROM report WHERE ipadres = '".mysql_real_escape_string($visitor)."'";
De tip van Maurice was een hele goede: door even de query op het scherm te printen in plaats van hem gelijk naar je database te sturen, had je kunnen zien dat er letterlijk "mysql_real_escape_string()" in je query stond, wat natuurlijk niet goed is ;-)
Daarnaast wat Chiel zei: de mysql_* functies van PHP zijn al een aantal jaar deprecated, en in PHP 7 zijn ze echt verwijderd. Het is even wat werk om je code om te schrijven naar PDO, maar het gaat je een hoop problemen besparen als je hosting partij besluit te upgraden.
Edit: daarnaast mis je een } voor je else:
if (mysql_num_rows($result) > 0)
{
header('Location: http://www.eenwebsite.nl/ffwatanders
}
else
{
//geen report bekend, alles prima, blijf op pagina
}
-
19-03-2017, 01:38 #10Particulier
- Berichten
- 132
- Lid sinds
- 9 Jaar
Re: HELLUP query werkt niet
$query = "SELECT ipadres FROM report WHERE ipadres = '.mysql_real_escape_string($visitor).'";
Je opent en sluit je string met dubbele aanhalingstekens (de " voor SELECT en de " voor de ;). Dan moet je ook een dubbel aanhalingsteken gebruiken als je de string onderbreekt om een functie aan te roepen (mysql_real_escape_string(), tussen de enkele aanhalingstekens die je gebruikt om de string in de query te openen en sluiten).
M.a.w.:
$query = "SELECT ipadres FROM report WHERE ipadres = '".mysql_real_escape_string($visitor)."'";
De tip van Maurice was een hele goede: door even de query op het scherm te printen in plaats van hem gelijk naar je database te sturen, had je kunnen zien dat er letterlijk "mysql_real_escape_string()" in je query stond, wat natuurlijk niet goed is ;-)
Daarnaast wat Chiel zei: de mysql_* functies van PHP zijn al een aantal jaar deprecated, en in PHP 7 zijn ze echt verwijderd. Het is even wat werk om je code om te schrijven naar PDO, maar het gaat je een hoop problemen besparen als je hosting partij besluit te upgraden.
Edit: daarnaast mis je een } voor je else:
if (mysql_num_rows($result) > 0)
{
header('Location: http://www.eenwebsite.nl/ffwatanders
}
else
{
//geen report bekend, alles prima, blijf op pagina
}
Misschien een idee dat iemand dit voor mij voorgekauwd neer kan zetten in dat PDO ?
-
19-03-2017, 01:44 #11
- Berichten
- 5
- Lid sinds
- 12 Jaar
Re: HELLUP query werkt niet
Weet je zeker dat het bij je query fout gaat?
Ik zie nu ook dat je header() niet afgesloten wordt:
header('Location: http://www.eenwebsite.nl/ffwatanders');
-
19-03-2017, 03:29 #12
- Berichten
- 74
- Lid sinds
- 9 Jaar
Re: HELLUP query werkt niet
Rick, complimenten. Heldere uitleg.
Hierbij een PDO variant met een functie die ook het IP ophaalt bij het gebruik van een proxy, vpn e.d.
http://www.phptuts.nl/view/27/1/ geeft een duidelijke uitleg van PDO, ik raad je aan dit ook voortaan te hanteren. mysql is zeer onveilig.
<?php
require('includes/config.php');
// PDO connectie variables
$host = '';
$dbname = '';
$username = '';
$password = '';
// PDO connectie setup
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
try {
$db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);
} catch (PDOException $ex) {
die("Failed to connect to the database: " . $ex->getMessage());
}
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
// mooie functie om het IP te achterhalen
function getRealIpAddress()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
// query middels PDO, de functie wordt aangeroepen in de bindValue.
$getClient = $db->prepare("SELECT `ipadres` FROM `report` WHERE `ipadres` =:visitor");
$getClient->bindValue(':visitor', getRealIpAddress(), PDO::PARAM_STR);
$getClient->execute();
// als er resultaat is dan stuur je de gebruiker terug, een else is niet nodig.
if ($getClient->rowCount()) {
header('Location: http://www.eenwebsite.nl/ffwatanders');
exit;
}
?>
-
19-03-2017, 04:01 #13
- Berichten
- 434
- Lid sinds
- 15 Jaar
Re: HELLUP query werkt niet
- never mind, anderen waren mij al voor.
-
19-03-2017, 09:59 #14Particulier
- Berichten
- 132
- Lid sinds
- 9 Jaar
Re: HELLUP query werkt niet
Rick, complimenten. Heldere uitleg.
Hierbij een PDO variant met een functie die ook het IP ophaalt bij het gebruik van een proxy, vpn e.d.
http://www.phptuts.nl/view/27/1/ geeft een duidelijke uitleg van PDO, ik raad je aan dit ook voortaan te hanteren. mysql is zeer onveilig.
<?php
require('includes/config.php');
// PDO connectie variables
$host = '';
$dbname = '';
$username = '';
$password = '';
// PDO connectie setup
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
try {
$db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);
} catch (PDOException $ex) {
die("Failed to connect to the database: " . $ex->getMessage());
}
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
// mooie functie om het IP te achterhalen
function getRealIpAddress()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
// query middels PDO, de functie wordt aangeroepen in de bindValue.
$getClient = $db->prepare("SELECT `ipadres` FROM `report` WHERE `ipadres` =:visitor");
$getClient->bindValue(':visitor', getRealIpAddress(), PDO::PARAM_STR);
$getClient->execute();
// als er resultaat is dan stuur je de gebruiker terug, een else is niet nodig.
if ($getClient->rowCount()) {
header('Location: http://www.eenwebsite.nl/ffwatanders');
exit;
}
?>
OMG dit is ongeveer een verschil van dag en nacht.
Dacht ik eindelijk eens wat te kunnen maken hahahaha
Ik ga mij zeker hierin verdiepen!
Mijn dank is zeer zeer groot
-
19-03-2017, 11:26 #15Particulier
- Berichten
- 132
- Lid sinds
- 9 Jaar
Re: HELLUP query werkt niet
Rick, complimenten. Heldere uitleg.
Hierbij een PDO variant met een functie die ook het IP ophaalt bij het gebruik van een proxy, vpn e.d.
http://www.phptuts.nl/view/27/1/ geeft een duidelijke uitleg van PDO, ik raad je aan dit ook voortaan te hanteren. mysql is zeer onveilig.
<?php
require('includes/config.php');
// PDO connectie variables
$host = '';
$dbname = '';
$username = '';
$password = '';
// PDO connectie setup
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
try {
$db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);
} catch (PDOException $ex) {
die("Failed to connect to the database: " . $ex->getMessage());
}
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
// mooie functie om het IP te achterhalen
function getRealIpAddress()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
// query middels PDO, de functie wordt aangeroepen in de bindValue.
$getClient = $db->prepare("SELECT `ipadres` FROM `report` WHERE `ipadres` =:visitor");
$getClient->bindValue(':visitor', getRealIpAddress(), PDO::PARAM_STR);
$getClient->execute();
// als er resultaat is dan stuur je de gebruiker terug, een else is niet nodig.
if ($getClient->rowCount()) {
header('Location: http://www.eenwebsite.nl/ffwatanders');
exit;
}
?>
Ik zit alleen nog met één dingetje
Alleen dat wil niet helemaal zoals ik dat doe
$getClient = $db->prepare("SELECT `ipadress` FROM `report`,`nog_een_tabel`,`en_jawel_nog_een` WHERE `ipadress` =:visitor");
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic