Problem z sesjami i nadpisywaniem rekordów

Odpowiedz Nowy wątek
2007-10-20 23:20
deees_bez_logowania
0

Witam mam pewien problem z którym nie umiem sobie poradzić
1.Mam rejestracje na stronie i użytkownik który tylko wywoła skrypt poprzez http:///cos tam.pl/xxx/to jest to.php
automatycznie dodaje pusty rekord i tak jest za kazdym razem .Mam nadzieje ze znacie rozwiązanie jak to zabezpieczyć
2.Co robie zle ze sesje mi nie działają ?
o to kawałek kodu z którym na problem

<?php
$zapytanie="SELECT * FROM `user` WHERE `login`='".$this->login."' AND `haslo`='".$this->haslo."'";
     $query=mysql_query($zapytanie)or die (QUERY_ERROR);
     $num_rows=mysql_num_rows($query);
     $ob=mysql_fetch_object($query);
     if($this->haslo!=$ob->haslo){
    echo "Hasło jest błędne";
     }
     if ($num_rows >0)
     {
         $this->zalogowany();
     }

         else {
             echo "logowanie nie udało się ";
         }
?>
<?php
function zalogowany()
     {
         //czy tutaj dać isset i sprawdzanie sesji ?
         $_SESSION['login'] = 'true';
           echo "Ok";
         }
?>

Dodam ze session_start(); jest na samym początku

<?php
ob_start();
session_start();
header("Content-type: text/html; charset=utf-8");
// reszta skryptu
?>

Z góry dziękuje za pomoc :wstydnis:

Dodam ze normalnie jak wywołam skrypt w którym ma byc sesja to bez logowania pokazuje mi sie to co powinno po zalogowaniu
Normalnie to bym zrobił to tak

<?php

session_start();

if( $_POST['login'] == 'x' && $_POST['pass'] == 'x')
  $_SESSION['login'] = 'True'; //zapisujemy do zmiennej sesyjnej, że "login" = True. ;]
  echo "Ok";
  echo '<a href="index.php">Przejdź do index.php</a>';
} 

?>
<?php

session_start();

if( $_SESSION['login'] == 'True' ) //sprawdzamy czy jesteś zalogowany
{
  echo 'Ok - zalogowany';
}
else
{
  echo 'Niezalogowany ';
}

?>

Ale przy tym skrypcie co pisze teraz to jakoś nie mogę tego wykombinować

Pozostało 580 znaków

2007-11-17 14:37
0

Zamiast

if( $_SESSION['login'] == 'True' ) 

Wystarczy że zrobisz if( $_SESSION['login'])


 Ale to tak na magrinesie  :-P

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 0, botów: 1

Robot: CCBot