Avatar billede novalogic Nybegynder
23. oktober 2004 - 21:23 Der er 33 kommentarer

hente info fra en anden hjemmeside

en af mine venner har en hjemmeside fra 1.go og kan ikke køre ip block så vi har valgt at ligge det ud på min hjemmeside og så skal den bare hente info fra mig.

<? include "http://www.psychokatten.dk/andreas/tjek.php"; ?>

men den virker ikke, hvordan kan man så lave den?
Avatar billede sitzz Nybegynder
23. oktober 2004 - 21:27 #1
brug readfile();

http://dk.php.net/readfile
Avatar billede Slettet bruger
23. oktober 2004 - 21:28 #2
du kan ikke inkludere filer fra andre servere.
du kan derfor forbinde direkte til en eventuel mysql database, hvis denne tillader forbindelser udefra.
Avatar billede sitzz Nybegynder
23. oktober 2004 - 21:28 #3
Avatar billede erikjacobsen Ekspert
23. oktober 2004 - 21:30 #4
Din include bør virke, men includerer ikke PHP-koden, men
den genererede HTML-kode, som sikkert ikke er noget.

Du kan kalde den noget andet end .php, men det ændrer ingenting,
da php-koden så afvikles på 1go's maskiner, og så kunne den ligeså
godt ligge der.

Hvad er det egentlig du vil? ;)
Avatar billede novalogic Nybegynder
23. oktober 2004 - 21:32 #5
Vil du evt. lige fikse det for mig?
Avatar billede novalogic Nybegynder
23. oktober 2004 - 21:33 #6
Jeg vil gerne have at han skal kunne hente info fra min tjek.php side (hvor der står om man er banned eller ej)
Avatar billede erikjacobsen Ekspert
23. oktober 2004 - 21:37 #7
Du kan jo ikke på din side umiddelbart se IP-nummeret der kommer til
1go's server. Hvad forhindrer ham i at gøre det selv på 1go's server?
Avatar billede andreas.s.l Nybegynder
23. oktober 2004 - 21:39 #8
Det der har siden på 1go. Jeg kan ikke have den på min egen server pga. når jeg prøver at logge ind kan den ikke?
Avatar billede sitzz Nybegynder
23. oktober 2004 - 21:42 #9
Hvis din "tjek.php" side, returnerer alle bannede IP adresser, på særskilte linier, burde det kunne gøres sådan:

---------
$banned = file("http://www.psychokatten.dk/andreas/tjek.php");

foreach($banned as $is_banned) {
  if ($_SERVER['REMOTE_ADDR'] == $banned) {
    $protect = TRUE;
  }
}

if ($protect == TRUE) {
  // beskyt siden...
} else {
  // udskriv siden...
}
---------
Avatar billede sitzz Nybegynder
23. oktober 2004 - 21:43 #10
rettelse:
linien "  if ($_SERVER['REMOTE_ADDR'] == $banned) {"
skal rettes til "  if ($_SERVER['REMOTE_ADDR'] == $is_banned) {"
Avatar billede novalogic Nybegynder
23. oktober 2004 - 21:45 #11
hvor skal det skrives henne?
Avatar billede sitzz Nybegynder
23. oktober 2004 - 21:51 #12
skal stå i de sider, som skal beskyttes vha. tjek.php..

det koden gør, er at læse siden (http://www.psychokatten.dk/andreas/tjek.php) som udskriver en masse IP'er..
Hvis en af disse, er den samme som REMOTE_ADDR, bliver siden beskyttet ($protect=TRUE)

den korrekt kode bliver så (fandt lige en fejl mere):
$banned = file("http://www.psychokatten.dk/andreas/tjek.php");

$protect = false;
foreach($banned as $is_banned) {
  if ($_SERVER['REMOTE_ADDR'] == $is_banned) {
    $protect = TRUE;
  }
}

if ($protect == TRUE) {
  echo "Du er banned fra denne side";
} else {
  // udskriv siden...
}
Avatar billede sitzz Nybegynder
23. oktober 2004 - 21:52 #13
du skal selvfølgelig lave tjek.php om, til at skrive IP'erne ud... og husk linie skift (\n) efter hver IP, ellers virker det ikke..
Avatar billede erikjacobsen Ekspert
23. oktober 2004 - 21:54 #14
(...men listen kunne jo så lige så godt ligge på 1go's server...)
Avatar billede novalogic Nybegynder
23. oktober 2004 - 21:54 #15
Det er ip2blokker og der er en tjek.php skal jeg skrive hvad der står i den?
Avatar billede sitzz Nybegynder
23. oktober 2004 - 21:58 #16
erikjacobsen: du har ret...

novalogic: det er vel bare en select fra en tabel?
men bare skriv den, så kan jeg måske skrive den om, til at virke med det ovenstående script...
Avatar billede novalogic Nybegynder
23. oktober 2004 - 21:59 #17
<?
include "db.php";
$conn = mysql_connect("$host","$user","$pass");
mysql_select_db("$db",$conn);
$q = mysql_query("SELECT ip, msg, pic, flash, bredde, hojde FROM $tabel WHERE blok = 1") or die(mysql_error());
while($r = mysql_fetch_array($q)){
    if($r["ip"] == $REMOTE_ADDR){
echo "<TITLE>$titel</TITLE><body bgcolor=$back><p align=$lok><FONT SIZE=$fontsize FACE=$fontface COLOR=$fontcolor>";
    if ($r[pic] == ""){
        echo "";
        }
    if ($r[flash] == ""){
    echo "";
        }
    if ($r[pic] != ""){
        echo "<img src=\"$r[pic]\"><br>";
        die($r["msg"]);
        }
    if ($r[flash] != ""){
echo "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"
  codebase=\"http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0\"
  id=\"$r[flash]\" width=\"$r[bredde]\" height=\"$r[hojde]\">
  <param name=\"movie\" value=\"$r[flash]\">
  <param name=\"quality\" value=\"high\">
  <param name=\"bgcolor\" value=\"#FFFFFF\">
  <embed name=\"$r[flash]\" src=\"$r[flash]\" quality=\"high\" bgcolor=\"$back\"
    width=\"$r[bredde]\" height=\"$r[hojde]\"
    type=\"application/x-shockwave-flash\"
    pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\">
  </embed>
</object>
        <br>";
       
    }
    die($r["msg"]);
    }
    }
?>
Avatar billede erikjacobsen Ekspert
23. oktober 2004 - 22:00 #18
Jo, men det er lidt skørt at alle besøgende på siden på 1go's
server skal vente på det apparat, der sættes i sving i de
givne løsningsforslag. Det tager tid at hente en sådan liste
fra en anden server.

Brug gerne sitzz kode, men læg IP-adresserne i en text-fil,
som kan opdateres i notesblok, og overføres med ftp.

Eller er der en grund til at dette ikke kan lade sig gøre?
Avatar billede novalogic Nybegynder
23. oktober 2004 - 22:04 #19
Jamen problemet er at min ven ikke kan logge ind til ip2blokker, og derfor har vi valgt at køre det på mit webhotel. Det er derfor at når man går ind på hans side skal den hente info fra www.psychokatten.dk/andreas/tjek.php - men det ser det ud somom ikke kan lade sig gøre eller er jeg forkert på den?
Avatar billede erikjacobsen Ekspert
23. oktober 2004 - 22:07 #20
Jo, sitzz's løsning vil da virke, som sådan. Men jeg synes ikke
det er specielt smart. Der er andre muligheder, og derfor mit
forslag om noget andet.

fx kunne man jo få løst problemet med ip2blokker i stedet for?
Avatar billede novalogic Nybegynder
23. oktober 2004 - 22:08 #21
Det vil ikke fungere på www.1go.dk derfor. men skal han bare smide det forslag som sitzz kom med i tjek.php og så skulle det virke?
Avatar billede sitzz Nybegynder
23. oktober 2004 - 22:12 #22
ikke i tjek.php.. det skal være på den side hos 1go, som skal se efter blokkede ip'er (hvis jeg har forstået det korrekt, altså...)

tjek.php, skal udskrive de IP'er som er banned..
Eks:
212.54.64.170
212.54.64.171
212.144.21.59
62.95.190.168

osv...
Avatar billede novalogic Nybegynder
23. oktober 2004 - 22:16 #23
hvis jeg blokkere dig i ip2blokker så ved jeg ikke hvor den skriver, men der stod i readme'en at man skulle skrive include tjek.php (kan ikke lige stave det helt)
Avatar billede sitzz Nybegynder
23. oktober 2004 - 22:24 #24
så lav en ny side, der hedder noget andet, med følgende kode:
<?php
include "db.php";
$conn = mysql_connect("$host","$user","$pass");
mysql_select_db("$db",$conn);
$q = mysql_query("SELECT ip FROM $tabel WHERE blok = 1") or die(mysql_error());
while($r = mysql_fetch_array($q)){
  echo $r["ip"]."\n";
}
?>

denne fils sti+navn, skal stå i dit file() kald, på de sider, der ligger hos 1go
Avatar billede novalogic Nybegynder
23. oktober 2004 - 22:31 #25
Jeg tror bare jeg lader det ligge, hvis i begge vil komme med svar så i kan få points. I har forsøgt og hjælpe mig. Tak
Avatar billede erikjacobsen Ekspert
23. oktober 2004 - 22:33 #26
Ingen point til mig, tak.
Avatar billede novalogic Nybegynder
23. oktober 2004 - 22:35 #27
ok, men tak alligevel
Avatar billede sitzz Nybegynder
23. oktober 2004 - 22:47 #28
hvis det ikke hjalp, skal jeg ikke have point.. :\
Avatar billede novalogic Nybegynder
23. oktober 2004 - 22:48 #29
Hvorfor ikke? det er da lige meget du lavede nogle ting
Avatar billede sitzz Nybegynder
23. oktober 2004 - 22:57 #30
princip sag :)
Avatar billede novalogic Nybegynder
23. oktober 2004 - 23:01 #31
ok
Avatar billede starboy_dk Nybegynder
23. oktober 2004 - 23:41 #32
Bare for at gøre det sikkert:

Du kan ikke kan inkludere funktioner der er gemt som PHP-filer ved hjælp af include() eller require(), da serveren du henter dem fra altid vil give dig resultatet af funktionen i stedet for koden til funktionen.
For eksempel består filen du kan hente herfra af en funktion, men så får kun resultatet tilbage - nemlig en masse HTML.
Avatar billede Slettet bruger
24. oktober 2004 - 11:49 #33
Hvis det absolut skal laves på to forskellige hoteller, så bruge denne metode:

Ham der ikke selv kan blokke:

$ip=$_SERVER['REMOTE_HOST'];
$test=file("http://www.psychokatten.dk/andreas/tjek.php?ip=$ip");

Det du så skal gøre er, at tjekke for ham, og derefter udskrive svaret, som udemærket bare kunne være et enkelt tegn.
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