IP in DATABASE
mysql_query("INSERT INTO ip (ip, date) VALUES (\"$ip\", \"$today\")");
Dit doet ik omdat ik voor de site een CAPTURE page wil maken dat betekend als het IP bekent is in de DATABASE dan moet de CAPTURE page niet opdagen maar als het IP adres niet bekend is dan moet eerst de CAPTURE page opdagen, ik was tot zo ver
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
include("db.php");
$ip = $_SERVER['REMOTE_ADDR'];
$sip = mysql_query("SELECT * FROM ip WHERE ip='$ip'");
echo $sip->ip;
if ($ip == $sip)
{
...
}
else
{
...
}
?>
include("db.php");
$ip = $_SERVER['REMOTE_ADDR'];
$sip = mysql_query("SELECT * FROM ip WHERE ip='$ip'");
echo $sip->ip;
if ($ip == $sip)
{
...
}
else
{
...
}
?>
Maar dit klopt niet, ik ben niet zo een ervaren phper
Variabelen buiten quotes halen plz..
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$sql="INSERT INTO ip (ip, date) VALUES ('".$ip."','".$today. "'";
$result=mysql_query($sql) or die(mysql_error());
if(mysql_affected_rows()==1){
//hier datgene wat je wilt doen als de query gelukt is
}
else{
//hier datgene wat je wilt doen als de query niet gelukt is
}
?>
$sql="INSERT INTO ip (ip, date) VALUES ('".$ip."','".$today. "'";
$result=mysql_query($sql) or die(mysql_error());
if(mysql_affected_rows()==1){
//hier datgene wat je wilt doen als de query gelukt is
}
else{
//hier datgene wat je wilt doen als de query niet gelukt is
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
Beetje raar dat je dat in een capture page wil doen. Je kan net zo handig gewoon standaard in je pagina inbouwen dat de controle altijd plaats vind. Merkt de bezoeker niets van, en jij ook niet. Het IP wordt toch altijd al mee verzonden, alleen je doet nu ook meteen iets met het ip.
Waar is de mysql_fetch_**** in je script?
Dat zou ik ook doen... binnen je eerste pagina controleren of IP adres in de database staat, zo ja: geen aktie, zo nee: IP opslaan. Harry
Dankjewel voor de script, maar ik krijg wel een foutmelding
---
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
@ de moderators en Harry
Ik zou graag meer willen weten over wat jullie daarmee bedoelen misschien zelfs in php code als dat mogelijk zou zijn?
Dank jullie wel
Panic schreef op 28.06.2008 13:24:
.. near '' ...
Er zal wel een $var leeg zijn zo te zien.
'' == leeg.
Verder: Lees de tutorials eens door. Er staan er zat.
Maar met deze script controleer ik toch niet of het IP adress in de DB zit? Dat is toch juist het tellen van wat er verwerkt word
Bij welk stukje script krijg je die foutmelding?
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
include('datcon.php');
$today = gmdate('Y-m-d H:i:s');
$ip = $_SERVER['REMOTE_ADDR'];
$sql= mysql_query("INSERT INTO ip (ip, date) VALUES ('".$ip."','".$today."')");
$result=mysql_query($sql) or die(mysql_error());
if(mysql_affacted_rows==1){
//hier datgene wat je wilt doen als de query gelukt is
}
else{
//hier datgene wat je wilt doen als de query niet gelukt is
}
?>
include('datcon.php');
$today = gmdate('Y-m-d H:i:s');
$ip = $_SERVER['REMOTE_ADDR'];
$sql= mysql_query("INSERT INTO ip (ip, date) VALUES ('".$ip."','".$today."')");
$result=mysql_query($sql) or die(mysql_error());
if(mysql_affacted_rows==1){
//hier datgene wat je wilt doen als de query gelukt is
}
else{
//hier datgene wat je wilt doen als de query niet gelukt is
}
?>
Alleen bij die // had ik gewone sites gezet
$sql= mysql_query("INSERT INTO ip (ip, date) VALUES ('" . $ip . "', NOW())");
if(mysql_affacted_rows==1){
Moet zijn:
if(mysql_affected_rows()==1){
En waarom wordt een query uitgevoerd met mysql_query() en vervolgens wordt de output daarvan weer uitgevoerd als een query met mysql_query(), hier ontgaat mij even het nut..
Twee domme foutjes inderdaad, thnx SanThe
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
include('dbphp');
$sql= "INSERT INTO ip (ip, date) VALUES ('" . $ip . "', NOW())";
$result=mysql_query($sql) or die(mysql_error());
if(mysql_affected_rows()==1){
echo "ip";
}
else{
echo "geen ip";
}
?>
include('dbphp');
$sql= "INSERT INTO ip (ip, date) VALUES ('" . $ip . "', NOW())";
$result=mysql_query($sql) or die(mysql_error());
if(mysql_affected_rows()==1){
echo "ip";
}
else{
echo "geen ip";
}
?>
Maar wat er nu gebeurd is hij echo't alleen maar: ip dus ook als er geen ip in staat, wat heb ik nu nog fout gedaan?
altijd als dit wordt geladen dan zet ik een veld in de database. Dus er is altijd een mysql_affected_row.
dus altijd ip
logisch dus :)
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
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
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$sQuery = "
SELECT ip
FROM ip
WHERE ip = '" . $ip . "'";
$sResult = mysql_query($sQuery);
if($sResult) {
if(mysql_num_rows($sResult) > 0) {
// wel records, dus ip is al opgeslagen
} else {
$iQuery = "
INSERT INTO ip (
ip,
datum
) VALUES (
'" . $ip . "',
NOW()
)";
$iResult = mysql_query($iQuery);
if($iResult) {
if(mysql_affected_rows() == 1) {
echo 'IP opgeslagen';
} else {
echo 'IP niet opgeslagen';
}
} else {
echo mysql_error() . ' in query: '.$iQuery;
}
}
} else {
echo mysql_error() . ' in query: '.$sQuery;
}
?>
$ip = $_SERVER['REMOTE_ADDR'];
$sQuery = "
SELECT ip
FROM ip
WHERE ip = '" . $ip . "'";
$sResult = mysql_query($sQuery);
if($sResult) {
if(mysql_num_rows($sResult) > 0) {
// wel records, dus ip is al opgeslagen
} else {
$iQuery = "
INSERT INTO ip (
ip,
datum
) VALUES (
'" . $ip . "',
NOW()
)";
$iResult = mysql_query($iQuery);
if($iResult) {
if(mysql_affected_rows() == 1) {
echo 'IP opgeslagen';
} else {
echo 'IP niet opgeslagen';
}
} else {
echo mysql_error() . ' in query: '.$iQuery;
}
}
} else {
echo mysql_error() . ' in query: '.$sQuery;
}
?>
Let even op 'date'. Dat is namelijk een gereserveerd woord in SQL.