Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja Case, a system logowania i rejestracji
Forum PHP.pl > Forum > PHP
plastus321
Czy da się w jednym pliku np. index.php za pomocą funkcji switch zrobić system logowania bez oddzielnych plików typu rejestracja.php i logowanie.php?

Jeśli tak to nakierujcie mnie jakimś przykładowym kodem jeśli mogę prosić lub jakimś skryptem.

Ogólnie jestem w tym zielony, ale bardzo mi na tym zależy.

Oczywiście chodzi głównie o to by sesje użytkownika działały tongue.gif

Z góry za odpowiedzi dziękuje smile.gif

cycofiasz
Da się pewnie i cały serwis zrobić na jednym pliku.

Można na przykład przekazywać rodzaj strony w url czyli np. $_GET['page'] i zależnie od tej wartości wykonywać określone akcje
plastus321
No fajnie wszystko, ale jedno mi nie śmiga...

Nie odpalają mi sesje że tak to powiem...

To znaczy, że jak się zaloguje to nic się nie dzieje kompletnie...

A powinno przynajmniej zamienić w menu strony "Logowanie" na "Profil", a "Rejestracja" na "Wyloguj"...

Poniżej umieszczam kod:

  1. <?php
  2. require('conn.php');
  3.  
  4. echo "<a href='index.php'>Strona główna</a> | ";
  5. echo "<a href='index.php?page=regulamin'>Regulamin</a> | ";
  6. if($_SESSION['login'])
  7. {
  8. echo "<a href='index.php?page=logowanie'>Logowanie</a> | ";
  9. echo "<a href='index.php?page=rejestracja'>Rejestracja</a> | ";
  10. } else {
  11. echo "<a href='index.php?page=profil'>Profil</a> | ";
  12. echo "<a href='index.php?page=wyloguj'>Wyloguj</a><br /><br /><br />";
  13. }
  14.  
  15.  
  16. $page=$_GET['page'];
  17.  
  18. switch($page)
  19. {
  20.  
  21.  
  22. case 'logowanie':
  23. echo "
  24. <form method='post'>
  25. <fieldset>
  26. <legend align='center'>Logowanie</legend>
  27. Login:<br><input name='login' type='text' value='' /><br />
  28. Hasło:<br><input type='password' name='haslo' value='' /><br />
  29. </fieldset>
  30. <center>
  31. <input type='submit' name='loguj' value='Loguj' />
  32. <input type='reset' value='Wyczyść dane' />
  33. </center>
  34. </form>";
  35.  
  36. if(isset($_POST['loguj'])) {
  37.  
  38.  
  39. FROM user WHERE login = '".$_POST['login']."'
  40. && haslo = '".$_POST['haslo']."' ")) > 0) {
  41.  
  42.  
  43. if(mysql_num_rows(mysql_query("SELECT * FROM user
  44. WHERE login = '".$_POST['login']."'
  45. && haslo = '".$_POST['haslo']."' ")) > 0 ) {
  46.  
  47.  
  48. $_SESSION['zalogowany'] = true;
  49. $_SESSION['login'] = $_POST['login'];
  50. $_SESSION['haslo'] = $_POST['haslo'];
  51. header('Location: index.php');
  52.  
  53.  
  54. } else {
  55.  
  56. echo "Złe hasło, proszę spróbować ponownie";
  57. }
  58. } else {
  59. echo "Nie ma takiego użytkownika";
  60. }}
  61. break;
  62.  
  63. case 'rejestracja':
  64.  
  65.  
  66. $ile=mysql_query("SELECT * FROM `user` WHERE login = '".$_POST['login']."'");
  67. $ile=mysql_num_rows($ile);
  68.  
  69. $zapytanie = "CREATE TABLE user (id int NOT NULL AUTO_INCREMENT,
  70. login varchar(50), email varchar(30), haslo varchar(30), miejscowosc varchar(30),
  71. imie varchar(30), nazwisko varchar(30), wiek varchar(30),
  72. PRIMARY KEY(id))
  73. ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_polish_ci;";
  74. $wykonaj=mysql_query($zapytanie);
  75.  
  76.  
  77. if(isset($login) and ($email) and ($haslo) and ($haslo2))
  78. {
  79.  
  80. if($haslo2 == $haslo)
  81. {
  82.  
  83. if($regulamin)
  84. {
  85.  
  86. if($ile==0)
  87. {
  88.  
  89. $dodaj_user= ("INSERT INTO user SET login='".$_POST['login']."', email='".$_POST['email']."', haslo='"$_POST['haslo']"'");
  90. $dodawanie_usera=mysql_query($dodaj_user);
  91.  
  92. echo "<center><b><font color='green'>Twoje konto ".$_POST['login']." zostało utworzne!</font></b></center>";
  93.  
  94. }else{echo "<center><b><font color='red'>Taki użytkownik już istnieje. Wybierz inny login.</b></center></font>";}
  95.  
  96. }else{echo "<center><b><font color='red'>Musisz akceptować regulamin.</b></center></font>";}
  97.  
  98. }else{echo "<center><b><font color='red'>Hasła się nie zgadzają.</b></center></font>";}
  99.  
  100. }else{echo "<center><b><font color='red'>Wypełnij wszystkie pola.</b></center></font>";}
  101.  
  102.  
  103. echo "
  104. <form method='post'>
  105. <fieldset>
  106. <legend align='center'>Rejestracja konta</legend>
  107. Login:<br><input name='login' type='text' value='' /><br />
  108. Email:<br><input name='email' type='text' value='' /><br />
  109. Hasło:<br><input type='password' name='haslo' value='' /> <br />
  110. Powtórz hasło:<br><input type='password' name='haslo2' value='' /><br />
  111. <br />
  112. <input type='checkbox' name='regulamin' /> - Akceptuję <a href='index.php?page=regulamin'>regulamin</a>.
  113. </fieldset>
  114. <br /><center>
  115. <input type='submit' value='Rejestruj' />
  116. <input type='reset' value='Wyczyść dane' />
  117. </center>
  118. </form>";
  119. break;
  120.  
  121. case 'profil':
  122. echo "tu profil i z nim zwiazane rzeczy";
  123. break;
  124.  
  125. case 'wyloguj':
  126. echo "a tu wylogowanie";
  127. break;
  128.  
  129. case 'regulamin':
  130. echo "a tu wylogowanie";
  131. break;
  132.  
  133. default:
  134. echo "Strona główna";
  135.  
  136.  
  137.  
  138. }
  139. ?>



Jeśli możecie to przeszukajcie mi ten kod i sprawdźcie czy niema żadnych błędów w loginie czy coś...

A jeśli są to prosiłbym was o poprawienie ich i wstawienie kodu na nowo w tym temacie...

Z góry dziękuje i pozdrawiam wink.gif
kadlub

a ty u siebie masz

session_start;
plastus321
JESTEŚ GENIALNY!!

ALE PRZESRANIE MAŁY BŁĄD!!

DZIĘKI STARY MASZ U MNIE OGROMNEGO PLUSA biggrin.gif

exclamation.gif!!!!!!!!
impro
Zastanawia mnie podobna sprawa.
Jak zrobić przy pomocy jednego pliku index.php kilka stron z ładnymi url na przykład kontakt.htm forum.htm pomoc.htm, tak by nie towrzyć kolejnych plików kontakt.php forum.php pomoc.php
Jakie są metody na to i jakich funkcji się używa.

Chodzi mi o mniej więcej to samo tylko z ładnymi adresami.
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.