Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z logowaniem do Panelu Admina
Forum PHP.pl > Forum > Przedszkole
awek520
Witam.. Mam otóz ogromny problem..

Tak po krótce co i jak..

Tworzę stronki od kilku miesiec, mam problem z panelem admina, stworzonym przez siebie..
Moje logowanie nie jest zbytnio skomplikowane..

A więc tak..

Kilka miesiecy temu stworzyłem panel administratora, jest zainstalowany na kilku stronach gdzie działa bez zarzutu..
Ostatnio dostałem zlecenie na 2 strony, wszystko ładnie ok, zainstalowałem panel jest ok tongue.gif

Tylko że.. gdy zalogujemy się, chcemy wejsc na zakładkę "podstrony", przechodzimy spowrotem do logowania..
PHP tak jakby "nie wie" że jesteśmy zalogowani.. i dalej oczekuje od nas że się zalogujemy..

Tutaj ten kod z logowania..:

  1.  
  2. <?
  3. ?>
  4. <?
  5. if(isset($_POST['pass']))
  6. {
  7. if($_POST['login']=='login')
  8. if($_POST['pass']=='haslo')
  9. {
  10. $_SESSION['index']='ok';
  11. }
  12. }
  13. if((!isset($_SESSION['index']) || $_SESSION['index']!='ok') && $_GET['index']!='wyloguj')
  14. {
  15. echo '<form method="POST" action="index.php">
  16. <p align="center">
  17. <font color="white"><br> <br> <br> <br> <br> <br>
  18. Nie jesteś zalogowany<br><br>Wpisz dane logowania:<br><br>
  19. Login: <br><input type="login" name="login" size="20"><br><br>
  20. Hasło:<br> <input type="password" name="pass" size="20"><br><br>
  21. <input type="submit" value="OK"></p></font>
  22. </form>';
  23. }
  24. if(isset($_GET['index']) && $_GET['index']=='wyloguj')
  25. {
  26. $_SESSION['index']='';
  27. echo ' <br> <br> <br> <br> <br> <br>
  28. <center><font color="white">Nastąpiło wylogowanie...<br><br> Powrót do <a href="index.php">strony głównej</a>...</center></font>';
  29. }
  30. if($_SESSION['index']=='ok')
  31. {
  32. ?>
  33.  
  34.  
  35. JAKAS TRESC
  36.  
  37.  
  38. <?
  39. mysql_close($uchwyt);
  40. }
  41. ?>
  42.  



Czy ktoś mógłby mi powiedziec co jest grane z tym?

Skrypt działa na testowym serwerze moim z cba.pl
Testowa stronka

login - haslo ... testowe

Nie działa jednak na home.pl, 1and1.pl, blink.pl..

Wydaje mi się że jest to cos związane z tym kodem..
Nie jestem zbyt dobry w tym ;p więc proszę o pomoc.. a nie o "hejt"

Pozdrawiam


PS. Nie wiem czy dobra kategoria na forum ;d ale myślę że nikt się nie obrazi smile.gif
Turson
Pewnie w tej zakładce podstrony nie ma session_start()
awek520
Niestety... nie było, ale dodalem i to dalej nie to : /
Turson
Pokaż kod zakładki
awek520
Cytat(Turson @ 11.09.2013, 19:10:14 ) *
Pokaż kod zakładki


Te podstrony są pisane na funkcji:

  1. switch($_GET['id'])


Więc to raczej nie to.. poprzedni panel ktory nie był pisany na switch także nie działał.. robiło się to samo.. przejżyj może kod php z logowania lub cos, twoim zdaniem jest ok?

Chyba że poprostu napisze nowe logowanie oparte na mysql ? co wy na to ?

PS. tak samo jest z galerią? jest tam zwykły kod html.. a nie działa.. bez php
Turson
Jeśli podstrony są includowane to wszystko zależy od pliku głównego, np. index.php
Pokaż kod
awek520
Cytat(Turson @ 11.09.2013, 19:50:33 ) *
Jeśli podstrony są includowane to wszystko zależy od pliku głównego, np. index.php
Pokaż kod



Cały kod praktycznie już wkleiłem w 1 poscie..

Tylko na górze w head jakieś pierdołki w stylu title, nie znaczące.. w "tresci" jest menu, i incluodowane podstrony, a na dole stopka..

wszystko na html praktycznie.. wiec to raczej nic nie zmienia..
Posio

wstaw na samym początku strony przed jakimkolwiek PHP
  1. !=
zamień na
  1. !==
tak samo z
  1. ==
pozamieniaj na
  1. ===
Tym bardziej że operujesz na stringach.
zamiast
  1. $_SESSION['index']='';
lepiej ją po prostu usunąć - unset i zamiast
  1. $_SESSION['index']='ok';
zrób
  1. $_SESSION['index'] = true;
i sprawdzasz w sposób:
  1. if($_SESSION['index']) { }
btw. Jak z tak elementarną wiedzą wpajasz ludziom że twój skrypt "jest bezpieczny" ? ;D
awek520
Zaraz to posprawdzam co i jak, i wiem że ten skrypt nie jest bezpieczny.. ale też wiem, że po co sobie utrudniac życie.. jak i tak nikt sie na tą stronkę nie włamie bo.. po co ? smile.gif


pozmieniałem.. i teraz tak szczerze wgl nie potrzeba logowania tongue.gif cała stronka pokazana bez logowania.. przejże jeszcze ten kod i jak cos to sie odezwe..

chodziło Ci o takie cos?

Kod
<?
if(isset($_POST['pass']))
{
        if($_POST['login']==='login')
        if($_POST['pass']==='haslo')
        {
        $_SESSION['index'] = true;
        }
}
if((!isset($_SESSION['index']) || $_SESSION['index']!=='true') && $_GET['index']!=='wyloguj')
{
echo '<form method="POST" action="index.php">
        <p align="center">
        <font color="white"><br> <br> <br> <br> <br> <br>
        Nie jesteś zalogowany<br><br>Wpisz dane logowania:<br><br>
        Login: <br><input type="login" name="login" size="20"><br><br>
        Hasło:<br> <input type="password" name="pass" size="20"><br><br>
        <input type="submit" value="OK"></p></font>
</form>';
}
$_SESSION['index']='';
if(isset($_GET['index']) && $_GET['index']=='wyloguj')
{
echo ' <br> <br> <br> <br> <br> <br>
<center><font color="white">Nastąpiło wylogowanie...<br><br> Powrót do <a href="index.php">strony głównej</a>...</center></font>';
}
if($_SESSION['index'] = true)
{
?>
Turson
  1. $_SESSION['index']='';

Ustawiasz na puste, a później sprawdzasz czy jest równe true?

Przy wylogowaniu ustaw na false.

  1. if($_SESSION['index'] = true)
  2. {

Chyba widzisz błąd, co nie? smile.gif
awek520
Ogólnie mam tak teraz..

Kod
<?
session_start();
?>
<?
if(isset($_POST['pass']))
{
if($_POST['login']==='login')
if($_POST['pass']==='haslo')
{
$_SESSION['index']='true';
}
}
if((!isset($_SESSION['index']) || $_SESSION['index']!=='true') && $_GET['index']!=='wyloguj')
{
echo '<form method="POST" action="index.php">
<p align="center">
<font color="white"><br> <br> <br> <br> <br> <br>
Nie jesteś zalogowany<br><br>Wpisz dane logowania:<br><br>
Login: <br><input type="login" name="login" size="20"><br><br>
Hasło:<br> <input type="password" name="pass" size="20"><br><br>
<input type="submit" value="OK"></p></font>
</form>';
}
if(isset($_GET['index']) && $_GET['index']==='wyloguj')
{
$_SESSION['index']='false';
echo ' <br> <br> <br> <br> <br> <br>
<center><font color="white">Nastąpiło wylogowanie...<br><br> Powrót do <a href="index.php">strony głównej</a>...</center></font>';
}
if($_SESSION['index'] = 'true')
{
?>
Turson
Po raz kolejny...
  1. if($_SESSION['index'] = 'true')
  2. {

Znasz różnicę pomiędzy "=" a "==" ?


True nie umieszczaj w żadnych cudzysłowach, tylko prosto z mostu możesz definiować czy porównywać
$_SESSION["index"]=true;
awek520
Cytat(Turson @ 12.09.2013, 20:15:29 ) *
Po raz kolejny...
  1. if($_SESSION['index'] = 'true')
  2. {

Znasz różnicę pomiędzy "=" a "==" ?


True nie umieszczaj w żadnych cudzysłowach, tylko prosto z mostu możesz definiować czy porównywać
$_SESSION["index"]=true;



Nie będę tutaj kłamac.. nie znam.. tak samo co znaczy

!= ?



PS. To jak to mam zrobic?? bo juz sam nic nie kapuje..

Kod
if
$_SESSION["index"]=true;
{


questionmark.gif
Turson
= definiujesz zmienna
== znak równości
!= nie jest równe
Tak w skrócie
awek520
Oo ;d teraz mi to już dużo mówi ;d


Nie kapuje już tego.. to ma byc tak ?

Kod
if
$_SESSION["index"]=true;
{
Outside
  1. if
  2. $_SESSION["index"]==true;
  3. {
awek520
Cytat(Outside @ 12.09.2013, 23:11:43 ) *
  1. if
  2. $_SESSION["index"]==true;
  3. {



Teraz to już nic nie działa.. pusta biała stronka
com
  1. if($_SESSION['index'] == true ) {
  2.  
  3. // whatever
  4.  
  5. }
  6.  


jeszcze raz na spokojnie
pojedynczy znak = używasz kiedy chcesz przypisać wartość, podwójny == używasz do porównania dwóch wartości np
  1. $zmienna1 = 'ala';
  2. $zmienna2 = 'ala';
  3.  
  4. if($zmienna1 == $zmienna2) // dla string raczej powinno się stosować === bo były problemy, podobno usunięto w nowej wersji php
  5. echo "równe";
  6.  
  7. //wynik oczywiście równe
  8.  


i zaprzeczenie != tak samo jak w wypadku == , i też dla stringów !== wink.gif
kropamk
Zapożyczone bo prościej się nie da po prostu:

1 === 1 -> true
1 == 1 -> true
1 === "1"-> false
1 == "1"-> true
"foo" === "foo" -> true
com
tak zgadza się, ale jak twierdza w changeLog usunięto tego buga biggrin.gif ale nie sprawdzałem wink.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.