logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak odczytać i użyć hash URL po zalogowaniu w JavaScript i PHP?

andriu 30 Lis 2009 23:00 5183 6
REKLAMA
  • #1 7330156
    andriu
    Poziom 12  
    Posty: 63
    Ocena: 1
    Witam
    Mam następujący problem - nie wiem czy do rozwiazania dzięki tym 2 jez.prog.Do rzeczy.
    1) Pierwszy problem polega na tym ze dzięki [javascript] mogę się zalogować z jakimś hasłem i użytkownikiem na daną strone np: andrzej.pl. Po prawidłowym zalogowaniu strona dodaja jakiego losowego hasha np. andrzej.pl/fafdsg4343gfd/index.htm. Chciałbym teraz dostać się dalej dotej stronki znając hasha.Wiem ze idzie to zrobić w php odczytując aktualnie stronę.chciałbym np odczytać bez index.htm czy może podpowiedzieć jak to zrobić i przejść dalej np.andrzej.pl/fafdsg4343gfd/statystyka.htm. ??
    2) Drugie pytanie brzmi czy można zdarzeniem w javascript "onclick" pokierować automatycznie z poziomu np. jakieś innej strony ??

    Logowanie na strone [js] -> dodanie hasha-> odczytanie za pomoca [php] -. przejscie na kolejna strone [php] -> wysterowanie zdarzenie "onclick" zdalnie -- czy to w ogole mozliwe ?? Proszę o parady.
  • REKLAMA
  • #2 7330335
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Generalnie Javascript używa się po stronie użytkownika (przeglądarki), a PHP - po stronie serwera. Ja bym do logowania wykorzystał raczej PHP (w końcu logujesz się na serwer), bo Javascript użytkownik może sobie np. wyłączyć lub próbować coś zmienić w kodzie [pomijam fakt że kod javascriptu jest widoczny w źródle strony dla użytkownika].
    Gdybyś to zrobił na PHP'ie, to można po prawidłowym zalogowaniu się trzymać hasło lub informację o zalogowaniu w tablicy sesji $_SESSION i nie trzeba komplikować sobie życia hashami na stronie. Od biedy możesz trzymać informację o tym w pliku cookie. Ale wydaje mi się że hasło w adresie ma sens tylko wtedy, jeżeli użytkownik ma mieć możliwość zapisania sobie linka od razu z hasłem.

    Jeśli mimo wszystko chcesz żeby javascript współpracował z PHP, to możesz np.
    - otworzyć stronę z parametrem, np. index.php?a=123 i wartość "a" odebrać przez $_GET w PHPie.
    - (mój ulubiony sposób ;P) w HTMLu na formie umieścić pole INPUT type="hidden", w javascripcie poustawiać wartość tego pola a następnie przeładować stronę i odebrać wartości z tablicy $_POST:
    1. w HTML'u:
    
    <form id="form_new1" name="form_1" method="POST">
       <input type="hidden" name="zapisz" value="">
       ....dalsza część kodu
    </form>
    
    

    W javascript:
    //funkcja robi submit dla wybranej formy, nadając przedtem wybranemu jej elementowi zadaną wartość
    function submit_form_arg (forma, element, wartosc)
    {
    	document.forms[forma].elements[element].value = wartosc;
    	document.forms[forma].submit();
    }
    
    
    //i gdzieś w HTMLu np. na onclick, nie pamiętam czy nie trzeba było wziąć argumentów w cudzysłowie:
    submit_form_arg(form_1, zapisz, true)
    


    i w końcu odbierasz argument w PHPie:
    if (isset($_POST["zapisz"]))
    {
       .....
    }
    
  • REKLAMA
  • #3 7330731
    andriu
    Poziom 12  
    Posty: 63
    Ocena: 1
    Oki dzięki za wyczerpującego posta.Mam jeszcze pytanie związane z tym onclick w javiescript.Moje pytanie brzmi: Czy poprzez jakąś stronę html z użyciem obojętnie jakiej metody programowania idzie wysterować to zdarzenie automatycznie ?Przykładowa strona pajacyk.... wchodzę na strone andrzej.pl -> ona przekierowyje na www.pajacyk.pl i automatycznie bez ingerencji wywułuje zdarzenie onclick z js? Proszę o odpowiedź - interesują mnie tylko rozwiązania webowe.
    Dzięki
  • #4 7330798
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Jeżli chodzi Ci o otwieranie jakiejś innej strony i wywoływanie na niej akcji to prawdę powiem nie wiem bo się nigdy w to nie zagłębiałem, ale strona pajacyk.pl po kliknięciu otwiera chyba adres http://www.pajacyk.pl/zlicz.php - więc jeżeli będziesz otwierał tą stronę bezpośrednio, to może zaliczy to kliknięcie przycisku?
    Ogóolnie otwieranie stron można zrealizować np. tak:
    - w JAVASCRIPT:
    function open_url(url, opt){
      if (opt == 0) // current window
        window.location = url;
      else if (opt == 1) // new window
        window.open(url);
      else if (opt == 2) // background window
        {window.open(url); self.focus();}
    }

    - w PHPie (musisz umieścić jakoś na początku kodu):
    <?php
    header('Location: http://www.example.com/');
    ?>

    - w HTMLu możesz zrobić przekierowanie po otwarciu (ten przykład przekieruje na stronę po 5s):
    <meta http-equiv="Refresh" content="5; url=http://www.pajacyk.pl"> 

    - i oczywiście metody POST lub GET formy otwierające jakiś adres po kliknięciu przycisku.
  • REKLAMA
  • #5 7331055
    andriu
    Poziom 12  
    Posty: 63
    Ocena: 1
    Witam ponowanie. I tu mam właśnie problem. Ponieważ chciałbym zrobić sterowanie jednej strony za pomocą drugiej jednakże nie mogę tamtej modyfikować. W sumie chodzi o urządzenie które ma wbudowaną stronę html. Kody mam lecz nie mogę w nią ingerować. I o ile samo zalogowanie jest prawidłowe o tyle wykonanie automatycznie zdardzenia Onclick jest chyba niemożliwe z poziomu innej strony.
    Chciałbym się zapytać czy o kod następujący kod php:

    $adres = 'Location: http://10.1.0.1/?log=1&pass=1' ;
    header($adres);
    //przechodzę do innej strony
    //teraz chciałbym zczytać aktualny url z np.http://10.1.0.1/3123123212/ i coś do niego dopisać
    //header('Location: '.$adres);
    $adres='http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] ;
    $adres1='Location:'.$adres.'index.html';
    //i przejscie do danej podstrony
    header($adres1);


    Czy dobrze rozumuje ze przekierowuje na dany adres , zczytuje go do zmiennej,cos tam dodaje i przechodze dalej ??
  • #6 7331124
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Najlepiej spróbować i zobaczyć co wyjdzie ;)
    Wydaje mi się że jak zrobisz tak jak napisałeś, to header($adres); przeniesie Cię na nową stronę i dalsza część kodu się nie wykona. Kod w PHPie jest generowany przed wysłaniem strony użytkownikowi (przeglądarce).
    A $_SERVER['SERVER_NAME'] zwraca adres serwera który generuje stronę, czyli Twojego, nie tego z którego stronę chcesz otworzyć. Tutaj masz to opisane.
    Jeżeli chcesz manipulować zawartością innej strony, a nie możesz modyfikować jej kodu, to jednak javascript wydaje się bardziej na miejscu.
  • REKLAMA
  • #7 7331232
    andriu
    Poziom 12  
    Posty: 63
    Ocena: 1
    No dokładnie działa jak opisałeś.Pobiera adres serwera bieżącej strony a nie wywoływanej. W js z tego co wiem nie ma możliwości pobrania aktualnego adresu strony po przekierowaniu wiec wydaje się ze to błędny koło .

Podsumowanie tematu

✨ Użytkownik ma problem z odczytem i wykorzystaniem hasha URL po zalogowaniu na stronie przy użyciu JavaScript i PHP. Po zalogowaniu, strona generuje losowy hash, a użytkownik chce przejść do konkretnej podstrony, znając ten hash. Odpowiedzi sugerują, że logowanie powinno być realizowane w PHP, a informacje o sesji można przechowywać w $_SESSION lub w plikach cookie. Użytkownik pyta również o możliwość automatycznego wywołania zdarzenia "onclick" na innej stronie, co spotyka się z wątpliwościami, ponieważ nie można modyfikować kodu tej strony. Wskazówki dotyczące przekierowań w PHP i JavaScript są podane, ale podkreślono, że manipulacja zawartością innej strony bez jej modyfikacji jest trudna.
Wygenerowane przez model językowy.
REKLAMA