Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [MySQL][PHP]problem z include plik sprawdzający
artur1203
post 28.09.2012, 22:06:27
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 15.09.2012

Ostrzeżenie: (0%)
-----


Witam wszystkich forumowiczów mam taki problem
postanowiłem oddzielic dwie rzeczy teraz mam połączone w jednym pliku i treść i warunki
i wszystko działa mam duzo stron które mają być zabezpieczone
w tej chwili wygląda to następująco
plik sprawdz.php który sprawdza czy użytkownik jest zalogowany , czy ma opłacony abonament jeśli nie kieruje odpowiednio do strony opłacenia lub logowania
natomiast jesli ktoś jest zalogowany i ma opłacony abonament nie wyświetla treści tylko przeżuca na pierwszą strone zamiast pozostać na tej która ma includa
moje drugie pytanie jak zrobić żeby jak nie jest uzytkownik zalogowany i wejdzie na strone kodowaną jest przeżucany do logowania a póżniej na pierwszą strone portalu zamiast na strone z której był przekierowany

<?php
ob_start();
session_start(); // rozpoczęcie sesji
?>
<?php
$xxx=isset($_SESSION['login']);
include 'inc/db.php'; // połączenie się z bazą danych
$tabela = 'uzytkownik'; // zdefiniowanie tabeli MySQL
$today1 = date("Y-m-d") ;


if (!isset($_SESSION['login'])) {
header('Location: ../system/logowanie.php ');
}
$wynik=mysql_query("SELECT * FROM $tabela WHERE status2='0' and login='{$_SESSION["login"]}'");

if (mysql_num_rows($wynik) == 1) {
$informacja = mysql_fetch_array($wynik);
header('Location: ../system/logowanie.php ');
} else {
$wynik1 = mysql_query("SELECT * FROM $tabela WHERE status2='1' and login='{$_SESSION["login"]}'");
$row = mysql_fetch_array($wynik1);
if ($row['data3'] < $today1)
{
$wynik = mysql_query("UPDATE $tabela SET status2='0' WHERE login='{$_SESSION['login']}'"); // zapytanie zmieniajace status w bazie w przypadku
header('Location: ../system/logowanie.php ');
}

else
{
echo "Jesteś zalogowany jako: <b>{$_SESSION["login"]}</b> ";
echo "Ważność twojego konta: <b> {$row['data3']} </b> ";
echo '<a href="../system/logowanie.php?wylogowanie=tak"><b>Wyloguj się</b></a>';
// treść strony ktora jest zakodowana
header('Location: ');
}
}
?>

</div>

i plik gdzie jest include sprawdz.php
<?php
include "sprawdz.php"; #sprawdzenie, czy klient ma prawo jeszcze przeglądać strony z części płatnej
?>
jesteś na właściwej stronie
Go to the top of the page
+Quote Post
szalek01
post 28.09.2012, 22:13:24
Post #2





Grupa: Zarejestrowani
Postów: 129
Pomógł: 17
Dołączył: 17.09.2012

Ostrzeżenie: (0%)
-----


A czy w Twoim systemie mógłbym sobie założyć użytkownika "Ktosiek'; DROP TABLE uzytkownik -- " questionmark.gif

Ten post edytował szalek01 28.09.2012, 22:17:04


--------------------
PDO nie gryzie....
Go to the top of the page
+Quote Post
artur1203
post 28.09.2012, 22:25:46
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 15.09.2012

Ostrzeżenie: (0%)
-----


Cytat(szalek01 @ 28.09.2012, 23:13:24 ) *
A czy w Twoim systemie mógłbym sobie założyć użytkownika "Ktosiek'; DROP TABLE uzytkownik -- " questionmark.gif



nie bardzo rozumiem pytanie questionmark.gif
Go to the top of the page
+Quote Post
szalek01
post 28.09.2012, 22:29:41
Post #4





Grupa: Zarejestrowani
Postów: 129
Pomógł: 17
Dołączył: 17.09.2012

Ostrzeżenie: (0%)
-----


ahh...

zrób sobie kopie bazy
naprawdę zrób kopie bazy i ustaw zmienną

  1. $_SESSION["login"] = "Ktosiek'; DROP TABLE uzytkownik -- ";



--------------------
PDO nie gryzie....
Go to the top of the page
+Quote Post
artur1203
post 28.09.2012, 22:38:55
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 15.09.2012

Ostrzeżenie: (0%)
-----


Cytat(szalek01 @ 28.09.2012, 23:29:41 ) *
ahh...

zrób sobie kopie bazy
naprawdę zrób kopie bazy i ustaw zmienną

  1. $_SESSION["login"] = "Ktosiek'; DROP TABLE uzytkownik -- ";




chciałeś mi pokazać że moj system jest do du...y
a mógłbyś mi pomóc tak żeby było dobrze i bezpiecznie
Go to the top of the page
+Quote Post
szalek01
post 28.09.2012, 22:41:03
Post #6





Grupa: Zarejestrowani
Postów: 129
Pomógł: 17
Dołączył: 17.09.2012

Ostrzeżenie: (0%)
-----


Nic takiego nie napisałem smile.gif, ale chciałem żebyś sam to zauważył. Zaraz napisze co możesz zrobić żeby to zabezpieczyć.


--------------------
PDO nie gryzie....
Go to the top of the page
+Quote Post
Damonsson
post 28.09.2012, 22:46:58
Post #7





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Zrób wcięcia, opakuj to w odpowiedni bbcode, nikt się w tym nie połapie przecież.
Go to the top of the page
+Quote Post
szalek01
post 28.09.2012, 22:47:08
Post #8





Grupa: Zarejestrowani
Postów: 129
Pomógł: 17
Dołączył: 17.09.2012

Ostrzeżenie: (0%)
-----


http://php.net/manual/pl/function.mysql-re...cape-string.php mam nadzieje że nie rozpętam jakiejś wojenki ale jak by co poczytaj o PDO


--------------------
PDO nie gryzie....
Go to the top of the page
+Quote Post
artur1203
post 28.09.2012, 22:51:53
Post #9





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 15.09.2012

Ostrzeżenie: (0%)
-----


Cytat(szalek01 @ 28.09.2012, 23:47:08 ) *
http://php.net/manual/pl/function.mysql-re...cape-string.php mam nadzieje że nie rozpętam jakiejś wojenki ale jak by co poczytaj o PDO

jestem bardzo początkującym i nie bardzo wiem co mam zrobićquestionmark.gif sad.gif wstydnis.gif
Go to the top of the page
+Quote Post
szalek01
post 28.09.2012, 22:57:36
Post #10





Grupa: Zarejestrowani
Postów: 129
Pomógł: 17
Dołączył: 17.09.2012

Ostrzeżenie: (0%)
-----


Jeśli chodzi o zabezpieczenie tych zapytań w to
  1.  
  2. SELECT * FROM $tabela WHERE status2='1' and login='{mysql_real_escape_string($_SESSION["login"])}'

jak chcesz robić coś dobrze musisz sam przebrnąć przez dokumentując lub poszukać na blogach objaśnień i przykładów

Ten post edytował szalek01 28.09.2012, 22:58:30


--------------------
PDO nie gryzie....
Go to the top of the page
+Quote Post
artur1203
post 28.09.2012, 23:04:15
Post #11





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 15.09.2012

Ostrzeżenie: (0%)
-----


Cytat(szalek01 @ 28.09.2012, 23:57:36 ) *
Jeśli chodzi o zabezpieczenie tych zapytań w to
  1.  
  2. SELECT * FROM $tabela WHERE status2='1' and login='{mysql_real_escape_string($_SESSION["login"])}'

jak chcesz robić coś dobrze musisz sam przebrnąć przez dokumentując lub poszukać na blogach objaśnień i przykładów




po wprowadzeniu tych zmian dostałem
Parse error: syntax error, unexpected '"', expecting T_STRING................................/kodowane/sprawdz.php on line 17

Ten post edytował artur1203 28.09.2012, 23:32:14
Go to the top of the page
+Quote Post
szalek01
post 28.09.2012, 23:10:28
Post #12





Grupa: Zarejestrowani
Postów: 129
Pomógł: 17
Dołączył: 17.09.2012

Ostrzeżenie: (0%)
-----



a tak :
SELECT * FROM $tabela WHERE status2='1' and login='".mysql_real_escape_string($_SESSION["login"])."'

Ten post edytował szalek01 28.09.2012, 23:17:09


--------------------
PDO nie gryzie....
Go to the top of the page
+Quote Post
artur1203
post 28.09.2012, 23:25:38
Post #13





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 15.09.2012

Ostrzeżenie: (0%)
-----


Cytat(szalek01 @ 29.09.2012, 00:10:28 ) *
a tak :
SELECT * FROM $tabela WHERE status2='1' and login='".mysql_real_escape_string($_SESSION["login"])."'



zrobiłem tak jak napisałeś ale nadal mam ktośka sad.gif czy wystarczy tylko to dodać czy trzeba więcej questionmark.gif
dzięki za uwagi bede próbował to zrobić jak mi wyjdzie zobaczymy

a wracająć do postu 1 w spawie include pomożecie jak to zrobić
Go to the top of the page
+Quote Post
szalek01
post 28.09.2012, 23:29:56
Post #14





Grupa: Zarejestrowani
Postów: 129
Pomógł: 17
Dołączył: 17.09.2012

Ostrzeżenie: (0%)
-----


Musisz zabezpieczyć każde zapytanie poprzez mysql_real_escape_string ale lepszym rozwiązaniem było by zapoznać się z PDO


--------------------
PDO nie gryzie....
Go to the top of the page
+Quote Post
artur1203
post 28.09.2012, 23:34:29
Post #15





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 15.09.2012

Ostrzeżenie: (0%)
-----


Cytat(szalek01 @ 29.09.2012, 00:29:56 ) *
Musisz zabezpieczyć każde zapytanie poprzez mysql_real_escape_string ale lepszym rozwiązaniem było by zapoznać się z PDO


rozumiem ze zmienną $_SESSION["login"] zamienić na login='".mysql_real_escape_string($_SESSION["login"])." czy znowu żle zrozumiałem


i wracam do pytania z początku
jak zrobić plik include sprawdzające warunki
działa przy wszystkim tylko nie przy zalogowanym sad.gif

Ten post edytował artur1203 28.09.2012, 23:37:08
Go to the top of the page
+Quote Post
szalek01
post 28.09.2012, 23:39:35
Post #16





Grupa: Zarejestrowani
Postów: 129
Pomógł: 17
Dołączył: 17.09.2012

Ostrzeżenie: (0%)
-----


poniekąd, w zapytaniach musisz przygotować dane które dodajesz do zapytań, służy do tego funkcja mysql_real_escape_string jednak. Jeśli pobierasz jakieś dane od użytkownika jego login, email czy na przykład frazę którą użytkownik wpisuje w wyszukiwarkę musisz te dane przygotować by nie zrobiły krzywdy bazie danych.


http://www.lonet.eu/php/zabezpieczenie-przed-sql-injection/
http://kacperkolodziej.com/artykuly/webmas...zyc-strone.html


--------------------
PDO nie gryzie....
Go to the top of the page
+Quote Post
artur1203
post 28.09.2012, 23:45:24
Post #17





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 15.09.2012

Ostrzeżenie: (0%)
-----


Cytat(szalek01 @ 29.09.2012, 00:39:35 ) *
poniekąd, w zapytaniach musisz przygotować dane które dodajesz do zapytań, służy do tego funkcja mysql_real_escape_string jednak. Jeśli pobierasz jakieś dane od użytkownika jego login, email czy na przykład frazę którą użytkownik wpisuje w wyszukiwarkę musisz te dane przygotować by nie zrobiły krzywdy bazie danych.


http://www.lonet.eu/php/zabezpieczenie-przed-sql-injection/
http://kacperkolodziej.com/artykuly/webmas...zyc-strone.html




dzięki za informacje porobie tak jak opisane w postach i dam znać jak poszło
czy jest jakiś sposób sprawdzenia strony czy jest dobrze zabezpieczona questionmark.gif PROSTY
a masz jakiś pomysł na mojego include sad.gif

Ten post edytował artur1203 28.09.2012, 23:47:15
Go to the top of the page
+Quote Post
szalek01
post 29.09.2012, 10:13:21
Post #18





Grupa: Zarejestrowani
Postów: 129
Pomógł: 17
Dołączył: 17.09.2012

Ostrzeżenie: (0%)
-----


Nie wiem jak inni ale dla mnie ten kod należało by uporządkowawszy. Jeśli uczysz się php, poczytaj o OOP w php o MVC będzie Ci łatwiej.
Co do obecnego podejścia może postaraj się to jakoś tak podzielić.
  1. <?php
  2. $isLogin = isUserLogin(); //true or false
  3. $abonamentOk = iAabonamentOK(); //true or false
  4.  
  5. if(false == $isLogin && false == $abonamentOk)
  6. {
  7. header('Location: script.php/logowanie/abonament');
  8. }
  9. else if(false == $isLogin)
  10. {
  11. header('Location: script.php/logowanie/');
  12. }
  13. else if(false == $abonamentOk)
  14. {
  15. header('Location: script.php/abonament ');
  16. }
  17. else
  18. {
  19.  
  20. }
  21. ?>


Ten post edytował szalek01 29.09.2012, 10:18:04


--------------------
PDO nie gryzie....
Go to the top of the page
+Quote Post
artur1203
post 29.09.2012, 10:23:50
Post #19





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 15.09.2012

Ostrzeżenie: (0%)
-----


Dzięki za pomoc szalek01 juz to rozwązałem
mam jeszcze jedno pytanie
jak po przejsciu do logowania i zalogowaniu powrócić do poprzedniej strony

i dodatkowo
pozmieniałem te wiersze odnośnie zabezpieczenia bazy i nadal jak jest umieszczone ktosiek to sie loguje uzytkownik ktosiek
Go to the top of the page
+Quote Post
szalek01
post 29.09.2012, 10:32:07
Post #20





Grupa: Zarejestrowani
Postów: 129
Pomógł: 17
Dołączył: 17.09.2012

Ostrzeżenie: (0%)
-----


1) możesz przekazać sobie parametr w adresie do logowania gdzie ma wrócić po zalogowaniu
2) możesz skorzystać z zmiennej $_SERVER i tam o ile dobrze pamiętam masz REMOTE_HOST czyli adres z skąd użytkownik przyszedł


--------------------
PDO nie gryzie....
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:52