IP in DATABASE

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Panic

Panic

28/06/2008 00:59:00
Quote Anchor link
Ik heb een form gemaakt en als je die invult wordt je IP opgeslagen

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)
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
<?
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
 
PHP hulp

PHP hulp

12/05/2024 03:34:08
 
Onbekend Onbekend

Onbekend Onbekend

28/06/2008 02:07:00
Quote Anchor link
Variabelen buiten quotes halen plz..
 
Klaasjan Boven

Klaasjan Boven

28/06/2008 07:59:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
 
Robert Deiman

Robert Deiman

28/06/2008 09:24:00
Quote Anchor link
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.
 
- SanThe -

- SanThe -

28/06/2008 09:30:00
Quote Anchor link
Waar is de mysql_fetch_**** in je script?
 
Harry

Harry

28/06/2008 10:02:00
Quote Anchor link
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
 
Panic

Panic

28/06/2008 13:24:00
Quote Anchor link
@ KlaasjanBoven
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
 
- SanThe -

- SanThe -

28/06/2008 13:27:00
Quote Anchor link
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.
 
Panic

Panic

28/06/2008 13:49:00
Quote Anchor link
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
 
- SanThe -

- SanThe -

28/06/2008 14:19:00
Quote Anchor link
Bij welk stukje script krijg je die foutmelding?
 
Panic

Panic

28/06/2008 14:32:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
}
?>


Alleen bij die // had ik gewone sites gezet
 
- SanThe -

- SanThe -

28/06/2008 15:11:00
Quote Anchor link
Gebruik gewoon NOW()
$sql= mysql_query("INSERT INTO ip (ip, date) VALUES ('" . $ip . "', NOW())");

if(mysql_affacted_rows==1){
Moet zijn:
if(mysql_affected_rows()==1){
 
Onbekend Onbekend

Onbekend Onbekend

28/06/2008 15:12:00
Quote Anchor link
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..
 
Klaasjan Boven

Klaasjan Boven

28/06/2008 15:13:00
Quote Anchor link
Twee domme foutjes inderdaad, thnx SanThe
 
Panic

Panic

28/06/2008 20:34:00
Quote Anchor link
Ik heb alles verbeterd wat er net genoemd werd:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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";
}

?>


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

michael

29/06/2008 03:19:00
Quote Anchor link
Wat je nu doet:

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 :)
 
Jesper Diovo

Jesper Diovo

29/06/2008 10:32:00
Quote Anchor link
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
<?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;
}

?>


Let even op 'date'. Dat is namelijk een gereserveerd woord in SQL.
 



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.