php asp összekapcsolása
Hello
Mint a címből is kiderül két rendszert szeretnék összekapcsolni.
Van egy asp (iis) alatt működő alkalmazásom egy webszerveren.
Van egy másik php-s webszerverem az egyik szolgáltatónál.
Hogyan lehet azt megoldani, hogy ha leböngészem a http://phpszerver/index.php-t
akkor töltődjön be a http://aspszerver/default.aspx
Eddig nincs is gond, csak amikor a default.aspx-en nyomok egy button klikket akkor az mindenképpen a phpszerveren keresi az esemény kezelőjét.
Összefoglalva tehát azt szeretném, hogy nem látszódjon az aspszerver neve sem a location sorban sem a page view source-ban.
Ha valaki tud, szívesen várom az infókat.
üdv.
mzsolt
■ Mint a címből is kiderül két rendszert szeretnék összekapcsolni.
Van egy asp (iis) alatt működő alkalmazásom egy webszerveren.
Van egy másik php-s webszerverem az egyik szolgáltatónál.
Hogyan lehet azt megoldani, hogy ha leböngészem a http://phpszerver/index.php-t
akkor töltődjön be a http://aspszerver/default.aspx
Eddig nincs is gond, csak amikor a default.aspx-en nyomok egy button klikket akkor az mindenképpen a phpszerveren keresi az esemény kezelőjét.
Összefoglalva tehát azt szeretném, hogy nem látszódjon az aspszerver neve sem a location sorban sem a page view source-ban.
Ha valaki tud, szívesen várom az infókat.
üdv.
mzsolt
CURL
curl hogyan
Így néz ki az index.php file
Ezt nem tudom miért, illetve hogyan lehet beállítani.
Curl nem jó erre
A curl csak egy böngészőt emulál, a linkeket is preparálnod kellene minden letöltött oldalon, az meg elég macerás (bár egy jó regexp csodákat tehet...)
link macerálás?
Nyitott vagyok minden megoldásra.
Az asp szerverem mindössze 4 darab aspx oldal van.
Tehát nem túl nagy az alkalmazás.
mzsolt
preg_replace
Miért nem relatív?
Mindegy
Az eredményben nyilván lesznek hivatkozások (css/image/javascript/akármi)
Pl:
ASP szerver:
<img src="/images/my_asp_image.png">
PHP szerver:
Nincsen /images/my_asp_image.png kép
Az ilyen hivatkozásokat kell elkapni a php szerveren, letölteni az asp szerverről és megjeleníteni.
Ha jól sejtem az asp szerver nem érhető el a nagyvilág felől és ehhez kell ez a megoldás, de erre van a mod_proxy és még csak kódolni sem kell. Semmit. Sehol.
Világos
Amúgy én az IIS-en beraknám az alkalmazást egy alkönytárba (/app/*), valszeg könnyebb szétválogatni így az oda menő kéréseket.
majdnem
Az ASP szerver egyébként relatív url-ekkel dolgozik.
Még gyötröm magam.
A mod-proxy szerintem azért nem megy nekem, mert ha jól tudom a tárhely szolgáltatók nemigen örülnek az ilyennek.
Sajna nem nálam van a php szerver, csak fel tudok tenni oda futtatható php állományokat.
Ha van még ötlet, itt vagyok.
mzsolt
itt tartok
az index.php most ilyen
<?php
$url = "http://www.aspszerver.hu/Default.aspx";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 500);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_NOBODY, 0);
$result = curl_exec($ch);
curl_close($ch);
$result = preg_replace(
array('!/action="[a-z1-9 \-]+\.aspx"\??!ie', '!(http://www.aspszerver.hu/)/!i'),
array('"/index.php?reqaspx=".urlencode("$0")', '(http://www.phpszerver.hu/)'),
$result);
echo $result;
?>
a default.aspx ilyen a böngészőböl nézve a source-ot
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title></head>
<body>
<form name="form1" method="post" action="Default.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTM2MDc4Mjc0NWRkUMO+zH2VzXYECHCiPs/mL0Jg3tQ=" />
</div>
<table width="300px">
<tr>
<td colspan="2" align="center">
<span id="Label1">Bejelentkezés</span></td>
</tr>
<tr>
<td style="width: 80px">
<span id="Label2">Név:</span></td>
<td>
<input name="txtnev" type="text" id="txtnev" /></td>
</tr>
<tr>
<td style="width: 80px">
<span id="Label3">Jelszó:</span></td>
<td>
<input name="txtpass" type="text" id="txtpass" /></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="btn_login" value="Belépés" id="btn_login" />
</td>
</tr>
<tr>
<td colspan="2">
<span id="lbl_msg"></span></td>
</tr>
</table>
<div>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBAKTz63aDAKL+9q7DQLKw6LYBQLjl+vcBA2hGNhSYWxmGm11deBrbxfPKK6L" />
</div></form>
</body>
</html>
Tehát az ASP szerveren lévő form action paramétere saját magára mutat relatívan.
Az már codebehind-ba van lekezelve, hogy a bejelentkezés után mi legyen, egyédként a default2.aspx-et hívja meg szintén az ASP szerverről.
Szóval számomra még valami nem gömbölyű.
mzsolt
Hát akkor rajta
Vagy bekapcsolod a mod_proxy-t, bekonfigurálod, hogy ami a http://phpserver-re jön kérés azt a http://aspserver-től kérje el és készen is vagy.
Apache mod_proxy
csak nem fog ki rajtunk egy ilyen feladat?
A lényeg, hogy az index.php töltse be a default.aspx-t, de a böngésző címsorába ne legyen benne, hogy a default.aspx melyik szerveren van.
Illetve a default.aspx-en a button klikk esemény értelemszerűen az asp szerveren lévő default2.aspx oldalt töltse be, de a böngésző címsora maradjon php szerverre mutatva. (ezt szépen mondtam, bocs).
Bármilyen megoldást szívesen fogadok.
mzsolt
A megoldás már elhangzott
Ha a szolgáltatód nem támogatja akkor keress másikat. Lehet maszatolni, meg curl-lel bohóckodni, de ennek sok buktatója van (a linkektől kezdve az session-ig mindenhol nehézségbe fogsz ütközni).
Egyébként ha beállítanád az apache error handlinget akkor meg tudnád oldani, hogy minden php szerveren nem létező doksit lekérj curl-lel az asp szerveredről, de emelett is elmentél...
De kezdő vagyok a témában
Néztem egy php infót, de abból nem derült ki számomra hogy a mod_proxy engedélyezett vagy sem.
(Honnan tudom azt megnézni egyáltalán?)
Őszintén szólva ez az első php feladat amit meg akarok oldani, eddig ASP-ben irogattam ezt azt.
Ezért kérdezek ilyen alapdolgokat.
Annyi lejött nekem, hogy ha a php szerverre fut be kérés, akkor azt asz asp szerver fogja kiszolgálni.
Ezt az átiránytást tudja a mod_proxy.
De hol tudom ezt beállítani, és mi lesz a php szerver index.php -ban.
Ha nem találod degradálónak a kérdést, és van kedved segíteni, szívesen veszem.
üdv.
mzsolt
Szolgáltató
Mod_proxy-val kb. ennyi a dolog:
Így sikerült
Az én gépemen már működik az átirányítás.
Már csak a szolgáltatót kell rávennem, hogy módosítsa a conf állományt.
Mégegyszer köszi az infókat.
üdv.
mzsolt
Nincs mit