Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Logowanie,rejestracja,strona dostepna po zalogowaniu
Forum PHP.pl > Forum > Przedszkole
gylopl
Witam!!!!
PHP bawie sie dopiero kilkanascie dni.... Akurat mam duzo wolnego czasu wiec postanowilem zrobic prosta gre.... Zaczalem szukac o logowaniu, rejestracji i znalazlem dwa tutoriale...

http://www.webtips.pl/index.php?showtopic=5820&st=0 logowanie
http://www.webtips.pl/post6012.html rejestracja

Przeczytalem wszystkie komentarze do tych tutkow i narazie skopiowalem kody logowania, a jak sie poducze to je troszke ulepsze
Przechodzac do problemu.....

kod logged.php


  1. <?php
  2. include "auth.inc.php"
  3. ?>
  4. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  5.  <head>
  6. <title>Darkness</title>
  7. <link rel="Stylesheet" href="css.css" type="text/css" />
  8.  
  9.  
  10. </head>
  11.  <body>
  12. <div id="BANER">
  13. </div>
  14.  
  15.  
  16.  
  17.  
  18. <div id="menu"><dl>
  19.  <dt>Profil</dt>
  20.  <dd id="postac"><a href="?id=postac">Postac</a></dd>
  21.  <dd id="ustawienia"><a href="?id=ustawienia">Ustawienia</a></dd>
  22.  
  23.  <dd id="walka"><a href="?id=fight">Walka</a></dd>
  24.  
  25.  <dd id="akademia"><a href="?id=akademia">Akademia</a></dd>
  26.  
  27.  <dd id="ranking"><a href="?id=ranking">Ranking</a></dd>
  28.  
  29.  <dd id="tutorial"><a href="?id=tutoria;">Tutorial</a></dd>
  30.  
  31.  <dd id="faq"><a href="?id=faq">Faq</a></dd>
  32.  
  33.  <dd id="poczta"><a href="?id=poczta">Poczta</a></dd>
  34.  
  35.  <dd id="logout"><a href="?id=logout">Wyloguj</a></dd>
  36.  
  37.  
  38.  
  39. </dl></div>
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48. <div id="TRESC">
  49.  <br><br>
  50.  
  51.  <center><h1>Witam..tresc</h1></center><br><br><br>
  52.  
  53.  
  54.  
  55. <?php
  56. switch($_GET['id'])
  57. {
  58. case akademia:include("akademia.php");break;
  59. case faq:include("faq.php");break;
  60. case logout:include("logout.php");break;
  61. case poczta:include("poczta.php");break;
  62. case postac:include("postac.php");break;
  63. case ranking:include("rank.php");break;
  64. case tutorial:include("tut.php");break;
  65. case ustawienia:include("ustawienia.php");break;
  66. case fight:include("walka.php");break;
  67.  
  68.  
  69.  
  70. default :include("poczta.php");break;
  71.  
  72. }
  73.  
  74. ?>
  75. </div>  
  76.  
  77.  
  78.  
  79.  
  80.  <div id="STOPKA">
  81.  
  82.  
  83.  
  84.  
  85.  <center>Copyright 2008 by Grzegorz Makowski--Makosoft</center>
  86. </div>
  87. </body>
  88. </html>


1)Dostep do zawartosci strony po zalogowaniu
http://snakesvsspiders.ovh.org/ wchodzac na ta strone mozesz przejsc na logowanie i zalogowac sie tymi danymi:

LOGIN: Kingus
HASLO:adidas

Zostaniesz przekierowany na strone http://snakesvsspiders.ovh.org/logged/logged.php
jednak zaraz(ok.10sek) potem znowu bedzie trzeba sie zalogowac....

wydaje mi sie ze to wszystko przez plik auth.inc.php(ponizej) poniewaz skrypt logowania i auth sa z dwoch zrodel

  1. <?php
  2. if (isset($_SESSION['logged']) && $_SESSION['logged'] == 1) {
  3. //nic nie rob jak zalogowany
  4. } else{
  5. $redirect = $_SERVER['PHP_SELF'];
  6. header("refresh: 5; URL=http://snakesvsspiders.ovh.org/logging.php");
  7. echo "Musisz być zalogowany, aby mieć dostęp do tych funkcji.Za chwile zostaniesz przekierowany na stronę logowania!<br>";
  8. echo "Jeśli twoja przegladarka nie obsluguje przekierowan...
  9. <a href=\"http://snakesvsspiders.ovh.org/logging.php\">Klikni tutaj</a>";
  10.  
  11.  die();
  12.  
  13. }
  14. ?>


tylko nie wiem co zrobic zeby po zalogowaniu nie wywalalo znowu na logowanie.... pewnie cos bedzie trzeba zmienic w kodzie logowania wiec daje go na wszelki wypadek....

logging.php
  1. <?
  2. require_once('configlogging.php'); // załaczamy plik config.php
  3.  
  4. function usun($data){
  5.  
  6. GLOBAL $dbc;
  7. if (ini_get('magic_quotes_gpc')){
  8. $data = stripslashes($data);
  9. }
  10. return mysql_real_escape_string($data, $dbc);
  11. }
  12. if (isset($_POST['submit'])){
  13.  
  14. if (empty($_POST['login'])){
  15. $message .= '<font class="blad">Nie podałe&para; loginu</font><br />';
  16. $l = FALSE;
  17. }else{
  18. $l = usun($_POST['login']);
  19. }
  20.  
  21. if (empty($_POST['haslo'])){
  22. $message .= '<font class="blad">Nie podałe&para; hasła</font><br />';
  23. $h = FALSE;
  24. }else{
  25. $h = usun($_POST['haslo']);
  26. } 
  27. if ( $l && $h ){
  28.  
  29. $query = "SELECT username, access FROM user WHERE username='$l' AND haslo=password('$h')";
  30. $result = mysql_query($query);
  31. $row = mysql_fetch_array ($result, MYSQL_ASSOC);
  32. if($row){
  33. $_SESSION['username'] = $row['username'];
  34. $_SESSION['access'] = $row['access'];
  35. $_GET['cmd'] = 'ok';
  36. header ("Location: logged/logged.php"); // przekierowuje nas na jaka strone chcemy
  37. }else{
  38. $message .= '<font class="blad">Błędne hasło lub login</font><br />';
  39. }
  40. }else{
  41. $message .= '<font class="blad">Spróbuj jeszcze raz</font>';
  42. }
  43. }
  44. ?>
  45. <form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
  46. <table align="center" border="0">
  47. <tr>
  48. <td align="right" class="uni_01">Login:</td>
  49. <td><input type="text" name="login" size="30"></td>
  50. </tr>
  51. <tr>
  52. <td align="right" class="uni_01">hasło:</td>
  53. <td><input type="text" name="haslo" size="30"></td>
  54. </tr>
  55. <tr>
  56. <td align="right" class="uni_01"> </td>
  57. <td>
  58. <p align="center"><input style="font-weight: bold;" type="submit" name="submit" value="loguj">
  59. </td></tr>
  60. </table>
  61. </form>
  62. <div align="center">
  63. <? if(isset($message)){
  64. echo $message;
  65. }
  66. ?>
  67. </div>


2)Includowanie

Wydaje mi sie ze ta czesc bedzie mozna naprawic dopiero po 1 problemie....
Plik logged.php na samej gorze..

Zrobilem includowanie, w pliku logged.php w <div id="TRESC"> jest cos takiego:
"Witam..tresc"(to powitanie zaraz po zalogowaniu) ponizej jest incudowanie, czyli pliki ktore maja uruchamiac sie gdy nacisniemy link w menu... problem tkwi w tym iz "Witam..tresc" jest wszedzie.... czyli niewazne na ktory odnosnik nacisniesz to i tak ta tresc bedzie na kazdej podstronie...


Troche zagmatwane ale mam nadzieje ze zrozumiecie(nie denerwowac sie bo jestem poczatkujacy)

Pozdrawiam
Lejto
jak chcesz zrobić prostą grę w php jak nawet nie umiesz napisać systemu logowania?
Mlodycompany
lejto chłopak chce sie własnie nauczyc a ty mu w tym nie pomagasz. ja tez jak zaczynalem nauke php to nie czytalem podrecznikow tylko robilem sobie stronkei tak potrafie wiele, ale mniejsza.

gylopl skrypt logowania masz tutaj http://forum.php.pl/index.php?showtopic=94551&hl= dziala on w 100% bo sam takiego uzywam. wystarczy ze pozmienisz sobie zapytania. jesli cie zle zrozumialem, przepraszam, i napisz dokładnie jakie akcje maja byc wykonywane po zalogowaniu
kosmos
Cytat(gylopl @ 12.07.2008, 13:17:09 ) *
Witam!!!!
PHP bawie sie dopiero kilkanascie dni.... postanowilem zrobic prosta gre...



Za szeroka woda jak na początek. Poczytaj troszkę o tym języku naucz się podstaw. Rozumienia funkcji ( bo widzę że coś tam apropo nich skopiowałeś z inych źródeł ), obsługi tablic. Zacznji od prostych formularzy np: ankiet, a dopiero później weź się za systemik logowania. Przy takim module przydałay się komunikacja z bazą danych prawda? więc też poczytaj...

Zacznji od podstaw a później będzie Ci łatwiej. No chyba że jesteś mega mózgiem smile.gif Ale po tm co napisałeś to mam wątpliwości.
Pozatym zauważ jak ten kod PHP gryzie się z HTML zajrzyj TU. Umieść to na początek w osobnych plikach (to rozwiąże twój problem pojawiania się formularza nawet po zalogowaniu), poczytaj też o oddzielaniu treści od kodu php.

Z czasem zaczniesz nawet bawić się w OOP ale póki co podstawy.
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.