Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]logowanie
Forum PHP.pl > Forum > PHP
Raffal
Witam
mam taki o to problem chcialbym zrobic skrypt logowania wykorzystujacy sesje i cookie(do autologowania)
tzn.
1.sprawdza czy istnieja cookie jezeli tak tworzy sesje i przenosi na 2 strone gdzie sprawdzane sa sesje
2.jezeli cookie nie istnieja prosi o zalogowanie
3.wpisujemy login i haslo
a)jezeli zaznaczymy autologowanie tworzy cookie i ustawia sesje
cool.gif jezeli nie zaznaczymy autologowania nie towrzy cookie i ustawia sesje
4.przenosi nas na 2 strone i sprawdza sesje

i o to ploki
logowanie1.php
  1. <?
  2. if(isset($_COOKIE['logowanie']))
  3.  
  4. {
  5.  
  6. $_session['logowanie']="zalogowany";
  7. header('location: logowanie2.php');
  8.  
  9. }
  10. else
  11. {
  12. if($login=login && $password=haslo)
  13. {
  14. $_session['logowanie']="zalogowany";
  15. if($autologowanie=loguj)
  16. {
  17. setcookie("logowanie", "zalogowany", time()+3600);
  18. echo 'cookie ustawione';
  19. }
  20. header('location: logowanie2.php');
  21. }
  22. }
  23. ?>
  24.  
  25. <form action="" method="POST"><br>
  26.  
  27. login<input type="text" name="login" value="" size=""><br>
  28.  
  29. haslo<input type="password" name="password" value="" size=""><br>
  30.  
  31. logowanie automatyczne<input type="checkbox" name="autologowanie" value="loguj"><br>
  32.  
  33.  
  34. <input type="submit" value="Wyslij">
  35.  
  36. <input type="reset" value="Wyczysc"><br>
  37.  
  38.  
  39. </form>

logowanie2.php
  1. <?
  2. $logowanie=$_SESSION['logowanie']
  3. if($logowanie=zaloguj)
  4. {
  5. echo 'dziala';
  6. }
  7. else
  8. {
  9. echo 'xxx';
  10. }
  11. ?>




czy moge prosic o pomoc
napotkalem taki blad

Parse error: syntax error, unexpected T_VARIABLE in /home/accounts_a/akademiks/public_html/logowanie2.php on line 4


Parse error: syntax error, unexpected T_IF in /home/accounts_a/akademiks/public_html/logowanie.php on line 4
zdaje sobie sprawe ze bledow bedzie wiecej dlatego prosilbym o przejzenie tego skryptu:)
batman
  1. <?php
  2. if($logowanie == 'zaloguj')
  3. ?>
Raffal
niestety bledy sa przedewszystkim w 1.pliku logowanie.php i tam wlasnie wyskakuje pierwszy blad
batman
W instrukcji warunkowej if, jeśli chcesz porównać coś z czymś piszesz podwójny znak równości ==. Ponadto wszystkie stringi zamykaj w apostrofy( ' ) lub cudzysłowia ( " ).

  1. <?php
  2. if($login == 'login' && $password == 'haslo')
  3. ?>


W innych miejscach tak samo.
Raffal
no racja masz racje ale z tego powodu nie wyskakiwal by bład a blad dotyczy 4 liniki

Parse error: syntax error, unexpected T_IF in /home/accounts_a/akademiks/public_html/logowanie.php on line 4 cos w 1 if'ie mam zle ale nie wiem co??
REN
W drugiej linijce po session_start() brakuje srednika i potem wszystko sie juz sypie smile.gif
Jak parser wywala blad to warto jest przeanalizowac wczesniejsze linijki kodu.

BTW: czy ten temat nie nadaje sie na przedszkole?
Raffal
poprawilem wszystkie bledy skladniowe i doszedlem do takiego momentu
logowanie.php
  1. <?
  2. if(isset($_COOKIE['logowanie']))
  3.  
  4. {
  5.  
  6. $_session['logowanie']="zalogowany";
  7. header('location: logowanie2.php');
  8.  
  9. }
  10. else
  11. {
  12. if($login=='login' && $password=='haslo')
  13. {
  14. $_session['logowanie']="zalogowany";
  15. if($autologowanie=='loguj')
  16. {
  17. setcookie("logowanie", "zalogowany", time()+3600);
  18. echo 'cookie ustawione';
  19. }
  20. header('location: logowanie2.php');
  21. }
  22.  
  23. else
  24. {
  25. echo 'błedne haslo lub login';
  26. }
  27. }
  28. ?>
  29.  
  30. <form action="" method="POST"><br>
  31.  
  32. login<input type="text" name="login" value="" size=""><br>
  33.  
  34. haslo<input type="password" name="password" value="" size=""><br>
  35.  
  36. logowanie automatyczne<input type="checkbox" name="autologowanie" value="loguj"><br>
  37.  
  38.  
  39. <input type="submit" value="Wyslij">
  40.  
  41. <input type="reset" value="Wyczysc"><br>
  42.  
  43.  
  44. </form>

logowanie2.php
  1. <?
  2. $logowanie==$_SESSION['logowanie'];
  3. if($logowanie =='zalogowany')
  4. {
  5. echo 'dziala';
  6. }
  7. else
  8. {
  9. echo 'xxx';
  10. }
  11. ?>

no i nie wyswietlane sa zadne bledy lecz sa bledy logiczne tzn dziala podwarunkiem ze zaznacze autologowanie bez tego nie
przedstawiam efekt
logowanie -przyklad
REN
$logowanie==$_SESSION['logowanie'];

= zamiast ==

= to operator przypisania
== to operator porownania

Nie powinienes przeczytac jakiegos kursu dla poczatkujacych w php?
Raffal
nie wiem jak sobie z tym poradzic ciagle wyswietla ze nie mam aktualnej sesji
batman
Zanim zaczniesz dalej kombinować z tym skryptem poszukaj na forum kursów dla początkujących i kup jakąś książkę. Opisane wcześniej problemy wynikały ze słabej znajomości php. Dobrze, że chcesz się uczyć, ale jakieś podstawy powinieneś mieć. Nie da się wytłumaczyć jak to działa osobie, która nie odróżnia = od ==.

  1. <?php
  2. // zamiast
  3. $_session
  4. // napisz
  5. $_SESSION
  6. ?>
Raffal
ok dziala smile.gif wielkie dzieki
mam jeszcze jedno pytanie czy wstawienie tego sprawi ze mnie wyloguje
  1. <?
  2. setcookie("logowanie","",time()-3600);
  3. header('location: logowanie.php');
  4.  
  5. ?>


tzn oczywiscie przypisac to buttonowi w action?

czy jest moze jakis lepszy sposob
mateuszkurek
WITAM - poprawiłem błedy i u mnie wszystko działa jak należy - korzystam z WebSerw php5, mysql5, apache 2

oto kod logowanie2.php

  1. [/php] 
  2. <?php
  3. $logowanie==$_SESSION['logowanie'];
  4. if($logowanie =='zalogowany')
  5. {
  6. echo 'dziala';
  7. }
  8. else
  9. {
  10. echo 'xxx';
  11. }
  12. ?>
  13. /php] 
  14. oto kod logowanie 1.php
  15.  
  16. [php]
  17. <?php
  18. if(isset($_COOKIE['logowanie']))
  19.  
  20. {
  21.  
  22. $_SESSION['logowanie']="zalogowany";
  23. header('location: logowanie2.php');
  24.  
  25. }
  26. else
  27. {
  28. if($login=='login' && $password=='haslo')
  29. {
  30. $_SESSION['logowanie']="zalogowany";
  31. if($autologowanie=='loguj')
  32. {
  33. setcookie("logowanie", "zalogowany", time()+3600);
  34. echo 'cookie ustawione';
  35. }
  36. header('location: logowanie2.php');
  37. }
  38.  
  39. else
  40. {
  41. echo 'błedne haslo lub login';
  42. }
  43. }
  44. ?>
  45.  
  46. <form action="" method="POST"><br>
  47.  
  48. login<input type="text" name="login" value="" size=""><br>
  49.  
  50. haslo<input type="password" name="password" value="" size=""><br>
  51.  
  52. logowanie automatyczne<input type="checkbox" name="autologowanie" value="loguj"><br>
  53.  
  54.  
  55. <input type="submit" value="Wyslij">
  56.  
  57. <input type="reset" value="Wyczysc"><br>
  58.  
  59.  
  60. </form>
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.