webForumDet fria alternativet

Göra en "proxy"

10 svar · 468 visningar · startad av HDJHSKGDKJHSD

HDJHSKGDKJHSDMedlem sedan sep. 2001147 inlägg
#1

hej!

Jag undrar om man i php, kan göra en sorts proxy-site?

Så om person X surfar in på min site finns det ett fint forumlär där han kan skriva i en adress (url).

När person X sen trycker på submit kommer URL:n upp på skärmen precis som vid vanlig surfning, FAST all information skickas genom servern.

Alltså, person X har aldrig kontakt med URL:n som skrivs in, utan bara servern...

ursäkta om jag är otydlig, hoppas ni förstår :)

sgtpepperMedlem sedan apr. 20005 524 inlägg
#2

Jodå, det går. Jag skulle nog helst skrivit en slags fristående proxy i Java men visst går det i PHP också.

Vill du ha mer utförlig beskrivning så får du hojta till! :)

HDJHSKGDKJHSDMedlem sedan sep. 2001147 inlägg
#3

hojt hojt! :-)

Jag skulle gärna vilja veta mer, kanske du kan pusha mig in på rätt spår? ;)

eller det kanske rentav finns en färdig lösning någonstans??

spangoMedlem sedan juni 20006 147 inlägg
#4

Med tanke på att man med fopen kan öppna webbadresser så är det hemskt enkelt. Vill man göra om alla relativa länkar så att de stämmer blir det lite mer jobb, men det är inget oövervinnerligt.

QonosMedlem sedan sep. 2000451 inlägg
#5

jag tycker frågan borde vara

"hur kommer du ihåg ditt användarnamn?" :D

Alpha IIMedlem sedan maj 20002 579 inlägg
#6

Det verkade kul och göra en "proxy" så jag försökte själv! :) men varför fungerar det inte???

<?

$fp = fopen($_POST['url'],"r") or die("Kunde inte öppna filen!");
$html="";
while (!feof($fp))
	$html .= fgets($fp,filesize($_POST['url'])) or die("Kunde inte läsa filen!");

function parse_html($html) {
  $html = preg_replace ( "/http:\/\/(.*?)/is", "proxy.php?url=" . urlencode ( "\\1" ), $html );

  return $html;
}

echo parse_html($html);

?>
SPiNMedlem sedan mars 20005 832 inlägg
#7

Vad händer då? Vad får du för fel?

pimmeMedlem sedan sep. 2001553 inlägg
#8

$html .= fgets($fp,filesize($_POST['url'])) or die("Kunde inte läsa filen!");

Från php manualen om filesize: "This function will not work on remote files; the file to be examined must be accessible via the server's filesystem"
byt ut filesize(...) mot t.ex. 1024, det borde funka bättre

Alpha IIMedlem sedan maj 20002 579 inlägg
#9

Ska jag använda fgets eller fread? fread läser väl hela filen medans fgets läser en rad?

Alpha IIMedlem sedan maj 20002 579 inlägg
#10

Ja! nu fungerar det... nästan iaf... det här med sökvägar och länkar funkar inte alls... hur gör jag så att alla bilder funkar? så att alla som är skrivna:

<img src="img/bild1.gif">

ska synnas och att alla länkar och formulär osv ska gå igenom min php sida...

Min kod:

<?

$fp = fopen($_POST['url'],"r") or die("Kunde inte öppna filen!");
$html="";
while (!feof($fp))
	$html .= fgets($fp, 1024);

fclose($fp);

function parse_html($html) {
  $html = preg_replace ( "/http:\/\/(.*?)/is", "proxy.php?url=" . urlencode ( "\\1" ), $html );

  return $html;
}

echo parse_html($html);

?>
Alpha IIMedlem sedan maj 20002 579 inlägg
#11

Har fortfarande inte löst det! *hjälp*

Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb