Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP] Podwójny panel logowania, Problemem jest podwójne występowanie panelu logowania
Fiox
post 24.03.2011, 22:17:47
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 19.03.2011

Ostrzeżenie: (0%)
-----


Problem przedstawia się następująca.

Mam taki panel logowania, i problem polega na tym, że po kliknięciu "zaloguj" przenosi mnie do osobnej, pustej strony, na której znajduje się jedynie ten właśnie panel logowania. Czyli generalnie aby się zalogować potrzeba wpisać i potwierdzić dwa razy login i hasło - najpierw stronie głównej, a potem przenosi cię jeszcze do osobnej podstrony z tym panelem i tam trzeba wpisać po raz drugi. (Teraz to wygląda troche inaczej niż na screenie, ale problem nadal pozostaje ten sam)

Plik index.php który jest zaimportowany do strony głównej funkcją include

  1. <?php
  2.  
  3.  
  4. if (isset($_SESSION['user_id']) and isset($_SESSION['login']))
  5.  
  6. {
  7.  
  8. echo nl2br('Jestes zalogowany.<br /> Twój login to: ');
  9.  
  10. echo $_SESSION['login'];
  11.  
  12. echo nl2br(' <br/> <a href="logout.php">Wyloguj</a>');
  13.  
  14. }
  15.  
  16. else
  17.  
  18. {
  19.  
  20. ?>
  21. <form method="post" action="login.php">
  22. Login: <input type="text" name="login" maxlength="16"><br />
  23. Hasło: <input type="password" name="pass" maxlength="16"><br />
  24. <input type="submit" value="Zaloguj">
  25. <a href="register.php"> Zarejestruj się</a>
  26. </form>
  27. <?php
  28. }
  29. ?>


A tutaj ogólny plik "login.php"


  1. <?php
  2.  
  3.  
  4. if (isset($_POST['konto']) and isset($_POST['password']) )
  5.  
  6. {
  7.  
  8. require('conn.php');
  9.  
  10. $konto=mysql_real_escape_string(trim($_POST['konto']));
  11.  
  12. $password=mysql_real_escape_string(trim($_POST['password']));
  13.  
  14. if ($konto!="" and $password!="")
  15.  
  16. {
  17.  
  18. $password = sha1($password);
  19.  
  20. $zapytanie="SELECT id FROM user WHERE login='$konto' and password ='$password'";
  21.  
  22. $temp=mysql_query($zapytanie) or die("Wystąpił błąd");
  23.  
  24. $ile=mysql_num_rows($temp);
  25.  
  26. $temp=mysql_fetch_array($temp);
  27.  
  28. $id=$temp['id'];
  29.  
  30.  
  31.  
  32. if ($ile==1)
  33.  
  34. {
  35.  
  36. $_SESSION['user_id']=$id;
  37.  
  38. $_SESSION['login']=$konto;
  39.  
  40. echo nl2br('Zostales zalogowany.<br/> <a href="main.php">Kliknij aby powrócić do strony głównej.</a> ');
  41.  
  42. }
  43.  
  44. else echo ('Podales zle dane. Kliknij wstecz aby sprobowac ponownie.');
  45.  
  46. }
  47.  
  48. }
  49.  
  50. else{
  51.  
  52. ?>
  53.  
  54. <html>
  55.  
  56. <body>
  57.  
  58. <form action="login.php" method="post">
  59.  
  60. <strong>Nazwa konta:</strong><input name="konto" type="text" value="" /><br>
  61.  
  62. <strong>Haslo:</strong><input name="password" type="password" value="" /><br>
  63.  
  64. <input type="submit" value="Zaloguj" />
  65.  
  66. </form>
  67.  
  68. </body>
  69.  
  70. </html>
  71.  
  72. <?php
  73.  
  74. }?>


Zrobiłem to w ten sposób, żeby na stronie głównej, gdy jesteśmy zalogowani, pojawiała się jedynie informacja o tym, a gdy nie, to wyświetla nam się formularz do zalogowania. I wszystko działa oprócz tego jednego mankamentu...

Pozdrawiam


Go to the top of the page
+Quote Post
snaers
post 24.03.2011, 22:33:04
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 1
Dołączył: 24.03.2011

Ostrzeżenie: (0%)
-----


W index.php w 23 linijce zmień LOGIN na KONTO.
Go to the top of the page
+Quote Post
Fiox
post 24.03.2011, 22:38:57
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 19.03.2011

Ostrzeżenie: (0%)
-----


Trzeba było jeszcze w 24 linijce zmienić "pass" na "password", ale dzięki - leci "pomógł"
Go to the top of the page
+Quote Post
marck
post 24.03.2011, 22:54:04
Post #4





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 27.05.2008

Ostrzeżenie: (0%)
-----


Jeśli mogę coś podpowiedzieć to zrób to sobie pseudo - obiektowo. Będzie dużo czytelniej i mniej kłopotu. Jak to zrobić? bardzo prosto.
Robisz sobie dwa małe skrypciki np. index.php i core.php i jedziesz jak z klockami. Oto przykładzik.

core.php
  1. function pokaz_nag(){
  2. echo"<html>"
  3. ."<head>"
  4. ."</head>"
  5. ."<body>"
  6. }
  7.  
  8. function pokaz_stopke(){
  9. echo"</body>"
  10. ."</html>"
  11. }
  12.  
  13. function pokaz_form_login(){
  14. echo"<form action='index.php' method='post'>"
  15. ."<fieldset>"
  16. ."<input name='login'>"
  17. ."<input type='password' name='pass'>"
  18. ."<input type='submit' name='loguj' value='Zaloguj'>"
  19. ."</fieldset></form>";
  20. }
  21.  


A potem dajesz:
index.php

  1. require_once('core.php');
  2.  
  3. //powrót danych z formularza
  4.  
  5. if(isset($_POST['loguj'])){
  6. $login=$_POST['login'];
  7. $pass=$_POST['pass'];
  8. if($login==costam && $pass==costam){
  9. pokaz_nag();
  10. echo"<p>Strona dla zalogowanych</p>";
  11. pokaz_stopke();
  12. }
  13. else{
  14. pokaz_nag();
  15. echo"<p> Pa Pa leszczu</p>";
  16. pokaz_stopke();
  17. }
  18. }
  19.  
  20. pokaz_nag();
  21. pokaz_form_login();
  22. pokaz_stopke();


ot i cała filozofia - funkcje to klocki, możesz nimi budować stronę jak chcesz, możesz sobie wyciągać loginy i hasła z bazy lub zabezpieczyć to coś sesją. Ale na pewno formularz nie wyskoczy ci dwa razy smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 12:55