Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jeszcze sesje, Dziwne zachowanie strony logowania
sada
post
Post #1





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


Witam!

mam problem:

strona logowania wywołana przez ścieżkę dostępu http://....... działa super bez zarzutu, a po rewrite wywala błędy jak niżej:

Warning: session_start() [function.session-start]: open(/tmp/sess_7dc51faa29feb866d2f9bf60ea1902b7, O_RDWR) failed: No such file or directory (2) in /logowanie.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /logowanie.php:2) in /logowanie.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /logowanie.php:2) in /logowanie.php on line 2

początek strony logowania wygląda tak:


Kod
<?php require_once('connections/aaa.php');if (!isset($_SESSION)){session_start();}
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Może więcej kodu? Daj go w znaczniki php. Daj też .htaccess w takim razie.
Go to the top of the page
+Quote Post
sada
post
Post #3





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


Kod
<?php require_once('connections/aaa.php');if (!isset($_SESSION)){session_start();}
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['nick'])) {
  $loginUsername=$_POST['nick'];
  $password=$_POST['haslo'];
  $MM_fldUserAuthorization = "status";
  $MM_redirectLoginSuccess = "index.php";
  $MM_redirectLoginFailed = "logowanienieudane.php";
  $MM_redirecttoReferrer = true;
  mysql_select_db($database_aaa, $aaa);
      
  $LoginRS__query=sprintf("SELECT nick, haslo, status FROM nazwabazy WHERE nick='%s' AND haslo='%s'",
  get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));
  
  $LoginRS = mysql_query($LoginRS__query, $aaa) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
    
    $loginStrGroup  = mysql_result($LoginRS,0,'status');
    
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;          

    if (isset($_SESSION['PrevUrl']) && true) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];    
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>


z htaccessa tylko to jako tako dotyczy problemu:

RewriteCond %{HTTP_HOST} ^www.nazwastrony.pl
RewriteRule ^(.*) http://nazwastrony.pl/$1 [R=301,L]
RewriteRule ^logowanie logowanie.php [L]
Go to the top of the page
+Quote Post
marcio
post
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Kod
<?php require_once('connections/aaa.php');if (!isset($_SESSION)){session_start();}

Ty chyba kpisz albo dajesz session_start() na sam poczatek odrazu pod <?php i potem plik zapisujesz bez BOM w notepad++ masz taka opcje albo dajesz na poczatek i przez session_start() dajesz ob_start().

A dwa to chyba logiczne ze sesji nie ma skoro session_start() masz po warunku wiec zrob tak jak ci napisalem i bedzie hulac (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
sada
post
Post #5





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


Zrobiłem tak:


Kod
<?php
ob_start();
?>
<?php require_once('connections/aaa.php');
session_start();
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['nick'])) {
  $loginUsername=$_POST['nick'];
  $password=$_POST['haslo'];
  $MM_fldUserAuthorization = "status";
  $MM_redirectLoginSuccess = "index.php";
  $MM_redirectLoginFailed = "logowanienieudane.php";
  $MM_redirecttoReferrer = true;
  mysql_select_db($database_aaa, $aaa);
      
  $LoginRS__query=sprintf("SELECT nick, haslo, status FROM karaoke_users5 WHERE nick='%s' AND haslo='%s'",
  get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));
  
  $LoginRS = mysql_query($LoginRS__query, $aaa) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
    
    $loginStrGroup  = mysql_result($LoginRS,0,'status');
    
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;          

    if (isset($_SESSION['PrevUrl']) && true) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];    
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>


już loguje chociaż jest jeszcze ostrzeżenie:
Wprawdzie można wyłączyć raportowanie błędów , ale może coś jeszcze nie tak?


Warning: session_start() [function.session-start]: open(/tmp/sess_63df652c1ad354e47adf3c3c36c7937a, O_RDWR) failed: No such file or directory (2) in /logowanie.php on line 5
Go to the top of the page
+Quote Post
Fifi209
post
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(sada @ 9.06.2009, 16:19:43 ) *
już loguje chociaż jest jeszcze ostrzeżenie:
Wprawdzie można wyłączyć raportowanie błędów , ale może coś jeszcze nie tak?


Warning: session_start() [function.session-start]: open(/tmp/sess_63df652c1ad354e47adf3c3c36c7937a, O_RDWR) failed: No such file or directory (2) in /logowanie.php on line 5



A czytać potrafisz ? Nie ma takiego pliku/lokalizacji.

@edit
Tak mi się w oczy rzuciło, dodaj na końcu(skryptu) ob_end_flush" title="Zobacz w manualu PHP" target="_manual

Ten post edytował fifi209 9.06.2009, 15:28:33
Go to the top of the page
+Quote Post
sada
post
Post #7





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


no i najważniejsze dlaczego
-wywołując stronę bezpośrednio np Dreamveawerem brak błędów,
-przechodzęc na stronę z innej strony z rewritem są błędy
-przechodząc na stronę z innej strony ale adresując bezwzględnie http://home.pl/../..././.....;/logowanie.php nie ma błędów?

ob_end_flush();

jest po html-u nie podawałem go


to , że nie ma pliku widzę ale jakiego i dlaczego raz jest a raz nie ma?
Go to the top of the page
+Quote Post
Fifi209
post
Post #8





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Jak dla mnie to ten plik to dane sesji - jeżeli nie jest utworzona to nie istnieje.
Go to the top of the page
+Quote Post
sada
post
Post #9





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


błąd jest w lini 5 a tam jest tylko session_start().
Brak jakiegoś pliku lub katalogu ale jakiego?

prawdopodobnie ścieżka dostępu do plików sesji jest niewidoczna , może trzeba ją jakoś określić w ht_accessie?

NIe wiem ,na razie burza w mózgu, a liczę na burzę mózgów.
Go to the top of the page
+Quote Post
marcio
post
Post #10





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


  1. <?php
  2. require_once('connections/aaa.php');
  3. $loginFormAction = $_SERVER['PHP_SELF'];
  4. if (isset($_GET['accesscheck'])) {
  5.  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
  6. }
  7.  
  8. if (isset($_POST['nick'])) {
  9.  $loginUsername=$_POST['nick'];
  10.  $password=$_POST['haslo'];
  11.  $MM_fldUserAuthorization = "status";
  12.  $MM_redirectLoginSuccess = "index.php";
  13.  $MM_redirectLoginFailed = "logowanienieudane.php";
  14.  $MM_redirecttoReferrer = true;
  15.  mysql_select_db($database_aaa, $aaa);
  16.      
  17.  $LoginRS__query=sprintf("SELECT nick, haslo, status FROM karaoke_users5 WHERE nick='%s' AND haslo='%s'",
  18.  get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password :   addslashes($password));
  19.  
  20.  $LoginRS = mysql_query($LoginRS__query, $aaa) or die(mysql_error());
  21.  $loginFoundUser = mysql_num_rows($LoginRS);
  22.  if ($loginFoundUser) {
  23.    
  24.    $loginStrGroup  = mysql_result($LoginRS,0,'status');
  25.    
  26.    //declare two session variables and assign them
  27.    $_SESSION['MM_Username'] = $loginUsername;
  28.    $_SESSION['MM_UserGroup'] = $loginStrGroup;          
  29.  
  30.    if (isset($_SESSION['PrevUrl']) && true) {
  31.      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];    
  32.    }
  33.    header("Location: " . $MM_redirectLoginSuccess );
  34.  }
  35.  else {
  36.    header("Location: ". $MM_redirectLoginFailed );
  37.  }
  38. }
  39. ?>

Zapisz bez BOM'a u musi dzialac.

Kodu nie sprawdzalem i mozliwe ze blad jest gdzies indziej ale czasu zbytnio nie mam.

Ten post edytował marcio 9.06.2009, 16:42:00
Go to the top of the page
+Quote Post
sada
post
Post #11





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


niestety zapisałem bez BOM i jest jak było
Go to the top of the page
+Quote Post
marcio
post
Post #12





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


A czy twoj katalog /tmp/ ma prawa zapisu i odczytu czyli 766/777??
Go to the top of the page
+Quote Post
sada
post
Post #13





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


Jeśli chodzi ci o katalog na serwerze to nie mam do niego dostępu.
Ale chyba ma 777 bo bez rewrite działa , i teraz po zmianie też działa czyli strona loguje , ale nie podoba mi się to ostrzeżenie.
Go to the top of the page
+Quote Post
marcio
post
Post #14





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


to skoro dziala to zamiast se zastanwiac czemu jest error kodz dalej i zrob 2 rzeczy by nie bylo error'u:
ob_start() moze jednak jest cos z wysylaniem sesji jesli nie pomoze to:
error_reporting(0)

I tyle nie zawsze warto tracic 2 dni na usuniecie jednego error'a skoro wszystko dzialal jak powinno.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.12.2025 - 04:45