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

Pomoc z systemem logowania

Object Storage Arubacloud
0 głosów
282 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 627 wizyt
pytanie zadane 8 kwietnia 2017 w PHP przez marcin99b Szeryf (82,040 p.)
0 głosów
1 odpowiedź 265 wizyt
pytanie zadane 11 listopada 2022 w PHP przez mrc Nowicjusz (200 p.)
0 głosów
1 odpowiedź 230 wizyt
pytanie zadane 20 października 2022 w PHP przez Olafisz Nowicjusz (230 p.)

92,550 zapytań

141,394 odpowiedzi

319,522 komentarzy

61,935 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...