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

Problem z wyswietlaniem komunikatu

Cloud VPS
0 głosów
355 wizyt
pytanie zadane 10 marca 2016 w PHP przez MlodyJavaS Użytkownik (500 p.)
<html>
<?php
    session_start();
?>
    <head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<link href="style/arkusz.css" rel="stylesheet" type="text/css">
<title>Prosty CMS - Logowanie</title>

</head>
<body>
<div class="center">

<div id="panel">
    <form action="index.php" method="post">
        <label for="username">Nazwa użytkownika:</label>
        <input type="text" id="username" name="login">
        <label for="password">Hasło:</label>
        <input type="password" id="password" name="haslo">
        <div id="lower">
        <input type="submit" value="Login" name="wyslij">
        </div>
    </form>
    <?php
        
        if(isset($_SESSION['blad']))
         echo $_SESSION['blad'];
        
    ?>
</div>

</div>
</body>
</html>

 

<?php
session_start();
    
    
    $login=$_POST['login'];
    $haslo=$_POST['haslo'];
    
    $fp = fopen("login.txt", "r");
    $login_plik = file_get_contents("login.txt");
    
    fclose($fp);
    
    $fp = fopen("haslo.txt", "r");
    $haslo_plik = file_get_contents("haslo.txt");
    
    fclose($fp);
    
    if(($login==$login_plik) || ($haslo==$haslo_plik))
        {   
            
            echo "Witaj <b>$login</b> !";
            unset($_SESSION['blad']);
        
        }
    else
    {  
            $_SESSION['blad']='<span style="color:red">'
            . 'Nieprawidlowy login lub haslo</span>';
             header('Location:loguj.php');
    }
    
?>
 

Prosze o pomoc w rozwiazaniu kwestii wyswietlania sie napisu o nieprawidolowym loginie i hasle. Chodzi mi o to ze, napis ten wyswietla sie przed kliknieciem przycisku wyslij. PS login i haslo to admin, 123 ( sa one zawarte w plikach .txt)

2 odpowiedzi

0 głosów
odpowiedź 10 marca 2016 przez Mateusz11 Pasjonat (22,910 p.)
edycja 10 marca 2016 przez Mateusz11
<html>
<?php
    session_start();
?>

session_start() daje się na samym początku strony, przed wszystkimi tagami php i html

  if(($login==$login_plik) || ($haslo==$haslo_plik))
        {   
             
            echo "Witaj <b>$login</b> !";
            unset($_SESSION['blad']);
         
        }

Sprawdzasz czy login lub hasło są poprawne!? Żeby się zalogować potrzeba wiedzieć czy i login i hasło są prawidłowe (Zamiast || użyj &&)

   $_SESSION['blad']='<span style="color:red">'

brak średnika

            . 'Nieprawidlowy login lub haslo</span>';

Po co tu kropka?

Ja bym jeszcze dał sprawdzenie czy login i hasło nie są puste i czy przyszły postem ;)

Jak robisz operacje na plikach, to tak samo mógłbyś zdefiniować login i hasło w pliku php

Ogólnie mało skuteczne :(

Polecam skorzystać z bazy danych :)

PS.

   $fp = fopen("login.txt", "r");
    $login_plik = file_get_contents("login.txt");

Po co ta operacja na górze?

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">       //Wytłumacz mi tą linijke

Wytłumacz mi tą linijke

EDIT: 

<title>Prosty CMS - Logowanie</title>

Jak za 10 lat tak będą wyglądały CMS`y...

Pozdrawiam

1
komentarz 10 marca 2016 przez efiku Szeryf (75,160 p.)

Dajesz operatora kropki jezeli w stringu chcesz miec zmienna:
echo 'Witaj <b>'.$login.'</b> !';

Dlaczego?

komentarz 10 marca 2016 przez Mateusz11 Pasjonat (22,910 p.)
Ojjj... Pewnie dlatego się pomyliłem, że od dawna mało programuje w PHP, ale podstawy znam ;) Mały błąd z mojej strony :(

 

Pozdrawiam
komentarz 10 marca 2016 przez efiku Szeryf (75,160 p.)
Może już stosować:  echo "Lorem ipsum {$login} blablabla";  Rozdzielać można, ale traci się mocno na czytelności.

https://php-kurs.gitbooks.io/phpkurs/content/czesc-i/Zmienne/Typy%20zmiennych/String.html
komentarz 10 marca 2016 przez Mateusz11 Pasjonat (22,910 p.)
Pewnie dlatego zawsze stosowałem kropki (głównie skorzystałem na czytelności ;)

 

Pozdrawiam
0 głosów
odpowiedź 10 marca 2016 przez CzlowiekSkrypt Nałogowiec (26,340 p.)
Zmienne sesyjne istnieją przez określony czas (zależy jaki masz ustawiony w confingu) albo do momentu zamknięcia przeglądarki. Jeśli utworzysz zmienną sesyjną $_SESSION['blad'] to sprawdzenie tego potem issetem będzie zwracać tą zmienną gdyż ona cały czas istnieje dopóki sama się nie wyczyści bądz sami jej nie usuniemy.

Podobne pytania

0 głosów
1 odpowiedź 124 wizyt
pytanie zadane 4 grudnia 2024 w C i C++ przez adam234345 Początkujący (400 p.)
0 głosów
0 odpowiedzi 96 wizyt
pytanie zadane 1 grudnia 2019 w Offtop przez msTps Nowicjusz (210 p.)
0 głosów
1 odpowiedź 220 wizyt
pytanie zadane 14 czerwca 2018 w JavaScript przez besthost Nowicjusz (200 p.)

93,457 zapytań

142,452 odpowiedzi

322,722 komentarzy

62,837 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

Kursy INF.02 i INF.03
...