1

Temat: problem ze skryptem logowania

Napisałem skrypt do logowania:

<?php
session_start();

if (isset($_POST['login']) && isset($_POST['haslo'])){
    
    $login = $_POST['login'];
    $haslo = $_POST['haslo'];
    
    $db_user = 'root';
    $db_host = 'localhost';
    $db_password = '';
    $db_name = 'test';

$polacz_z_db = new mysqli($db_host,$db_user,$db_password,$db_name);

if (mysqli_connect_error()){
    echo 'Polaczenie z baza niepowiodlo sie: '.mysqli_connect_error();
    exit();
}

    
    $wybor_usera = 'SELECT * FROM users '." WHERE 'imie' = '$login'"." and 'haslo' = shal('$haslo')"; 

    $wynik = $polacz_z_db -> query($wybor_usera);
    if($wynik -> num_rows > 0){
        $_SESSION['prawid_uzyt'] = $login;
    } 
    $polacz_z_db -> close();
    }
?>
<html>
<head>
<title>Logowanie</title>
</head>
<body>
<?php 
if (isset($_SESSION['prawid_uzyt'])){
    echo 'Użytkownik zalogowany jako '.$_SESSION['prawid_uzyt'].'<br />';
    echo '<a href = "wyloguj.php">Wyloguj</a><br />';
}
else {
    if (isset($login)){
        echo 'Zalogowanie niemozliwe '.$login;
    
    }
    else {
        echo 'Uzytkownik niezalogowany';
    }
    echo '<form action = "logowanie.php" method = "POST">';
    echo '<input type = "text" name = "login" value = "Podaj Login">';
    echo '<input type = "password" name = "haslo" value = "password">';
    echo '<input type = "submit" value = "OK">';
    echo '<input type = "reset" value = "Anuluj">';
}
?>
</body>
</html>

ale gdzieś chyba wkradł się błąd ponieważ przy próbie zalogowania wywala mi komunikat że zalogowanie jest niemożliwe.
Może macie jakiś pomysł co jest tego przyczyną?

Thumbs up Thumbs down

2

Odp: problem ze skryptem logowania

Już odnalazłem błąd, dodaje działający skrypt logowania, może komuś się przyda:

plik logownie.php

<?php
session_start();

if (isset($_POST['login']) && isset($_POST['haslo'])){
    
    $login = $_POST['login'];
    $haslo = $_POST['haslo'];
    
    $db_user = 'root';
    $db_host = 'localhost';
    $db_password = '';
    $db_name = 'test';

$polacz_z_db = new mysqli($db_host,$db_user,$db_password,$db_name);

if (mysqli_connect_error()){
    echo 'Polaczenie z baza niepowiodlo sie: '.mysqli_connect_error();
    exit();
}

    
    $wybor_usera = "SELECT * FROM users WHERE imie = '$login' and haslo='$haslo'"; 

    $wynik = $polacz_z_db -> query($wybor_usera);
    if($wynik -> num_rows > 0){
        $_SESSION['prawid_uzyt'] = $login;
    } 
    $polacz_z_db -> close();
    }
?>
<html>
<head>
<title>Logowanie</title>
</head>
<body>
<?php 
if (isset($_SESSION['prawid_uzyt'])){
    echo 'U�ytkownik zalogowany jako '.$_SESSION['prawid_uzyt'].'<br />';
    echo '<a href = "wyloguj.php">Wyloguj</a><br />';
}
else {
    if (isset($login)){
        echo 'Zalogowanie niemozliwe '.$login;
    
    }
    else {
        echo 'Uzytkownik niezalogowany';
    }
    echo '<form action = "logowanie.php" method = "POST">';
    echo '<input type = "text" name = "login" value = "Podaj Login">';
    echo '<input type = "password" name = "haslo" value = "password">';
    echo '<input type = "submit" value = "OK">';
    echo '<input type = "reset" value = "Anuluj">';
}
?>
</body>
</html>

oraz plik wyloguj.php

<?php
session_start();

$stary_user = $_SESSION['prawid_uzyt'];

unset($_SESSION['prawid_uzyt']);
$wynik_niszcz = session_destroy();

if (!empty ($stary_user)){
    if ($wynik_niszcz){
        echo 'Wylogowano <br />';
        echo 'Aby zalogować sie powtórnie przejdz do trony <a href = "logowanie.php">logowania</a>';
    }
    else {
        echo 'Wylogowanie nie mozliwe';
    }
}

?>

jak napisze to wrzucę tu jeszcze skrypt odpowiedzialny za rejestracje userów.

Thumbs up Thumbs down

3

Odp: problem ze skryptem logowania

A oto skrypt odpowiedzialny za rejestracje.

register.php

<?php
session_start();

$db_user = 'root';
$db_host = 'localhost';
$db_password = '';
$db_name = 'test';

$polacz_z_db = new mysqli($db_host,$db_user,$db_password,$db_name);

if (mysqli_connect_errno())
{
   echo 'Polaczenie z baza niepowiodlo sie: '.mysqli_connect_error();
   exit();
}


$imie = trim($_POST['imie']);
$pass = sha1(md5(trim($_POST['haslo'])));
$pass2 = sha1(md5(trim($_POST['haslo2'])));

if ($imie and $pass and $pass2)
{
   if ($pass != $pass2)
   {
       echo 'Podane hasla sie nie zgadzaja';
   }

   $user = "SELECT * FROM users WHERE imie = '$imie'";
   $wynik = $polacz_z_db -> query($user);

   if($wynik -> num_rows > 0)
   {
$_SESSION['prawid_uzy'] = $imie;

   if ($wynik)
   {
       echo 'Taki user juz istnieje';
   }
}

else
{
   $zapis_do_db = "INSERT INTO users (imie, haslo) VALUES ('$imie', '$pass')";
   $polacz_z_db -> query($zapis_do_db);
   echo mysql_error();
   echo 'Zapis Dodany';
}
$polacz_z_db -> close();
}



?>
<html>
   <body>
       <form action ="register.php" method ="POST">
           <input type="text" name="imie">
           <input type="password" name="haslo">
           <input type="password" name="haslo2">
           <input type="submit" value="OK">
           <input type="reset" value="Anuluj">
       </form>
   </body>
</html>

Thumbs up Thumbs down