Avatar billede dvdrip.dk Nybegynder
08. december 2003 - 18:25 Der er 11 kommentarer og
1 løsning

Indsæt Ip adresser ind i mysql

Jeg skal bruge et script, som skal tage ens IP og sætte den ind i mysql, og det skal gøre sådan at alle de IP´er der ikke er inde i mysql databasen komme ind på f.eks. /forside.htm og dem der er der, kommer ind på f.eks. /forside1.htm
Og så skal det restarte sig selv hver 24time

Altså hvis du besøger siden første gang, bliver du smidt ind på /forside.htm og hvis du har besøgt siden før bliver du smidt ind på /forside1.htm
Avatar billede Slettet bruger
08. december 2003 - 19:02 #1
Noget i stil med:

<?php
$ip=$_SERVER['REMOTE_ADDR'];

// indsæt selv kode til at åbne database her

$result=mysql_query("SELECT tid FROM tabel WHERE ip='{$ip}' AND TO_DAYS(tid)=TO_DAYS(NOW())") or die mysql_error();

if (mysql_num_rows($result)==0) {
  // Første besøg idag
  mysql_query("INSERT INTO tabel (ip, tid) VALUES ('{$ip}', NOW())") or die mysql_error();
  header("Location: http://server/forside.htm");
} else {
  header("Location: http://server/forside1.htm");
}
?>

Du skal lave en tabel med 2 kolonner. En tekst på 15 tegn til ip og et timestamp til tiden.

Og jeg skal ikke have mere end allerhøjst 60 point for dette.
Avatar billede dvdrip.dk Nybegynder
08. december 2003 - 20:28 #2
Takker, så kan du få de sidste 40 hvis du giver mig et SQL-dump af den. Fordi jeg er nemlig ikke så god til mySQL endnu...
Avatar billede Slettet bruger
08. december 2003 - 20:49 #3
CREATE TABLE `ipliste` ( `ip` char(15) default NULL, `tid` date default NULL ) TYPE=MyISAM

Her har jeg kaldt tabellen ipliste, så du skal lige rette ordet 'tabel' i scriptet.
Avatar billede dvdrip.dk Nybegynder
08. december 2003 - 21:37 #4
Parse error: parse error, unexpected T_STRING on line 10

Er det mig der har lavet en fejl, eller dig?
Avatar billede Slettet bruger
08. december 2003 - 21:42 #5
godt spørgsmål... Hvordan ser din linie 10 ud?
Avatar billede dvdrip.dk Nybegynder
08. december 2003 - 21:46 #6
<?php
// Opretter forbindelse til database
$conn = mysql_connect("******", "*****", "****");
mysql_select_db("ipliste");

$ip=$_SERVER['REMOTE_ADDR'];

// indsæt selv kode til at åbne database her

$result=mysql_query("SELECT tid FROM tabel WHERE ip='{$ip}' AND TO_DAYS(tid)=TO_DAYS(NOW())") or die mysql_error();

if (mysql_num_rows($result)==0) {
  // Første besøg idag
  mysql_query("INSERT INTO tabel (ip, tid) VALUES ('{$ip}', NOW())") or die mysql_error();
  header("Location: http://www.google.dk");
} else {
  header("Location: http://www.jubii.dk");
}
?>
Avatar billede Slettet bruger
08. december 2003 - 22:06 #7
$result=mysql_query("SELECT tid FROM tabel WHERE ip='{$ip}' AND TO_DAYS(tid)=TO_DAYS(NOW())") or die(mysql_error());

bør virke bedre. Kaldte du tabellen i ipliste-databasen for tabel eller ipliste? Hvis du kaldte den ipliste, skal du rette ordet tabel i de to linier med mysql_query.
Avatar billede dvdrip.dk Nybegynder
08. december 2003 - 22:26 #8
<?php
// Opretter forbindelse til database
$conn = mysql_connect("localhost", "konkurrence", "******");
mysql_select_db("konkurrence");
$ip=$_SERVER['REMOTE_ADDR'];
// indsæt selv kode til at åbne database her
$result=mysql_query("SELECT tid FROM ipliste WHERE ip='{$ip}' AND TO_DAYS(tid)=TO_DAYS(NOW())") or die mysql_error();
if (mysql_num_rows($result)==0) {
  // Første besøg idag
  $result=mysql_query("SELECT tid FROM ipliste WHERE ip='{$ip}' AND TO_DAYS(tid)=TO_DAYS(NOW())") or die(mysql_error());
  header("Location: http://www.dvdrip.dk");
} else {
  header("Location: http://www.jubii.dk");
}
?>


CREATE TABLE `ipliste` (
  `ip` char(15) default NULL,
  `tid` date default NULL
) TYPE=MyISAM;


Sådan ser det hele ud... men det virker ikke ved mig :/
Avatar billede Slettet bruger
08. december 2003 - 22:42 #9
Nu var det lige den forkerte "linie 10" du rettede. ;-) Det var derfor, jeg spurgte efter din linie 10, for jeg vidste jo ikke, om du havde indsat ekstra linier eller hvor. I den kode, du viste før, var den første linie med mysql_query på linie 10, men den du viste nu havde den anden mysql_query på linie 10, fordi der var færre blanke linier.

Den første linie med mysql_query skal se sådan ud:

$result=mysql_query("SELECT tid FROM tabel WHERE ip='{$ip}' AND TO_DAYS(tid)=TO_DAYS(NOW())") or die(mysql_error());

Og den anden skal se sådan ud:

mysql_query("INSERT INTO tabel (ip, tid) VALUES ('{$ip}', NOW())") or die(mysql_error());

Og ja, den anden af de to linier skulle også rettes, men kun slutningen af den.
Avatar billede Slettet bruger
08. december 2003 - 22:43 #10
Og selvfølgelig skal der stå ipliste i stedet for tabel i begge linierne.
Avatar billede dvdrip.dk Nybegynder
08. december 2003 - 22:49 #11
JUBII det virker... Mange mange gange tak skal du have...
Avatar billede Slettet bruger
08. december 2003 - 22:59 #12
Nu gav du mig jo 200 alligevel. Jeg sagde da, at jeg ikke skulle have mere end højst 60.

Nåmen tak for pointene så.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester