Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]zadanie z logowaniem i kalkulatorem
Forum PHP.pl > Forum > Przedszkole
drzalek
Hej,
Musze zrobić takie zadanie.
Na pierwszej stronie uzytkownik musi sie zalogowac, podac login i haslo:
  1. <htlm>
  2. <title>PHP- cwiczenie 2 </title>
  3. </head>
  4.  
  5. Witaj<p>
  6.  
  7. <form name="login_from" action="cw_3.php" method="post">
  8. <p>
  9. nazwa:<input type="text" name="nazwa" maxlength="20" size="20"/>
  10. </p>
  11. <p>
  12. hasło:
  13. <input type="password" name="haslo" maxlength="20" size="20"/>
  14. </p>
  15. <input type="submit" name="zaloguj" value="zaloguj"/>
  16. </p>
  17. </form>
  18.  
  19. </body>
  20. </html>


Potem na nastepnej, po kliknieciu zaloguj, sprawdzana jest poprawnosc zalogowania, jesli login jest taki sam jak haslo to uzytkownik sie zalogowal, jesli nie to sie nie zalogowal i zostaje poproszony o ponowne zalogowanie sie:
  1. <?php
  2. php?>
  3.  
  4.  
  5. <html>
  6. <head>
  7. <title>PHP - cwiczenie 3 </title>
  8. </head>
  9. <body>
  10.  
  11. Witaj<p>
  12.  
  13. Otrzymano nastepujace dane:<br>
  14. <?php
  15. echo "Nazwa: <b>". $_POST["nazwa"]."</b> <br>";
  16. echo "Haslo: <b>". $_POST["haslo"]."</b> <br>";
  17.  
  18.  
  19.  
  20. if (($_POST["nazwa"]==$_POST["haslo"]) && isset($_POST["haslo"]) && ($_POST["haslo"]<>''))
  21.  
  22. {
  23. echo 'Logowanie poprawne <br>';
  24. echo '<a href="cw_4.php">Dalej</a> <br>';
  25. $_SESSION['zalogowany'] = "tak";
  26. $_SESSION['zalogowany_uzytkownik'] = $_POST["nazwa"];
  27. }
  28. else
  29. {
  30. echo 'Logowanie <b>nie</b> poprawne<br>';
  31. echo '<a href="cw_2.php"> Sproboj jeszcze raz </a> <br>';
  32. unset($_SESSION['zalogowany']);
  33. unset($_SESSION['zalogowany_uzytkownik']);
  34. }
  35.  
  36.  
  37. php?>
  38.  
  39.  
  40. </body>
  41. </html>


Jesli zalogowanie odbylo sie prawidlowo, uzytkownik moze przejsc dalej do strony z kalkulatorem, gdzie moze wykonac cztery proste dzialania. Jednakze strona z kalkulatorem tez musi sprawdzac cz uzytkownik sie zalogowal wczesniej czy nie, jesli nie, ma go przeniesc przy pomocy refresh w mecie na strone logowania, jesli tak to ma mu pokazac kalkulator. Jak na razie zrobilem kalkulator. Ma on wygladac tak ze na samej gorze jest napisane "Witaj nazwa_uzytkownika", ponizej dzialanie i wynik dzialania, pod warunkiem, ze uzytkownik wczesniej wklepal cos w ten kalkulator, jesli nie to nie ma byc nic, a ponizej formularz z tym kalkulatorem.
  1. <?php
  2.  
  3.  
  4.  
  5.  
  6.  
  7. echo "Witaj: <b>". $_POST["nazwa"]."</b> <br>";
  8. echo "<hr><br/>";
  9. $a=$_POST["a"];
  10. $b=$_POST["b"];
  11. $dzialanie=$_POST["dzialanie"];
  12. $wynik;
  13. if($a=='' && $b=='')
  14. {
  15. ;
  16. }
  17.  
  18. else if($a=='' || $b=='')
  19. {
  20. echo "Musisz podać dwie liczby";
  21. }
  22.  
  23. else if ($dzialanie==1)
  24. {
  25. $wynik=$a+$b;
  26. echo $a."+".$b."=".$wynik;
  27. }
  28. else if($dzialanie==2)
  29. {
  30. $wynik=$a-$b;
  31. echo $a."-".$b."=".$wynik;
  32. }
  33. else if($dzialanie==3)
  34. {
  35. $wynik=$a*$b;
  36. echo $a."*".$b."=".$wynik;
  37. }
  38. else if($dzialanie==4)
  39. {
  40. $wynik=$a/$b;
  41. echo $a.":".$b."=".$wynik;
  42. }
  43.  
  44.  
  45.  
  46. ?>
  47.  
  48. <form action="<?= $PHP_SELF ?>" method="POST">
  49.  <p>
  50. <input type="text" name="a" maxlength="20" size="20"/>
  51. </p>
  52. <select name="dzialanie">
  53. <option value="1">+ -dodawanie</option>
  54. <option value="2">- -odejmowanie</option>
  55. <option value="3">* -mnożenie</option>
  56. <option value="4">/ -dzielenie</option> 
  57. </select>
  58.  
  59. <p>
  60.  <input type="text" name="b" maxlength="20" size="20"/>
  61.  
  62. </p>
  63. <input type="submit" name="zaloguj" value="zaloguj"/>
  64.  
  65.  
  66. </form>


Jak widac udalo mi sie zrobic tylko kalkulator. Nie wiem jak to zrobic, zeby on sprawdzal, czy zytkownik wczesniej sie zalgowal i jak go przekierowac jesli sie nie zalogowal na strone logowania.
Nie wiem tez czy prawidlowo uzylem $PHP_SELF, w zadaniu bylo napisane, ze trzeba uzyc, to uzylem, ale nie jestem pewien czy o to chodzi.

Jesli ktoś moglby mi pomoc to bylbym szalenie wdzieczny smile.gif
chemik1982
  1. <?php
  2. function sprawdz_sesje(){
  3. if (isset($_SESSION['login']))
  4. return true;
  5. else return false;
  6. }
  7. ?>

dalej w zaleznosci od tego co ci zwroci funkcje mozesz albo usera przekierowac do strony kalkulatora albo do strony logowania.
nie wnikalem w twoj kod.
Przyda sie: header('Location:gdzie_ma_przekierowac');
drzalek
Tak, tylko ze to wszystko musie sie dziac na tym jednym pliku z kalkulatorem. Mam do dyspozycji trzy pliki. Pierwszy z logowaniem, drugi z wypisanie nazwy uzytkownika i hasla oraz z linkiem do trzeciego pliku. W tym trzecim musze to wszytsko sprawdzic, nie moge sobie zrobic czwartego pliku.
Chodzi o to, ze jak ktos sobie wejdzie z marszu do pliku z kalkulatorem, to zeby mu sie ten kalkulator nie wyswielil, tylko zeby go przenioslo do pliku z logowaniem.
A tak w ogóle to dzięki za zainteresowanie problemem smile.gif
Neeke
  1. <?php
  2. if(![color="#007700"]isset([/color]$_SESSION['login'])) header('location: ADRES PLIKU Z LOGOWANIEM');
  3. ?>


i to sobie wstawiasz

opis jezeli $_SESSION['login'] ma w sobie pusta wartosc zostanie przeniesiony uzser do pliku gdzie podales scieszke a jezeli jest poprawna to dalszy ciag dzialania tej strony na ktora wszedl jest toczony to tyle:)


pzdr!
drzalek
Oki dzięki wielkie, w końcu zrobiłem to inaczej, nie do końca poprawnie, ale ważne, że działa. Jeszcze raz dzięki za zainteresowanie moją osobą :-)
Pozdrawiam
Gallareton
Nie przeczytalem wszystkiego co pisaliscie, ale widzialem ze piszecie o sesjach... Ja osobiscie nie bawilem sie z uzyciem sesji, ale dla uproszczenia skryptow polecam wprowadzenie 2 ciasteczek (z loginem i haslem), poniewaz wlam przy uzyciu tych ciasteczek i tak rowna sie ze znaniem ich tongue.gif
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.