Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: session _start nie działa ;/
Forum PHP.pl > Forum > PHP
Wieczny
Witam, mam problem z sesjami a mianowicie ogólnie nie zaczyna wogóle mi żadnej sesji posiadam server na nazwa.pl więc i może tam nie być ich ;< a to skrypt


  1. <?php 
  2. define('ON', true);
  3.  
  4. if($_SESSION['login']=='') {die("Hacking attept...");}
  5. if($_SESSION['ip']!=$_SERVER['REMOTE_ADDR']) {die("Hacking fffattept...");}
  6. $filelist = array(overview,budynki,logout);
  7.  
  8. if(!in_array($HTTP_GET_VARS[file],$filelist))
  9. {
  10. include("menu.php");
  11. include("overview.php");
  12. }
  13. else
  14. {
  15. include("menu.php");
  16. echo '<hr>';
  17. $file = $HTTP_GET_VARS[file].'.php';
  18. include("$file");
  19. }
  20. ?>
Łukasz O.
noszę okulary, ale jakoś żadnego session_start() tu nie widzę - to ma być dodane do każdej strony, na której chcesz się do zmiennych sesji odwoływać
Wieczny
sorrki wszystko zaczyna się w tym pliczku


  1. <?php
  2. if($HTTP_POST_VARS[action]=='1')
  3. {
  4. $login = strip_tags($HTTP_POST_VARS[login]);
  5. $password = strip_tags($HTTP_POST_VARS[password]);
  6.  
  7. $login = addslashes($login);
  8. $password = addslashes($password);
  9. $ok=1;
  10. if($login == '' && $password == '') {echo 'Chuj ci w dupe'; $ok=0;}
  11.  
  12. if($ok==1) {
  13.  
  14. $connect = mysql_connect("sql.wieczny.nazwa.pl","*****","*****");
  15. mysql_select_db("wieczny_4");
  16.  
  17. $query = "SELECT Imie, password FROM Gracze";
  18. $result = mysql_query($query);
  19.  
  20. if($result==0) {echo 'Nie prawidłowe hasło albo login'; $ok=0;}
  21.  
  22. if($ok==1) {
  23. for($i=0;$i<count($result);$i++)
  24. {
  25. $row = mysql_fetch_row($result);
  26.  }
  27. global $login;
  28. if ($login==$row[0] && $password==$row[1]) 
  29. {
  30. //TUTAJ JEST ALL OK
  31.  
  32. session_register('sessid');
  33.  
  34. $_SESSION['login'] = $login;
  35. $_SESSION['ip'] = $_SERVER[REMOTE_ADDR];
  36. $_SESSION['sessid'] = session_id();
  37.  
  38. echo "<script type='text/javascript'>document.location.href='".'user/index.php?file=overview'."'</script>n";
  39.  }
  40. else echo 'Nastompił nieoczekiwany błąd, staramy się go jak najszybciej naprawić // załoga';
  41. }
  42.  
  43.  
  44.  }
  45. }
  46. ?>
  47. <link rel="stylesheet" href="style.css" type="text/css">
  48. <body link="silver" vlink="silver" 
  49. alink="silver" text="white" bgcolor="black">
  50. <center>
  51. <a href="index.php">news</a>
  52. <a href="register.php">register</a>
  53. <a href="brama.php">brama</a>
  54. <a href="forum.php">forum</a>
  55. <a href="prawo.php">prawo</a>
  56. <a href="magiczny.php">magiczny</a>
  57. <a href="drogowskazy.php">Drogowskazy</a><br>
  58. <img src="images/linia.JPG">
  59. <table cellpadding="35" width="444" height="460">
  60. <tr>
  61.  <td valign="top" background="images/news.JPG"">
  62.  
  63.  
  64. <center>
  65. <form action="brama.php" method="POST">
  66. Imie<br>
  67. <input class="formularz_button" type="text" name="login" value="<?php echo $login;?>" /><br />
  68. Hasło<br>
  69. <input class="formularz_button" type="password" name="password" value="" /><br />
  70. <input class="formularz_button" type="submit" name="button" value="Login" />
  71. <input type="hidden" name="action" value="1" />
  72. </form>
  73. </center>
  74. </td>
  75. </tr>
  76. </table>
  77. <img src="images/stopka.JPG">
  78. </center>
  79. </body>
  80. </html>
misiek172
session_start(); nie powinno być na samym początku pliku??
luinnar
session_start dajemy na samym początku.

Poza tym strasznie mieszasz stare i nowe zmienne i funkcje obsługujące sesje. Nie stosuje się: $HTTP_POST_VARS, $HTTP_GET_VARS. Poczytaj dokładnie o sesjach w manualu. Masz tam podane przykłady poprawnego użycia mechanizmu sesji.
Heweliusz
Co do tych zmiennych to zauważyłem, że raz stosuje się $HTTP_POST_VARS a raz $_POST, więc korzystam z nich na przemian.
Jeśli chodzi o te sesie to ten sam kod działa na krasnalu i na yoyo.pl i nie wiem czy to wina kodu czy konfiguracji serwera biggrin.gif
bronchos
Nie "zauważaj" tylko przeczytaj dokładnie w manualu i bądź konsekwentny w działaniu:
- jak używasz $HTTP_POST_VARS, to używaj $HTTP_SESSION_VARS
- jak używasz $_POST, to używaj $_SESSION

A jak nie jesteś pewien, którego zapisu użyć, to napisz sobie funkcję:
  1. <?php
  2. function SV($var='') {
  3.  if (isset($_SESSION[$var])) return $_SESSION[$var];
  4.  elseif (isset($HTTP_SESSION_VARS[$var])) return $HTTP_SESSION_VARS[$var];
  5. }
  6. ?>

i wywołuj
  1. <?php
  2. $login = SV('login');
  3. ?>

Analogicznie do pozostałych typów...
luinnar
Nie stosuje się $HTTP_XXXXX_VARS kropka. Używamy tablic hiperglobalnych. Jestem pewny że nikt już nie jedzie na PHP w wersji 4.0.6

@bronchos: zupełnie bezsensowna funkcja
Turgon
$HTTP_xxx_VARS -> zostaną usunięte w najbliższym czasie z PHP.
Heweliusz
Dobrze, teraz już wiem winksmiley.jpg
Problem z tym kodemy (tytułowym) byl taki, że na serwerze nie jest włączone auto.start sessi i poprostu trzeba wszędzie dopisać session_start();
Przyzwyczajenie z krasnala mi zostało i potem wyłazi coś takiego...
misiek172
lepiej jednak zawsze manualnie startować sesje, dlatego że serwery internetowe typu home.pl nazwa.pl mają to wyłączone i potem są pytania na forum tego typu: U mnie działało, na serwerze juz nie, dlaczego? smile.gif
Heweliusz
Mam jeszcze pytanie, troche nie na temat, ale na nowy temat za mało
Jak wygląda zapytanie, które wyświetla ostani rekord ?
Chodzi o to zeby wybrać ostani rekord z pola id (rejestracja nowego usera)
Korzystam z powyższego kodu.
misiek172
zapytanie brzmiało by:

SELECT * FROM `tabelka` ORDER BY `id` DESC LIMIT 1
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.