Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Niedostepna strona
Forum PHP.pl > Forum > PHP
Mistic
Hej!

Mam kod:
Odnośnik ze strony głównej:
www.xxxx.pl/Register.php

  1. <form action="kod.php" method="post">
  2. <input type="text" name="Kod" /><br />
  3. <input type="submit" value="dodaj" />
  4. </form>


oraz kod z tej strony:
Kod.php
  1. <?php
  2. if(count($_POST)) {
  3.  
  4. if (!empty($_POST['Kod']))
  5. {
  6. $plik = file_get_contents("kody.txt");
  7. $plik = explode(",", $plik);
  8. }
  9. else
  10. {
  11. echo '';
  12. }
  13.  
  14. if (empty($_POST['Kod']))
  15. {
  16. echo 'Wpisz kod!';
  17. }
  18. else
  19. if (!in_array($_POST['Kod'], $plik))
  20. {
  21. echo 'Nie ma takiego kodu w bazie!<br/>';
  22. }
  23.  
  24.  
  25. if(in_array($_POST['Kod'], $plik))
  26. {
  27. header("Location: <a href="http://www.xxxx.pl/forum/register.php?do=register" target="_blank">http://www.xxxx.pl/forum/register.php?do=register</a>
  28. }
  29. }
  30. ?>


Teraz...
Chciałbym aby link:
http://www.xxxx.pl/forum/register.php?do=register
oraz:
http://www.xxxx.pl/forum/register.php ( akceptowanie zasad)

Były dostępny tylko wtedy gdy dana osoba wpisze kod
da się takie coś zrobić?
Bo owszem, gdy wejdę przez odnośnik ze strony głównej na register.php, podam zły kod, to wyświetla mi się komunikat o złym kodzie, a jeśli podam dobry to przenosi mnie na stronę z rejestracją.
Lecz mogę bezpośrednio wpisać link do przeglądarki:
http://www.xxxx.pl/forum/register.php?do=register
i wtedy omija to hasło, a ja chce żeby nawet jak ktoś skopiuje link do przeglądarki to żeby pokazał mu się komunikat:
Aby dostać się na tą stronę musisz podać hasło, pod tym adresem: www.xxxx.pl/register.php

Ps. Używam vBulletin.

Życzę miłego dnia!
tehaha
użyj dodatkowo zmiennej sesyjnej, którą ustawisz dopiero po wpisaniu prawidłowego kodu, jeżeli zmienna nie będzie ustawiona to przekieruje użytkownika tam skąd powinien zacząć
Mistic
A jak takie cos wyglada?
Popatrzałem na manual i zrobilem takie cos:

Moje register.php

  1. <?php
  2. // page1.php
  3.  
  4.  
  5. echo 'Witaj na stronie #1';
  6.  
  7. $_SESSION['kolor'] = 'zielony';
  8. $_SESSION['zwierze'] = 'kot';
  9. $_SESSION['czas'] = time();
  10.  
  11. // Działa jeśli ciasteczko sesyjne zostało zaakceptowane
  12. echo '<br /><a href="test.php">stronaaa 2</a>';
  13.  
  14. // Lub może przekaż ciasteczko sesyjne, jeśli to konieczne
  15. echo '<br /><a href="test.php?' . SID . '">stronaaaa 2</a>';
  16. ?>


test.php

  1.  
  2. <?php
  3. // page2.php
  4.  
  5.  
  6. echo 'Witaj na stronie #2<br />';
  7.  
  8. echo $_SESSION['kolor']; // zielony
  9. echo $_SESSION['zwierze']; // not
  10. echo date('Y m d H:i:s', $_SESSION['time']);
  11.  
  12. // Tu można wstawić SID, podobnie jak to był na page1.php
  13. echo '<br /><a href="register.php?' . SID . '">page 1</a>';
  14. ?>
  15.  
  16. Tylko jak to teraz przerobić, że gdy użytkownik wpisze kod
  17. i kliknie submit to ma sprawdzic czy kod znajduje sie w kody.txt jesli tak to przekieruje go na strone rejestracji
  18. a jesli nie to wyswietli blad albo zostanie na stronie z kodem.
tehaha
całkiem dokładnie to nie wiem o co Ci chodzi, ale najprostsze limitowanie dostępu robisz tak:
session_start() dajesz na samej górze tak jak już masz,
jak użytkownik wpisze poprawnie kod to dajesz np.
  1. $_SESSION['login'] = 1;


a potem tam gdzie nie chcesz żeby on mógł wejść, bez wcześniejszego wpisania kodu:
  1. if(!isset($_SESSION['login']) || $_SESSION['login'] != 1)
  2. {
  3. echo "nie masz dostępu do tej strony";
  4. exit();
  5. }


lub gdybyś chciał go przekierować to zamiast echo dajesz header/Location
Mistic
A więc chodzi mi o takie cos:
Korzstam z własnej strony oraz forum na ktorym stoi VBulletin
Mam stronę.
W menu posiadam zakladke Rejestracja.
Gdy klikne na tą zakladkę przenosi mnie na strone register.php gdzie podaje kod ktory znajduje sie obecnie w bazie danych!
Gdy klikne ok, skrypt ma sprawdzac czy kod jest poprawny
Jesli tak to ma mnie przenosic na strone:
http://xxxxxx/forum/register.php
Gdzie trzeba zaakceptować zasady

Lecz chce aby uzytkownik który wpisze do przegladarki bezposrednio adres: http://xxxxx.pl/forum/register.php dostal komunikat ze nie ma dostepu poniewaz nie podał kodu...

Znalazlem w necie i własnie działa tak jak ja chce, tu pobiera hasło z pliku haslo.php, tylko jak mam to teraz przerobić zeby znajdowało haslo w Mysql?:

Logowanie.php ( czyli moje register.php )


  1. <?php
  2. session_start(); //rozpoczęcie sesji
  3. include "haslo.php";
  4. //skrypt :)
  5. $pass = $_POST[pass];
  6. if ($pass)
  7. {
  8. if ($pass==$haslo)
  9. {
  10. $_SESSION[haslo] = $haslo;
  11. }
  12. else
  13. {
  14. echo 'Podałeś niepoprawne hasło. :(';
  15. }
  16. }
  17. else
  18. {
  19. <form method=post>
  20. Podaj hasło: <INPUT TYPE="PASSWORD" NAME="pass" VALUE="'.$pass.'">
  21. <INPUT TYPE="SUBMIT" VALUE="Zaloguj">
  22. </FORM>
  23. ';
  24. }
  25. $action = $_GET[action];
  26. if ($action=="logout")
  27. {
  28. header("Location: http://xxxxxx.pl/register.php"); //podajesz adres, na który po wylogowaniu skrypt przekierowuje
  29. }
  30. ?>



Plik /forum/register.php (testowo)

  1.  
  2. <?php
  3. //pliki
  4. include "haslo.php";
  5. if ($_SESSION[haslo])
  6. {
  7. if (!($_SESSION[haslo] == $haslo))
  8. {
  9. header ("Location: register.php");
  10. }
  11. }
  12. else
  13. {
  14. header ("Location: register.php");
  15. }
  16. ?>
  17. Zobacze to gdy podam hasło!
  18.  


i to działa idealnie. Gdy wpisze kod to widze treść: "Zobacze to gdy podam hasło!"
A gdy wejdę bezpośrednio pod link /forum/register.php to przenosi na strone register gdzie trzeba podać hasło.

Prosze przeróbcie mi to na mysql bo mi wgl sie nie udaje

Kod Mysql zrobil juz wczesniej jakis uzytkownik:
http://forum.php.pl/index.php?s=&showt...st&p=752497

Tylko prosze o podstawienie bo zrobilem juz tabele itd tak jak tam jest opisane.

//Edit

Mysle ze to i tak nic nie da, ponieważ nie da sie tego wklepac do VBulletin. sad.gif

//
Wie ktoś może jak wkleic to do rejestracji? Bo to, że strona jest na haslo nic nie daje, gdyż rejestracja na VBulletin jest w php a nie normalny text.
I jak wkleje to ponad rejestracja nic nie daje, gdyż skrypt rejestracji php i tak sie sam wykonuje.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.