• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pomoc z systemem logowania

VPS Starter Arubacloud
0 głosów
375 wizyt
pytanie zadane 16 kwietnia 2018 w PHP przez Vinchit Obywatel (1,040 p.)

Cześć, z góry mówię że dopiero co zaczynam z PHP i ogólnie z programowaniem :)

Mam problem z systemem logowania nie wiem co robię źle (za pewne problem banalny ale go nie widzę z zmęczenia) zrobiłem tak jak na obcinku u pana Mirosława :) lecz od razu go modyfikowałem na swoje potrzeby, w skrócie nie wiem gdzie zrobiłem błąd... czy możecie mi go pokazać co źle zrobiłem co bym mógł nie co lepiej zrobić? :)

index.php (to jest mój główny plik z zawartością strony po zalogowaniu właśnie tu ma przenieść użytkownika)

<?php

session_start();

if (!isset($_SESSION['zalogowany']))
{
    header('Location: login.php');
    exit();
}

?>

<?php include('server.php');

    if (isset($_GET['edit'])) {
      $id = $_GET['edit'];
      $edit_state = true;
      $view_state = true;
      $rec = mysqli_query($db, "SELECT * FROM info WHERE id=$id");
      $record = mysqli_fetch_array($rec);
      $name = $record['name'];
      $plec = $record['plec'];
      $poszukiwany = $record['poszukiwany'];
      $karany = $record['karany'];
      $opis = $record['opis'];
      $policjant = $record['policjant'];
      $data = $record['data'];
      $id = $record['id'];
    }

?>
<!DOCTYPE html>
<html lang="pl">
  <head>
    <meta charset="utf-8">
    <title>Baza Danych Los Santos</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <meta name="author" content="Vinchit">
      <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
      <link href="assets/css/bootstrap.css" rel="stylesheet" />
      <!-- FONT AWESOME STYLE  -->
      <link href="assets/css/font-awesome.css" rel="stylesheet" />
      <!-- CUSTOM STYLE  -->
      <link href="assets/css/style.css" rel="stylesheet" /> 
      <!-- GOOGLE FONT -->
      <link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css' />
  </head>
  <body>
   <header class="logo">
       <h1 front-size="20"><img src="police.png" width="200" height="140">Los Santos Police Department</h1> 
   </header>
   <div id="pasek" class="przycisk">
       <input type="button" value="Taryfikator" onclick="location.href='taryfikator.html';" />
       <input type="button" value="Dadaj Obywatela" onclick="location.href='dodawanie.php';" />
   </div>
    
    <?php if (isset($_SESSION['msg'])): ?>
    <div class="msg">
        <?php
        echo $_SESSION['msg'];
        unset($_SESSION['msg']);
        ?>
    </div>
    <?php endif; ?>

    <table>
        <thead>
          <tr>
            <th>Imię i Nazwisko</th>
            <th>Plec</th>
            <th>Poszukiwany</th>
            <th>Policjant</th>
            <th>Data</th>
            <th colspan="3">Więcej/Edytuj/Usuń</th>
          </tr>
        </thead>
        <tbody>
          <?php while ($row = mysqli_fetch_array($results)) { ?>
              <tr>
                  <td><?php echo $row['name'] ?></td>
                  <td><?php echo $row['plec'] ?></td>
                  <td><?php echo $row['poszukiwany'] ?></td>
                  <td><?php echo $row['policjant'] ?></td> 
                  <td><?php echo $row['data'] ?></td>
                  <td>
                      <a class="view_btn" href="view.php?view=<?php echo $row['id']; ?>">Więcej</a>
                  </td>           
                  <td>
                    <a class="edit_btn" href="dodawanie.php?edit=<?php echo $row['id']; ?>">Edytuj</a>
                  </td>
                  <td>
                    <a class="del_btn" href="server.php?del=<?php echo $row['id']; ?>">Usuń</a>
                  </td>
              </tr>
          <?php } ?>
        </tbody>
    </table>
    <div>    
        <script src="assets/js/jquery-1.10.2.js"></script> <script src="assets/js/bootstrap.js"></script> <script src="assets/js/dataTables/jquery.dataTables.js"></script> <script src="assets/js/dataTables/dataTables.bootstrap.js"></script> <script src="assets/js/custom.js"></script> 
    </div>
  </body>
</html>

login.php

<?php

session_start();

if ((isset($_SESSION['zalogowany'])) && ($_SESSION['zalogowany']==true))
{
    header('Location: index.php');
    exit();
}

?>
<!DOCTYPE html>
<html>
<head>
    <title>Police</title>
    <link rel="stylesheet" type="text/css" href="logowanie.css">
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
    <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
    <script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
</head>
<body>
    <div id="fullscreen_bg" class="fullscreen_bg"/>
    <div class="container">
        <form class="form-signin">
            <h1 class="form-signin-heading text-muted"><img src="img/police.png"></h1>
            <input type="text" class="form-control" placeholder="Nick" name="login" required="" autofocus="">
            <input type="password" class="form-control" placeholder="Hasło" name="haslo" required="">    
            <input class="btn btn-lg btn-primary btn-block" type="button" value="Zaloguj się"/>
        </form>
        <?php
            if(isset($_SESSION['blad']))	echo $_SESSION['blad'];
        ?>
    </div>
</body>
</html>

connect.php

<?php

$host = "localhost";
$db_user = "root";
$db_password = "";
$db_name = "user";

?>

logout.php

<?php

session_start();

session_unset();

header('Location: login.php');

?>

zaloguj.php

<?php

session_start();

if ((!isset($_POST['login'])) || (!isset($_POST['haslo'])))
{
    header('Location: login.php');
    exit();
}

require_once "connect.php";

$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);

if ($polaczenie->connect_errno!=0)
{
    echo "Error: ".$polaczenie->connect_errno;
}
else
{
    $login = $_POST['login'];
    $haslo = $_POST['haslo'];

    $login = htmlentities($login, ENT_QUOTES, "UTF-8");

    if ($rezultat = $polaczenie->query(
        sprintf("SELECT * FROM uzytkownicy WHERE user='%s'",
                mysqli_real_escape_string($polaczenie,$login))))
    {
        $ilu_userow = $rezultat->num_rows;
        if($ilu_userow>0)
        {
            $wiersz = $rezultat->fetch_assoc();

            if (password_verify($haslo, $wiersz['pass']))
            {
                unset($_SESSION['blad']);
                $rezultat->free_result();
                header('Location: login.php');
            }
            else 
            {
                $_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub hasło!</span>';
                header('Location: login.php');
            }

        } else {

            $_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub hasło!</span>';
            header('Location: login.php');

        }

    }

    $polaczenie->close();
}

?>

Wrzucam wszystko co mam bo nie wiem gdzie leży problem.

Ps: Nie proszę o gotowca lecz o wskazanie błędu, poradę co bym mógł zrobić lepiej. Domyślnie strona ma nie posiadać systemu rejestrowania.

komentarz 16 kwietnia 2018 przez niezalogowany
ale co jest nie tak z tym kodem? jakieś szczegóły? jaki jest problem?
komentarz 16 kwietnia 2018 przez niezalogowany

@Vinchit, nie wsadzaj id do zmiennej get. Jak ktoś umie programować to odrazu dostanie dostęp do innych kont. 

komentarz 16 kwietnia 2018 przez Vinchit Obywatel (1,040 p.)

@ViruS, No nie działa logowanie :)

komentarz 17 kwietnia 2018 przez Assasz Nałogowiec (30,460 p.)

@Mieczkynski, nie jestem pewien, ale chyba właśnie chodzi o to, aby był dostęp do kont ;) ID jest identyfikatorem, który określa, jakiego usera załadować.

1 odpowiedź

0 głosów
odpowiedź 16 kwietnia 2018 przez niezalogowany
Musisz dodać parametr `action` do <form> z odpowiednim skryptem, który obsługuje logowanie. Czyli u ciebie skrypt odpowiedzialny za sprawdzanie danych to `zaloguj.php`

Aha i input powinien być typu [type="submit"] a nie [type="button"]

Podobne pytania

0 głosów
3 odpowiedzi 832 wizyt
pytanie zadane 8 kwietnia 2017 w PHP przez marcin99b Szeryf (82,960 p.)
0 głosów
1 odpowiedź 307 wizyt
pytanie zadane 11 listopada 2022 w PHP przez mrc Nowicjusz (200 p.)
0 głosów
1 odpowiedź 284 wizyt
pytanie zadane 20 października 2022 w PHP przez Olafisz Nowicjusz (230 p.)

93,012 zapytań

141,977 odpowiedzi

321,266 komentarzy

62,354 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...