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

Pomoc z systemem logowania

0 głosów
88 wizyt
pytanie zadane 16 kwietnia w PHP, Symfony, Zend 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 przez ViruS Mądrala (5,350 p.)
ale co jest nie tak z tym kodem? jakieś szczegóły? jaki jest problem?
komentarz 16 kwietnia przez Mieczkynski Początkujący (490 p.)

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

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

@ViruS, No nie działa logowanie :)

komentarz 17 kwietnia przez Assasz Nałogowiec (25,710 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 przez ViruS Mądrala (5,350 p.)
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 182 wizyt
pytanie zadane 8 kwietnia 2017 w PHP, Symfony, Zend przez marcin99b Nałogowiec (41,400 p.)
–1 głos
1 odpowiedź 52 wizyt
pytanie zadane 2 września 2016 w Systemy CMS przez Bartosz Kowalski Nowicjusz (150 p.)
0 głosów
1 odpowiedź 171 wizyt
pytanie zadane 6 września 2017 w PHP, Symfony, Zend przez Forester Użytkownik (560 p.)
Porady nie od parady
Możesz ukryć, zamknąć lub zmodyfikować swoje pytanie, za pomocą przycisków znajdujących się pod nim. Nie krępuj się poprawić pochopnie opublikowanego pytania czy zamknąć go po uzyskaniu satysfakcjonującej odpowiedzi. Umożliwi to zachowanie porządku na forum.Przyciski pytania

51,916 zapytań

94,688 odpowiedzi

193,022 komentarzy

25,307 pasjonatów

Przeglądających: 276
Pasjonatów: 20 Gości: 256

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...