[ajax?]Broncode doorsturen
Hey,
Ik ben nu weer bezig gegaan aan pygo, maar nu heb ik weeeeeeeeeeeeeeer een probleem.
Wat ik wil doen, is, ieder website die wordt bezocht (ieder tabblad dus eigenlijk) moet in een sessie var komen te staan.
$_SESSION['tabs'][<id>] hier staat eenurl in
$_SESSION['data'][<id>] hier staat de html source in.
Wat ik nu wil maken, dat iedere keer als iemand in het iframe op een link klikt, de html source van die pagina waar ze dan zojuist op gelikt hadden, wordt doorgestuurd naar handler.pygo, zodat de $_SESSION['data'][<id>] vervangen kan worden.
Ik denk dat ik iets met een refresh van het iframe moet doen, maar het lukt niet.
Iemand die het wel lukt?
Gr,
Niek
Ik ben nu weer bezig gegaan aan pygo, maar nu heb ik weeeeeeeeeeeeeeer een probleem.
Wat ik wil doen, is, ieder website die wordt bezocht (ieder tabblad dus eigenlijk) moet in een sessie var komen te staan.
$_SESSION['tabs'][<id>] hier staat eenurl in
$_SESSION['data'][<id>] hier staat de html source in.
Wat ik nu wil maken, dat iedere keer als iemand in het iframe op een link klikt, de html source van die pagina waar ze dan zojuist op gelikt hadden, wordt doorgestuurd naar handler.pygo, zodat de $_SESSION['data'][<id>] vervangen kan worden.
Ik denk dat ik iets met een refresh van het iframe moet doen, maar het lukt niet.
Iemand die het wel lukt?
Gr,
Niek
Gewijzigd op 01/01/1970 01:00:00 door Niek s
Gesponsorde koppelingen:
Mijn idee van hoe je het het beste zou kunnen doen, in volgorde!
1. Gebruiker tikt URL in
2.1 Pygo haalt de broncode van die pagina op (file_get_contents bijv.)
2.2 Pygo vervangt alle links met 'http://handler.pygo.be/?url=urlencode($oude-url)'
2.3 (optioneel) Pygo slaat de pagina ergens even lokaal op
2.3 Pygo serveert de pagina aan de gebruiker
Tabbladen zou ik via Javascript doen. Dat is niet alleen veel minder ingewikkeld, maar ook nog eens vele malen sneller, en jij hoeft niet alle pagina's in een sessie op te slaan (die daardoor ook enorm log worden)
1. Gebruiker tikt URL in
2.1 Pygo haalt de broncode van die pagina op (file_get_contents bijv.)
2.2 Pygo vervangt alle links met 'http://handler.pygo.be/?url=urlencode($oude-url)'
2.3 (optioneel) Pygo slaat de pagina ergens even lokaal op
2.3 Pygo serveert de pagina aan de gebruiker
Tabbladen zou ik via Javascript doen. Dat is niet alleen veel minder ingewikkeld, maar ook nog eens vele malen sneller, en jij hoeft niet alle pagina's in een sessie op te slaan (die daardoor ook enorm log worden)
Even achteraf: het idee van Pygo was toch dat je als het ware 'annoniem' op internet kon zitten, oftewel, dat jouw browser eigenlijk alleen praat met pygo, en pygo met de rest van internet?
Ik zal even de handler posten, dan zie je misschien dat dat niet gaat werken :(
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
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
<?php
session_start();
include 'lang.pygo';
if(isset($_GET['act'])) {
$url = $_SESSION['tabs'][$_GET['act']];
if(substr($url,0,8) == "https://") {
echo $_LANG['nohttps'];
} else {
if(substr($url,0,7) != "http://") {
$url = "http://".$url;
}
if(!empty($url) && $url != "http://1") {
$data = @file_get_contents($url);
if(!$data) {
echo "<img align=\"left\" src=\"images/warning.png\" alt=\"\" />".$_LANG['wrongpage'];
} elseif((isset($_SESSION['data'][$_GET['act']])) && (!empty($_SESSION['data'][$_GET['act']]))) {
echo $_SESSION['data'][$_GET['act']];
} else {
if(substr($url,-1) != "/") { $url = $url.'/'; }
$check = str_replace("<head>",'<head><base href="'.$url.'" target="_self">',$data);
$check = str_replace("target=\"_new\"","target=\"_self\"",$check);
$check = str_replace("target=\"_blank\"","target=\"_self\"",$check);
$check = str_replace("target=\"_parent\"","target=\"_self\"",$check);
$check = str_replace("src=\"/","src=\"",$check);
$check = str_replace("src=\"","src=\"".$url."",$check);
echo $check;
$_SESSION['data'][$_GET['act']] = $check;
}
}
}
}
?>
session_start();
include 'lang.pygo';
if(isset($_GET['act'])) {
$url = $_SESSION['tabs'][$_GET['act']];
if(substr($url,0,8) == "https://") {
echo $_LANG['nohttps'];
} else {
if(substr($url,0,7) != "http://") {
$url = "http://".$url;
}
if(!empty($url) && $url != "http://1") {
$data = @file_get_contents($url);
if(!$data) {
echo "<img align=\"left\" src=\"images/warning.png\" alt=\"\" />".$_LANG['wrongpage'];
} elseif((isset($_SESSION['data'][$_GET['act']])) && (!empty($_SESSION['data'][$_GET['act']]))) {
echo $_SESSION['data'][$_GET['act']];
} else {
if(substr($url,-1) != "/") { $url = $url.'/'; }
$check = str_replace("<head>",'<head><base href="'.$url.'" target="_self">',$data);
$check = str_replace("target=\"_new\"","target=\"_self\"",$check);
$check = str_replace("target=\"_blank\"","target=\"_self\"",$check);
$check = str_replace("target=\"_parent\"","target=\"_self\"",$check);
$check = str_replace("src=\"/","src=\"",$check);
$check = str_replace("src=\"","src=\"".$url."",$check);
echo $check;
$_SESSION['data'][$_GET['act']] = $check;
}
}
}
}
?>
Jelmer schreef op 11.03.2007 18:29:
Even achteraf: het idee van Pygo was toch dat je als het ware 'annoniem' op internet kon zitten, oftewel, dat jouw browser eigenlijk alleen praat met pygo, en pygo met de rest van internet?
ja, klopt.
Hmm. Ik kom er echt niet uit. Is er niemand anders die weet hoe ik dit moet oplossen? Wat ik nu heb staat in de broncode (JS, dus kunnen jullie zien) van mijn pygo.
http://www.pygo.be/update
En dan staat er in handler.pygo eens tukje die dan een file_get_contents() over die url geeft, die dan met ?pp=<url> binnenkomt.
Echter, als de url verranderd, dan geeft om de 200 miliseconden mijn firebug 1 error erbij. Hoe kan dit? En beter. Hoe los ik dit op?? Of is er een andere manier om dit te doen?
http://www.pygo.be/update
En dan staat er in handler.pygo eens tukje die dan een file_get_contents() over die url geeft, die dan met ?pp=<url> binnenkomt.
Echter, als de url verranderd, dan geeft om de 200 miliseconden mijn firebug 1 error erbij. Hoe kan dit? En beter. Hoe los ik dit op?? Of is er een andere manier om dit te doen?
geen problemen hiero
Maar het werkt ook niet, wel?
Ik kan nieuwe tabs openen, alleen wordt iedere pagina die ik open in de eerste tab geopend
Dus het werkt niet ;)
Is er niemand met een oplossing? :(
*BUMP* :(



