[ Nemanja Avramović @ 27.03.2005. 18:11 ] @
E ovo je moj slucaj, a nista nisam nasao u pretrazi (ne znam sta tacno da trazim)...
Imam jedan login... i sad, kad se korisnik uloguje, ja treba da ga redirektujem na sledecu stranu, ali i njoj da prosledim sifru... dakle, pokupim iz submitovane forme pass, pa nekim chudom da redirektujem na drugu stranu (koja je na sasvim drugom serveru) ali i u njoj da mogu da pokupim pass (sa $_POST)...

@mods: ako je ovo vec bilo, nemojte brisati odmah, dajte mi link, pa kasnije brisite...
[ Nikola Denić @ 27.03.2005. 18:15 ] @
pa redirektuj sa Header("Location:next.php");

pa onda tamo pokupi sta ti treba od parametara ;
[ Goran Rakić @ 27.03.2005. 18:22 ] @
ovo nece raditi zato sto nova next.php nece imati POST parametre prenete. Interesuje me zasto uopste moras korisnika logovati na prvom serveru kada ga odmah nakon toga preusmeravas na drugi server? Mozda ti samo odgovarajuci action atribut u formularu resava posao?

E sada ima vise resenja, ali mi moras reci da li ti sigurno trebaju POST i na jednoj i na drugoj stranici i da li korisnik nakon toga treba da ostane na prvoj ili da bude preusmeren na drugu stranu, kao i da li kasnije nastavlja interakciju na novoj stranici ili je dovoljno da obavestis skriptu na novom serveru, a korisniku prikazes neku stranicu potvrde...

Najbolje bi bilo ako bi malo detaljnije opisao sta ti tacno treba jer je u tom slucaju i najveca sansa da ces dobiti optimalno resenje.
[ Nemanja Avramović @ 27.03.2005. 20:36 ] @
e ovako... zvucace ludo, ali tako je :)

znaci korisnik dodje na moj sajt, ukuca username i password i onda sledeca stranica pretrazi MOJU bazu za taj username, i na osnovu username-a nadje sajt na koji treba da se redirektuje (i da se prenese sifra)....

edit: ne pitajte za sta ce mi... ja opet nesto izvodim :D
[ Goran Rakić @ 27.03.2005. 20:48 ] @
Ima li ikakve pravilnosti u login-u tih drugih sajtova? Moras svakako imati informaciju o:

1) nacinu login-a na taj drugi sajt (da li je POST ili GET forma)
2) kako se zovu polja u login formi tih drugih sajtova
3) da li ima kontrole REFERER URL-a pri login-u

Ukoliko je odgovor pod tri "ne", onda bi moglo da se napravi JavaScript resenje, tj. da nakon sto se korisnik prijavi na tvojoj formi, njemu prikazes popunjenu formu sa podacima koje je uneo, a koji se na onLoad submit-uju na novi sajt.

Lepse resenje (ukoliko je moguce) zahteva malo vise informacija. Recimo to kakav je tip login-a na drugim sajtovima. Ako je login sa kolacicima, nemas sansi bilo sta bolje da napravis. Ako je login sa Sesijom, trebas proveriti da li je moguce legalno "ukrasti" sesiju, tj. da li je moguce po login-u samo iskopirati SESID i nastaviti je iz drugog browsera.

Naravno, ako imas kontrolu nad drugim sajtovima, onda jedno fino XMLRPC resenje sa centralnim Auth serverom zavrsava posao.
[ Br@nkoR @ 27.03.2005. 21:39 ] @
@Goran Rakić: Ova tema me je podsetila na nešto davno što sam hteo da probam da uradim, ali nisam imao vremena.
Konkretno me zanima ES. Da li je moguće izvršiti postovanje sa drugog sajta odnosno pomoću druge skripte na ES. Kao što si ti uradio u tvojoj skripti ES BlogIt za postavljanje RSS u potpis na ES-u. Znači nikada nisam radio sa slanjem HTTP POST zahteva na drugi server.
Hvala na odgovoru.
[ Goran Rakić @ 27.03.2005. 22:04 ] @
Moguce je, i ovaj ESBlogIt upravo salje POST zahtev formi za izmenu formulara. Ono sto je problem u ovoj postavci ovog pitanja jeste sto korisnik treba da ostane ulogovan na novom sajtu, dakle treba da nastavi sesiju/preuzme kolacice...

I da jos nesto, upravo zato sto to jeste moguce forumi kao sto je to i ES imaju zastitu od Denial of Service napada - tj. onu zastitu u obliku flood control-a.
[ Nemanja Avramović @ 27.03.2005. 23:16 ] @
Citat:
Goran Rakić: Ima li ikakve pravilnosti u login-u tih drugih sajtova? Moras svakako imati informaciju o:

1) nacinu login-a na taj drugi sajt (da li je POST ili GET forma)
2) kako se zovu polja u login formi tih drugih sajtova
3) da li ima kontrole REFERER URL-a pri login-u

Ukoliko je odgovor pod tri "ne", onda bi moglo da se napravi JavaScript resenje, tj. da nakon sto se korisnik prijavi na tvojoj formi, njemu prikazes popunjenu formu sa podacima koje je uneo, a koji se na onLoad submit-uju na novi sajt.

Lepse resenje (ukoliko je moguce) zahteva malo vise informacija. Recimo to kakav je tip login-a na drugim sajtovima. Ako je login sa kolacicima, nemas sansi bilo sta bolje da napravis. Ako je login sa Sesijom, trebas proveriti da li je moguce legalno "ukrasti" sesiju, tj. da li je moguce po login-u samo iskopirati SESID i nastaviti je iz drugog browsera.

Naravno, ako imas kontrolu nad drugim sajtovima, onda jedno fino XMLRPC resenje sa centralnim Auth serverom zavrsava posao.


Redom...

1) POST
2) znam... `user`/`pass`
3) ne
[ Goran Rakić @ 28.03.2005. 00:42 ] @
Pa zar nisi sam sebi odgovorio?

Code:


if(isset($_POST['user']) && isset($_POST['pass'])) {
   
   /* sada lepo saznas URL iz baze. URL je zapravo action atribut */
   /* zadat u apsolutnom obliku forme na tom drugom sajtu       */
   $url = '';

   echo('
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>Loading...</title></head>
<body onLoad="document.forms[0].submit()">
   <div id="form">
       <script type="text/javascript" language="javascript">
        <!-
        //<![CDATA[
          document.getElementById("form").style.display="none";
        //]]>
        //-->
       </script>
       <form action='.$url.' method="post">
          <input type="hidden" name="user" value="'.$_POST['user'].'" />
          <input type="hidden" name="pass" value="'.$_POST['pass'].'" />
          <input type="submit" value="Click here to continue" />
       </form>
   </div>
   <noscript>
        Please click the button above to continue.
   </noscript>
   <h3>Loading...</h3>
</body>
</html>
   ');

}
else {
   /* prikazi svoj login formular */
   /* polja koje trebas imati su user, pass,... */
}



Ovo bi trebalo maksimalno portabilno da bude. Ukoliko javascript nije podrzan, nece se izvrsiti skrivanje forme, i bice prikazan tekst da treba kliknuti na standardno submit dugme. Ukoliko je javascript podrzan u browseru onda ce redirekcija biti automatski izvrsena.

Ne znam da li je zanemarujuci neke specijalne uslove moguce elegantnije i standardnije resiti ovaj problem.
[ Nemanja Avramović @ 28.03.2005. 01:04 ] @
hvala ti puno!!!
sad trenutno nisam u mogucnosti da isprobam ovo, ali u stvari, kljucni red koda je bio:
<body onLoad="document.forms[0].submit()">

;)

hvala!