Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: $_GET + $_SESSION (sesja trwa do zmienienia strony)
Forum PHP.pl > Forum > PHP
w0jt3k
Oto strona na ktorej nie dziala mi logowanie.
problem rozwiazany = link usuniety, pozdrawiam

Kliknijcie zaloguj, nie musicie sie rejestrowac.

W czym tkwi blad?
W
  1. /index.php?action=form_log
sesja trwa. Jak kliknę np. mudzio, albo fudzio, to sesja zanika. Jak kliknę logo [powrót do strony głównej] - sesja znowu zanika. Od nowa trzeba się logować. O co chodzi? A może to nie zgodne z W3C? seo?questionmark.gif Chciałem zrobić taki pasek logowania, jak na stronie [url="http://forum.php.pl/[/url]

Dodam, z enie uzywam header, bo nie moge go uzyc po srodku skryptu ; /
Natomiast w apache na localhost, wszystko smiga aldnie. Nawet header: location sie ladnie wysyla.

Prosze o pomoc. Nie moge od tygodnia juz sobie z tym poradzic.
MateuszS
Po 1. Daj kod tego logowania bo nie jesteśmy jasnowidzami (chociaż na studiach wyrobiłem sobie już jako taką praktykę jeżeli chodzi o wróżenie)
Po 2. Jak Ci nie działa header po środku strony to dodaj

  1. ob_start(); //w pierwszej linijce, przed session_start();
  2. .....
  3. ob_end_flush(); //na samym koncu


com
jak dla mnie brakuje Ci pliku session_start() tongue.gif
w0jt3k
Próbowałem, nie działa z obuffem. Server zenbox tak jakby go nie czytał. W htacces napisalem sobie tez skrypcik ob i tez nie działa. Oto kod:
index.php
  1. <?php if(isset($_GET['mama'])){if($_GET['mama']!=null) { require $_GET['mama'] . ".php"; }}

  1. if (isset($nazwa_uz_l) && isset($haslo_l)) {
  2. try {
  3. loguj($nazwa_uz_l, $haslo_l);
  4. $_SESSION['prawid_uzyt'] = $nazwa_uz_l;
  5.  
  6.  
  7.  
  8. }
  9. catch (Exception $e) {
  10. echo 'Aby ogladac te strony trzeba byc zalogowanym.';
  11. echo '<a href="index.php">Powrot</a>';
  12. exit;
  13. }
  14. }
  15. if(isset($_SESSION['prawid_uzyt'])){?>
  16. <div class="zolty"><ul><?php echo '<div style="font-size:11px;">'.$_SESSION['prawid_uzyt'].'<a href="?mama=wylog">(wyloguj)</a>'.'</div>'; ?>
  17. <li><a href="?action=a">Sprzedaj</a></li>
  18. <li><a href="?action=a">Moje lupo</a></li>
  19. <li><a href="?action=a"><div class="koszyk"></div></a></li>
  20. </ul></div>
  21. <?php }else{echo '<div class="zolty">
  22. <ul>
  23. <li><a href="?action=form_rej">Zarejestruj</a></li>
  24. <li><a href="?action=form_log">Zaloguj</a></li>
  25. </ul>
  26. </div>';} ?>
  27.  
  28.  
  29. </div>
com
wklej jeszcze raz cały a nie wyżarty w połowie wink.gif
w0jt3k
mam sesyjke smile.gif na samym początku pliku index.php
  1. <?php session_start();?>
com
To jest cały kod? bo nie wydaje mi się chyba że odwołujesz się do $_SESSION go nie tworząc wink.gif
w0jt3k
  1. <?php session_start();?>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  4. <head>
  5. <title>Lupo24</title>
  6. <link rel="stylesheet" href="style.css" type="text/css" />
  7. <link rel="stylesheet" href="media_style_cs3.css" type="text/css" />
  8. <link rel="stylesheet" href="" type="text/css" />
  9. <script type="text/javascript"></script>
  10. </head>
  11. <body>
  12.  
  13. <div class="gorny_szary_pas">
  14.  
  15. <div class="sbox">
  16. <a href="index.php"><div class="logo"></div></a>
  17. <input type="text" name="wyszukiwarka" value="Szukaj" maxlength="255"/>
  18. <input type="submit" name="wyszukaj" value="to dream"/><!--Lupnij to-->
  19. </div>
  20.  
  21. <?php if(isset($_GET['mama'])){if($_GET['mama']!=null) { require $_GET['mama'] . ".php"; }}
  22.  
  23. $nazwa_uz_l = $_POST['nazwa_uz_l'];
  24. $haslo_l = $_POST['haslo_l'];
  25.  
  26. function loguj($nazwa_uz_l, $haslo_l){
  27. require('funkcje_bazy.php');
  28.  
  29. $lacz = lacz_bd();
  30.  
  31. $wynik = $lacz->query("select * from uzytkownicy where email='". $nazwa_uz_l ."' and haslo = '". $haslo_l ."' ");
  32.  
  33. zabzpeiczenia
  34.  
  35. if (!$wynik) {
  36. throw new Exception('Logowanie sie nie powiodlo.');
  37. }
  38.  
  39. if ($wynik->num_rows>0) {
  40. return true;
  41. }else{
  42. throw new Exception('Logowanie sie nie powiodlo.');
  43. }
  44. }
  45.  
  46. if (isset($nazwa_uz_l) && isset($haslo_l)) {
  47. try {
  48. loguj($nazwa_uz_l, $haslo_l);
  49. $_SESSION['prawid_uzyt'] = $nazwa_uz_l;
  50.  
  51.  
  52.  
  53. }
  54. catch (Exception $e) {
  55. echo 'Aby ogladac te strony trzeba byc zalogowanym.';
  56. echo '<a href="index.php">Powrot</a>';
  57. }
  58. }
  59. if(isset($_SESSION['prawid_uzyt'])){?>
  60. <div class="zolty"><ul><?php echo '<div style="font-size:11px;">'.$_SESSION['prawid_uzyt'].'<a href="?mama=wylog">(wyloguj)</a>'.'</div>'; ?>
  61. <li><a href="?action=a">aaaa</a></li>
  62. <li><a href="?action=a">ddddddlupo</a></li>
  63. <li><a href="?action=a"><div class="koszyk"></div></a></li>
  64. </ul></div>
  65. <?php }else{echo '<div class="zolty">
  66. <ul>
  67. <li><a href="?action=form_rej">Zarejestruj</a></li>
  68. <li><a href="?action=form_log">Zaloguj</a></li>
  69. </ul>
  70. </div>';} ?>
  71.  
  72.  
  73.  
  74.  
  75. html
  76.  
  77.  
  78. <?php
  79.  
  80. if(isset($_GET['action'])){if($_GET['action']!=null) { require $_GET['action'] . ".php"; }}
  81.  
  82. ?>
  83.  
  84.  
  85.  
  86.  
  87. </body>
  88. </html>
com
  1. var_dump($_SESSION['prawid_uzyt']);

prawdę CI powie wink.gif
w0jt3k
próbowałem 100 razy stu miejscach. nic nie zwraca.

NULL

Tylko po zalogowaniu zwraca natomiast true ;/

  1. string(9) "lol@o2.pl" string(9) "lol@o2.pl"


Po session start jak ja dam to jest ten null ;/

dobra, chlopaki, dzieki chociaz za checi.
MateuszS
Analizując ten programistyczny majstersztyk wychodzi na to że po przekierowaniu na action=a zanika sesja. Tu bym szukał. Pokaż ten plik a.php
com
MateuszS ameryki nie odkryłeś to powiedział sam autor wink.gif

spróbuj
  1. $_SESSION['prawid_uzyt'] = $nazwa_uz_l;
wrzucić do function loguj($nazwa_uz_l, $haslo_l) wink.gif
w0jt3k
No przeciez caly czas o tym mowie haha.gif. Wybacz moją śmiechawkę, taki już śmiechowy jestem.
Proszę tu nic nie ma haha.gif
a.php
  1. <?php //session_start();
  2. //nie dziala ani z sessia ani bez, a w ogole to z sessia to juz bym ob musialo byc, a jak daje z sesja to nawet z ob nie dziala, jak dam w index ob_start(); i ob_end_flush)_; na koncu. NATOMIAST przypmne: dziala w apache na localhost.
  3.  
  4. echo $_SESSION['prawid_uzyt'];
  5.  
  6.  
  7.  
  8. ?>
com
a ja poproszę zawartość form_log wink.gif
w0jt3k
"a ja poprosze zaw. form_log"
Po co haha.gif Już mi pomogłeś, zaraz dam pomógł, tylko jeszcze dopracuje coś z wami. Jeśli mogę, oczywiście. Sekunda, zaraz Ci powiem kiedy możesz się lognąć na lupo24 biggrin.gif

//edit FUCK, A jednak nie działa...
Bo wrzuciłęm to
$_SESSION['prawid_uzyt'] = $nazwa_uz_l;
tam, gdzie kazałeś i na localhost było ok, a na zenboxie już lipa. Teraz jest zrombanie totalnie.

Proszę:
formularz
  1. <?php //session_start();
  2. if(!isset($_SESSION['prawid_uzyt'])){
  3. //$_SESSION['prawid_uzyt'] = $nazwa_uz_l; ?>
  4. <div class="okno_logowania">
  5.  
  6. <p style="font-size:17px;color:#000;margin-left:15px;margin-top:15px;">Logowanie</p>
  7.  
  8. <form method="post" style="margin-top:-18px;" name="formularz_logowania">
  9. <input type="text" name="nazwa_uz_l" value="lol@o2.pl" maxlength="100"/>
  10. <input type="text" name="haslo_l" value="lol123" maxlength="16"/>
  11. <!--style="width:398px;height:34px;border: 1px solid #ccc;font-size:16px;color:#ccc;margin-top:11px;margin-left:15px;"
  12. onblur="this.value=!this.value?'Twoje hasło':this.value;this.style='width:398px;height:34px;border: 1px solid #ccc;font-size:16px;color:#ccc;margin-top:11px;margin-left:15px;'"
  13. onfocus="this.type='password';this.style='width:398px;height:34px;border: 1px solid #ccc;font-size:16px;color: #ccc;margin-top:11px;margin-left:15px;'"
  14. onclick="if (this.value=='Twoje hasło'){this.type='password';this.value=''; this.focus(); this.style='width:398px;height:34px;border: 1px solid #ccc;font-size:16px;color:#000;margin-top:11px;margin-left:15px;'} "
  15. onmousemove="this.style='width:398px;height:34px;border: 1px solid #B9B9B9;font-size:16px;color:grey;margin-top:11px;margin-left:15px;' "
  16. onmouseout="this.style='width:398px;height:34px;border: 1px solid #ccc;font-size:16px;color:#ccc;margin-top:11px;margin-left:15px;' " -->
  17. <input type="submit" name="zaloguj" value="Zaloguj" />
  18. </form>
  19. <a href="index.php">Strona główna</a>
  20. </div>
  21. <?php
  22. }
  23. else
  24. {
  25. //header("Location: index.php");
  26. //die("Redirecting to: index.php");
  27. }
  28. ?>
com
no to czekam na pomógł rolleyes.gif nie wiedziałem bo nie napisałeś że działa biggrin.gif ok

po pierwsze
  1. <?php
  2.  
  3. //whatever


bo jak mnie masz tego to Ci ja gubi pomiędzy przekierowaniem wink.gif
w0jt3k
Ale jak mam coś zaznaczone w ten sposób: "//" to znaczy, że już próbowałem z tym i nie działało smile.gif bo te ukośniki to commenty haha.gif

//edit zebym tylko warna nie mial za nabijanie postów haha.gif
ale jakoś ktoś musi mi pomóc smile.gif

BTW. mi sie wydaje , że to wszystko jest ok, tylko, że to wszystko jest również nie zgodne z w3c. Tyle. Ale liczę na pomoc, ew.. wyjaśnienia. BTW. nie działą z sessią z form_log.

robię reupload plików na server. Zaraz zoabcyzmy, czy działczy smile.gif
com
naprawdę uważasz, że // nie wiem co oznacza? biggrin.gif zmieniłeś passy bo wyrzuca exeption ;>

w3c to akurat nie ma nic z tym wspólnego .. fakt zapomniałem ze dodajesz go do index wink.gif
w0jt3k
Dobra, można się logować. Nadal nie działa. Już nie wiem, co mam źle ;/

Ale anwet gdyby tak było to ob_start powinno pomóc a on sobie w gruchę leci.
com
podeślij mi paczkę z tymi plikami bo nabijemy milion postów biggrin.gif
w0jt3k
Rozumiem, ze nikt mi nie pomoże ; (
moze to wina braku ciasteczek?
com
po pierwsze kodowanie w plikach, ustawiasz utf8 zamiast utf8 bez bom, a cześć plików wgl w Ansi, ponadto włącz sobie raportowanie błędów, bo mnie na starcia wypluwa że wysyłasz nagłówek zanim wykonasz php, pozatym tworzysz deklaracje zmiennych których nie masz, sypło mi 4 notice wink.gif zaraz podsyłam poprawiono, ale ten kod jest strasznie nie poukładany i wgl nie zgodny z specyfikacja html wink.gif

(ciach) smile.gif
w0jt3k
Ale notice to tylko info, nie błędy. Dziękuję ślicznie za poprawkę smile.gif
com
owszem, ale notice się nie ignoruje wink.gif
w0jt3k
Hmm... widzę, że dodałeś przed blokiem try od funkcji loguj:
  1. $nazwa_uz_l = $_POST['nazwa_uz_l'];
  2. $haslo_l = $_POST['haslo_l'];
, co wcześniej było w ogóle przed funkcją, no i OB, i OBcleana przy wylog.php. Taki durny błąd biggrin.gif

Czyli tak:

Kodować w UTF8 bez BOM
I pozbywać się notice.

A mógłbyś jeszcze powiedzieć dlaczego jest kod niezgodny ze specyfikacją HTML? Przecież wszystko wypas. Znacnziki </php ?> Normalnie zamykane i zaczynam kod html, nie uzywając echo.

Pozdrawiam smile.gif
com
1> tak żeby się pozbyć notice, a bez sensu było pisać if (isset($_POST['nazwa_uz_l']) && isset($_POST['haslo_l'])) dwa razy tym bardziej że tam byś tylko w nim zawarł definicje tych zmiennych
2> tak bez bom bo na bom się php wysypuje wink.gif

  1. <div class="zolty"><ul> <?php echo '<div style="font-size:11px;">'.$_SESSION['prawid_uzyt'].'<a href="?mama=wylog">(wyloguj)</a>'.'</div>'; ?>
  2.  
  3. <li ><a href="?action=a">Sprzedaj</a></li>
  4. <li style="float:left;"><a href="?action=a">Moje lupo</a></li>
  5. <li><a href="?action=a"><div class="koszyk"></div></a></li>
  6. </ul></div>
  7.  

np tutaj nie możesz w znaczniku ul umieszczać sobie div bezpośrednio wink.gif
w0jt3k
Dzięki, stary! Nie wiedziałem co do tego kodowania wink.gif Tzn. jakąś wzmiankę kiedyś miałem na lekcjach, ale to się śliniłem, marząc o podbojach manuala smile.gif

Co do diva między ul: może i nie zgodne haha.gif Ale działa pod każdą przeglądarką, nawet pod IE 6 => sprawdziałem biggrin.gif
Chociaż znając życie będę miał przez to problemy z pozycjonowaniem, czyż nie? wink.gif

Jeszcze raz dziękuję! smile.gif <3

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.