Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP+PDO][MySQL]Pierwsza strona www., bezpieczeństwo stron itd.
ZaXaZ
post
Post #1





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Pytanie nietypowe, nie chce koła chce dętkę.

Od paru dni myślę nad podniesieniem mojego poziomu php na wyższy, jako że nadal jestem początkującym chciałbym teraz zrobić system logowania i rejesracji jednak problemem jest dla mnie za mała wiedza o sesjach.
Nie znalazłem dostatecznych źródeł informacji na temat sesji (według mnie), a pytanie na którym się zatrzymuję;

Jak można przechowywać sesję przechodząc na inną stronę?

oraz tak jak pisałem na samej górze, nie chce dostać całego systemu logowania i rejestracji tylko sam szkielet jak to ma mniej więcej wyglądać (chodzi tylko o sesje) oraz ewentualne (miło by było) pokazanie np. "tu hashuj hasła", "tu sprawdź czy już istnieję", "Tu dane dla zalogowanego" itd. (Jako że jest to forum "Przedszkole" a ja będę to pisał pierwszy raz)

mam nadzieję że dobrze zadałem pytanie, jakby ktoś nie zrozumiał to proszę komentować.

edit:
ps. będę pisał to z pomocą PDO bo tylko tego się uczyłem więc prosiłbym nie zamykać tematu bo może będę miał pytania w przyszłości jakby coś nie wyszło.

edit 2 - Jeszcze jedno:
W bazie wystarczy `id`, `nick`, `haslo` czy jeszcze coś będzie mi potrzebne?

Ten post edytował nospor 23.04.2014, 09:51:44
Go to the top of the page
+Quote Post
3 Stron V   1 2 3 >  
Start new topic
Odpowiedzi (1 - 40)
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Co do samego skryptu logowania i rejestracji napisałem takowy kiedyś na swoim blogu.
#edit, w artykule napisałem co nieco o sesji (IMG:style_emoticons/default/smile.gif)

Cytat
Jak można przechowywać sesję przechodząc na inną stronę?

W każdym pliku, w którym sesja ma być aktywna, trzeba dać na wstępie session_start(). Tym sposobem sesja sobie istnieje w tle przechodząc między stronami.

Cytat
W bazie wystarczy `id`, `nick`, `haslo` czy jeszcze coś będzie mi potrzebne?

Wystarczy, to absolutne minimum. W zależności od upodobań można dodać np. adres e-mail, datę rejestracji, typ konta (admin/użytkownik itd.), ostatnie logowanie etc.

Ten post edytował Turson 19.04.2014, 13:24:53
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #3





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Tak jak pisałem mogę mieć pytania i mam już pierwsze

--BEZPIECZEŃSTWO--
Czy: Jestem bezpieczny w tym fragmencie kodu?
  1. $gg = substr((int)$_POST['gg'],0,9);
  2. $nick = substr(preg_replace('/[^0-9A-Za-z]/', '', $_POST['nick']),0,32);
  3. $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);

Jak zabezpieczyć hasło? addslashes może chyba być nieprawidłowe skoro chciałbym udostępnić wszystkie znaki możliwe
Go to the top of the page
+Quote Post
Turson
post
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Zależy co chcesz z tymi danymi zrobić.
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #5





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(Turson @ 20.04.2014, 12:59:10 ) *
Zależy co chcesz z tymi danymi zrobić.


* Przechowywać w bazie (przy rejestracjj), * Przy logowaniu sprawdzać poprawność danych (czy użytkownik istnieje itd.),
ps. email ucinany będzie po 350 znakach bo ponoć najdłuższy jaki był miał 345..,
oraz hasło przycinane po 50 znaku;

Ten post edytował ZaXaZ 20.04.2014, 12:08:02
Go to the top of the page
+Quote Post
Turson
post
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Jak już bindujesz dane w PDO to nie musisz się bawić w rzutowanie (jeżeli chodzi tu o zapytanie)

Ten post edytował Turson 20.04.2014, 12:15:45
Go to the top of the page
+Quote Post
Crozin
post
Post #7





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


1. Najpierw sprawdzaj poprawność przesłanych przez użytkownika danych, dopiero później baw się w ich filtrowanie. O co chodzi (na przykładzie numeru GG)? Powiedzmy, że podałem swój numer GG jako 123e567890 - jest on nieprawidłowy (zawiera znak "e" oraz jest za długi). W tej chwili Twój kod go przepuści, a w bazie danych zostaną zapisane głupoty, a konkretnie wartość "123". Tak więc najpierw powinieneś sprawdzić czy dane są prawidłowe, tj. w tym przypadku sprawdzić czy masz w zmiennej tekst, składający się z samych cyfr, gdzie sam tekst jest niedłuższy niż 9 znaków:
  1. if (!ctype_digit($gg) || strlen($gg) > 9) {
  2. // nieprawidłowy nr GG
  3. }
A dopiero później zrobić ewentualne rzutowanie na INT.
Analogicznie powinieneś postąpić przy nicku oraz emailu.
2. Akurat hasło spokojnie może mieć więcej niż 50 znaków.
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #8





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(Turson @ 20.04.2014, 13:08:18 ) *
Jak już bindujesz dane w PDO to nie musisz się bawić w rzutowanie


No fakt, zapomniałem o tym... chcialem samym query, zamiast np. prepare-execute lub tak jak pisales,
jednak jak zrobię bindParam(':nick', $nick); itd to jestem bezpieczny? (głównie chodzi mi o sql injection chyba że jeszcze coś tu jest)
Go to the top of the page
+Quote Post
Crozin
post
Post #9





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Tak, jeżeli używasz bindowania nie musisz już obawiać się SQLInjection (przynajmniej w zakresie danych przesłanych tymi parametrami).
Go to the top of the page
+Quote Post
Xart
post
Post #10





Grupa: Zarejestrowani
Postów: 267
Pomógł: 6
Dołączył: 8.04.2013

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


Cytat(ZaXaZ @ 20.04.2014, 12:52:40 ) *
Jak zabezpieczyć hasło? addslashes może chyba być nieprawidłowe skoro chciałbym udostępnić wszystkie znaki możliwe


Jakąś funkcją szyfrującą np:
$haslo = md5($haslo);
Go to the top of the page
+Quote Post
viking
post
Post #11





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


MD5 to nie funkcja szyfrująca.
http://docs.php.net/manual/en/ref.password.php
albo
http://docs.php.net/manual/en/function.crypt.php
albo
http://www.openwall.com/phpass/
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #12





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(Xart @ 20.04.2014, 14:03:34 ) *
Jakąś funkcją szyfrującą np:
$haslo = md5($haslo);


być może źle pytanie zadałem ale odpowiedź już uzyskałem trochę wyżej nad tobą (co do bindowania - bo o to mi chodziło),
a hasła będę miał "przerabiane/hashowane" przez hash_hmac bo md5 już dawno złamane, czyt. rainbow tables.
Go to the top of the page
+Quote Post
viking
post
Post #13





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


Zdajesz sobie sprawę że w przypadku hash_hmac gdy ktoś zdobędzie klucz to wszystkie twoje hasła są nic nie warte?
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #14





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(viking @ 20.04.2014, 15:10:49 ) *
Zdajesz sobie sprawę że w przypadku hash_hmac gdy ktoś zdobędzie klucz to wszystkie twoje hasła są nic nie warte?


tzn.?, mógłbyś oświecić mnie? - bo nie wiem o co chodzi.

edit:
$pass = hash_hmac('sha512', $_POST['pass'], 'sól');
będzie mniej bezpiecznie niż
$pass = sha512($_POST['pass']);
(IMG:style_emoticons/default/questionmark.gif)

edit2:
@down, w takim razie leci dla ciebie i dla viking "pomógł" za pomoc, thx.

Ten post edytował ZaXaZ 20.04.2014, 15:34:30
Go to the top of the page
+Quote Post
Crozin
post
Post #15





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Używanie algorytmów z rodziny SHA-1/-2 (np. SHA-512) już samo w sobie zbyt bezpieczne nie jest (zbyt szybko można je generować). Powinieneś skorzystać ze wspomnianego wcześniej crypt bądź password_hash i bezpiecznego algorytmu, np. Blowfish.
Go to the top of the page
+Quote Post
ZaqU
post
Post #16





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 21.01.2013

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


Czy używanie crypt / password_hash & Blowfish nie jest najzwyczajniej w świecie mówiąc przerostem formy nad treścią? Samo hashowanie haseł ma przecież na celu ich ochronę tylko w przypadku dostania się do bazy intruza (czy to poprzez SQL Injection, czy konwencjonalnie - przez wejście do PMA). Czy zatem nie prościej byłoby po prostu zapisywać w formie zahashowanej hasło i sól prywatną dla każdego użytkownika? Nawet po zdobyciu jakimś cudownym trafem kopii danych z bazy przez potencjalnego intruza, jak długo trwałoby znalezienie metodą brute force właściwego hasła dla jednego użytkownika? To w sumie 16^128 kombinacji, bardzo, bardzo dużo. I oczywiście łamanie hasła odbywa się nie dla wszystkich użytkowników z bazy, ale dla pojedynczego.

To teraz pytanie: czy nie wystarczy po prostu wrzucić zwykłe sprawdzanie czy w ciągu ostatnich 15 minut nastąpiło co najmniej 5 prób nieudanego logowania i jeżeli tak, to odmawiać kolejnych logowań? Sam kiedyś stworzyłem taki system i korzystam z niego do dziś, bo jest w miarę bezpieczny. Owszem, nie użyłbym go do zabezpieczenia strony jakiegoś banku, ale na potrzeby zwykłych serwisów czy portali sprawdza się znakomicie. Czy jest zatem sens bawienia się w tego typu rzeczy? Jeżeli istnieje jakiś sensowny argument, to proszę go przytoczyć - nie chce się kłócić, i z wielką chęcią zmieniłbym nawyki, jeżeli obecne okazałyby się mało bezpieczne, ale musi istnieć konkretna przyczyna, a nie że podnosimy i tak już wysoko zawieszoną poprzeczkę. (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Crozin
post
Post #17





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


@ZaqU: W kontekście bezpieczeństwa zawsze będę reprezentować wręcz paranoiczną postawę. (IMG:style_emoticons/default/wink.gif)
1. password_hash z blowfishem wymaga takiej samej ilości pracy co sha512 z solą. W obu przypadkach... bardzo, bardzo mało. A w sumie powiedziałbym nawet, że jest to prostsze w obsłudze.
2. Co z tego, że jakiś hash daje 16^x kombinacji skoro i tak połowa użytkowników Twojego serwisu będzie miała hasła pokroju "qwerty", "internet123" czy "dupa.8"? Atakujący raczej na start rzuci jakiś atak słownikowy niż brute-force. I w przypadku takiego sha512 wygeneruje kilkaset czy kilka tysięcy kombinacji na sekundę, a przy blowfishu raczej kilka-kilkanaście.
3. Tutaj mówimy konkretnie o przypadku gdy intruz wpadł w posiadanie hasha naszego hasła, a nie o samym logowaniu, nie mniej jednak blokowanie możliwości zalogowania po x próbach jest słabym pomysłem - lepiej jest wymusisz jakąś CAPTCHA-e - sam niejednokrotnie zapominałem hasła do jakiś serwisów i potrzebowałem 10-20 prób na zalogowanie się. (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
redeemer
post
Post #18





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


Cytat(Crozin @ 21.04.2014, 13:08:50 ) *
I w przypadku takiego sha512 wygeneruje kilkaset czy kilka tysięcy kombinacji na sekundę...

Dzisiaj z wykorzystaniem GPU to już nie tysiące, ale miliony.

Ten post edytował redeemer 21.04.2014, 12:35:37
Go to the top of the page
+Quote Post
Crozin
post
Post #19





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
Dzisiaj z wykorzystaniem GPU to już nie tysiące, ale miliony.
Aż sprawdziłem kilkuletni, podrzędnej klasy laptop z którego właśnie piszę... 150 milionów MD5 na sekundę - SHA512 pewnie byłoby w okolicach 100M.

Ten post edytował Crozin 21.04.2014, 13:53:30
Go to the top of the page
+Quote Post
redeemer
post
Post #20





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


Cytat(Crozin @ 21.04.2014, 14:50:40 ) *
Aż sprawdziłem kilkuletni, podrzędnej klasy laptop z którego właśnie piszę... 150 milionów MD5 na sekundę - SHA512 pewnie byłoby w okolicach 100M.

Z tymi 100M przy SHA512 to nie byłbym taki optymistyczny (IMG:style_emoticons/default/wink.gif) Wszystko oczywiście zależy od karty, ale nawet GTX580 (NVIDIA) ma w przypadku SHA512 ~114M/s (MD5 ~2414M/s). Dla porównania HD6990 (AMD) ma dla SHA512 ~217M/s (MD5 ~10742M/s)

Dane z http://hashcat.net/oclhashcat/
Go to the top of the page
+Quote Post
ZaqU
post
Post #21





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 21.01.2013

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


Cytat(Crozin @ 21.04.2014, 13:08:50 ) *
2. Co z tego, że jakiś hash daje 16^x kombinacji skoro i tak połowa użytkowników Twojego serwisu będzie miała hasła pokroju "qwerty", "internet123" czy "dupa.8"?

Na szczęście, jako programiści za idiotów nie odpowiadamy - jak ktoś im się włamie na konto, bo ustawią sobie hasło 1234, to będzie to ich wina. A przecież chyba nie muszę nikomu przypominać, że 90-95% przypadków, gdy ktoś uzyskał dostęp do cudzego konta wynikało z winy użytkownika, a nie luki w systemie - a przed tym zabezpieczyć się nie da.

Cytat(Crozin @ 21.04.2014, 13:08:50 ) *
3. Tutaj mówimy konkretnie o przypadku gdy intruz wpadł w posiadanie hasha naszego hasła, a nie o samym logowaniu, nie mniej jednak blokowanie możliwości zalogowania po x próbach jest słabym pomysłem - lepiej jest wymusisz jakąś CAPTCHA-e - sam niejednokrotnie zapominałem hasła do jakiś serwisów i potrzebowałem 10-20 prób na zalogowanie się. (IMG:style_emoticons/default/wink.gif)

Jak kto lubi (IMG:style_emoticons/default/wink.gif) Ja jestem przeciwnikiem używania CAPTCHY, bo to programista powinien właściwie zabezpieczyć swój system, a nie przerzucać obowiązki na użytkownika. Osobiście prędzej wyrzuciłbym monitor przez okno niż dał się namówić na przepisywanie 20 razy pod rząd zamazanego i ledwo widocznego tekstu z obrazka. Bo w sumie, jakby nie patrzeć... dobry system to taki, który ułatwia użytkownikowi życie, a nie je utrudnia. (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #22





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Jak już mowa o "capatch'y",
Google Street Viev potrafi odczytać numery domów czyt.
złamać/odczytać capatche lepiej niż człowiek.
czytałem o tym kilka dni temu (np. tu jest o tym, tyle że ja czytałem inny artykuł w którym było że hakerzy mogą to wykorzystać)
ale skoro już mowa to i pytanie bo właśnie miałem myśl...
"Hmm co by tu dodać na anty-spam..."
i pierwsze co mi przyszło na myśl to capatcha obrazkowa.
Jednak, jest coś lepszego? pomimo że ponoć capatcha także należy do google (mogę się mylić) to coś czuję że za parę lat to będzie równoznaczne z zabezpieczeniami jak "5 + 2 * 1, wpisz wynik w tym polu: "
a zabezpiecznie po IP to chyba już nie ta epoka ;| ale dodać zawsze można dla mniej sprytnych userów - tyle że można tym pokarać także niewinnych

Tak więc, są może jakieś propozycje co zamiast:
* capatch'y
* blokady po IP?


Ten post edytował ZaXaZ 22.04.2014, 01:34:42
Go to the top of the page
+Quote Post
viking
post
Post #23





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


Blokady IP możesz śmiało stosować w stosunku do znanych spamerów - gotowe uaktualniane listy znajdziesz w sieci. Dzięki temu jesteś w stanie wykluczyć chociaż sporą liczbę botów próbujących automatycznej rejestracji / logowania.
Go to the top of the page
+Quote Post
Crozin
post
Post #24





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
Na szczęście, jako programiści za idiotów nie odpowiadamy - jak ktoś im się włamie na konto, bo ustawią sobie hasło 1234, to będzie to ich wina.
Co z tego, że to idioci. Jeśli mogę właściwie zerowym kosztem ochronić takie osoby przed przejęciem ich konta powinienem to zrobić.
Cytat
[...]Osobiście prędzej wyrzuciłbym monitor przez okno niż dał się namówić na przepisywanie 20 razy pod rząd zamazanego i ledwo widocznego tekstu z obrazka.[...]
Ja tam jednak wolę przepisać ten durny obrazek po 10 nieudanym zalogowaniu niż otrzymać informację, że przez następne 15 minut w ogóle nie będę miał możliwości próby zalogowania. (IMG:style_emoticons/default/wink.gif) Ale... jak kto lubi. (IMG:style_emoticons/default/wink.gif)

Cytat
[...] pomimo że ponoć capatcha także należy do google (mogę się mylić) to coś czuję że za parę lat to będzie równoznaczne z zabezpieczeniami jak "5 + 2 * 1
CAPTCHA to tylko pojęcie i nie należy do nikogo. reCAPTCHA to już konkretny produkt Google'a.
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #25





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Dodatkowe pytanie (layout), jest to mój pierwszy pisany od zera, wygląda gorzej niż osób które wydawały w 2007 ale nie jest to dział do ocen ani nic więc proszę tego nie krytykować bo od czegoś muszę zacząć oraz też poprawności html bo jest tylko do testowania,

a pytanie: jak mogę zrobić żeby diva content nie psuł długi tekst?

  1. body
  2. {
  3. color:#04030A;
  4. font:13px Arial, Helvetica, sans-serif;
  5. background:#EBEBEB no-repeat center;
  6. background-size:1000px 1800px;
  7. position:absolute;
  8. margin:0;
  9. overflow:auto;
  10. }
  11. #menu, #menu2
  12. {
  13. border:1px solid #191919;
  14. width:100px;
  15. height:200px;
  16. float:left;
  17. background-color:#8D8D8D;
  18. }
  19. #menu
  20. {
  21. border-left:thick solid #191919;
  22. border-right:solid #191919;
  23. float:left;
  24. }
  25. #menu2
  26. {
  27. border-right:thick solid #191919;
  28. border-left:solid #191919;
  29. float:right;}
  30. footer, header
  31. {
  32. color:#BBB;
  33. text-decoration:none;
  34. font-size:10px;
  35. border:1px solid #191919;
  36. text-align:center;
  37. clear:both;
  38. background-color:#0013BF;
  39. }
  40. header
  41. {
  42. border-top-left-radius:0.3cm;
  43. border-top-right-radius:0.3cm;
  44. }
  45. footer
  46. {
  47. border-bottom-right-radius:0.3cm;
  48. border-bottom-left-radius:0.3cm;
  49. }
  50. footer a {color:#D9CE00;}
  51. #content
  52. {
  53. float:left;
  54. }
  55. <header>Witaj na stronie!</header>
  56.  
  57. <div id="menu"><b>Menu</b>:<br/>
  58. <a href="#">Link</a><br/>
  59. <a href="#">Link 2</a><br/>
  60. <a href="#">Link 3</a>
  61. </div>
  62.  
  63. <div id="content">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>
  64. <div id="menu2"><b>Menu2</b>:<br/>
  65. <a href="#">Link</a><br/>
  66. <a href="#">Link 2</a><br/>
  67. <a href="#">Link 3</a> </div>
  68.  
  69. <footer>&copy;ZaXaZ 2013-2014</footer>
  70. </body>


taki sam efekt z długim tekstem uzyskiwałem przy krótkim gdy content był zwykłym divem bez float left.
Ps. jestem początkujący w html/css - uczyłem się rok temu ale nadal słabo mi idzie.
Ps. 2. chcę się tu ograniczyć do samego html i css (żadnego js.)

Ten post edytował ZaXaZ 24.04.2014, 22:31:17
Go to the top of the page
+Quote Post
Turson
post
Post #26





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Co znaczy, że długi tekst psuje #content?
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #27





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(Turson @ 25.04.2014, 09:38:16 ) *
Co znaczy, że długi tekst psuje #content?


Menu lewe i header zostaje u góry, content jest na środku pod menu a menu2 i footer idzie na dół pod content,
##########
###
#*#
#~#
###
Lorem Ipsum (długi...)
__________###
__________#*#
__________#~#
__________###
##########

a gdy jest krótki tekst działa normalnie.
header nad wszystkim, menu u góry, menu2 na przeciwko menu, content pomiędzy menu a menu2 i stopka równo pod menu i menu2

##########
###...____###
#*#______#*#
#~#______#~#
###______###
##########

edit: dodalem jak to mniej więcej wygląda.
# header, footer, menu i menu2 (obramowanie)
* treść menu
_ to spacje
~ pusta treść.

Ten post edytował ZaXaZ 25.04.2014, 11:38:03
Go to the top of the page
+Quote Post
Turson
post
Post #28





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Najlepiej pokaż jakieś demko.
Dla #content nadaj overflow:hidden
Poza tym mieszasz floaty dla #menu i #menu2. Najpier dajesz left, potem każdego z osobna inny.
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #29





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(Turson @ 25.04.2014, 12:32:58 ) *
Najlepiej pokaż jakieś demko.
Dla #content nadaj overflow:hidden
Poza tym mieszasz floaty dla #menu i #menu2. Najpier dajesz left, potem każdego z osobna inny.


demko dałem, pisałem trochę wcześniej ale szybciej o parę minut wyslales ;p ,
overflow:hidden; dodalem i bez zmian :/
float left (menu) float right (menu2) było to zamienialem float right na left w menu2
i tak wygląda na szybko:
##########
###
###
.................
###
###
##########

i najważniejsze:
dodałem
width:400px;
height:200px;
dla content i działa idalnie, ale czy to nie zawodne? ;p bo nie wiem czy u innych też tak działa

edit2: dodalem 2x dłuższy Lorem ipsum (w sumie już ma 4x Lorem...) i ucina tekst (znika) pod stopka

Ten post edytował ZaXaZ 25.04.2014, 11:58:18
Go to the top of the page
+Quote Post
Turson
post
Post #30





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Jeżeli dałeś height:200px to co dziwnego w tym, że ucina? Daj min-height:200px
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #31





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(Turson @ 25.04.2014, 13:00:42 ) *
Jeżeli dałeś height:200px to co dziwnego w tym, że ucina? Daj min-height:200px


Działa, a da się jeszcze zrobić żeby menu lewe i prawe się rozciągało z góry na dół do footer? bo po dłuższym tekście idzie w dół footer.. a reszta ok
Go to the top of the page
+Quote Post
Turson
post
Post #32





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


http://www.vanseodesign.com/css/equal-height-columns/
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #33





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Przeglądam plik css jednej gry,
jest tam coś na podobe tego:
  1. .aaa .bbb
  2. {
  3. ...
  4. }

i jest dokładnie tak jak napisałem,
- jak to się nazywa?
- jak mogę takie coś użyć?

edit: przy okazji. Niektóre strony np. fb mają html zakodowany w base64, dla przykładu, jak się na operze wejdzie w stronę i nią zapisze, + wejdzie się w kod to jest on w base64, a w przeglądarce pokazuje normalnie, jak można takie coś zrobić? (IMG:style_emoticons/default/tongue.gif) , przyda się pewnie, ps. wiem co to base64_encode ale nie mam pomysłu jak to użyć, o ile to tym zakodowuje.

Ten post edytował ZaXaZ 26.04.2014, 18:09:50
Go to the top of the page
+Quote Post
Turson
post
Post #34





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


  1. .aaa .bbb
  2. {
  3. ...
  4. }

To jest składnia dla np.
  1. <div class="aaa"><div class="bbb"></div></div>

Czyli klasa bbb jest w klasie aaa
Tym sposobem możesz róznie ostylować .bbb powyższego przykładu i dla
  1. .bbb{}

  1. <div class="bbb"></div>


O base64 przeczytasz dużo w wyszukiwarce
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #35





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(Turson @ 26.04.2014, 19:27:46 ) *
  1. .aaa .bbb
  2. {
  3. ...
  4. }

To jest składnia dla np.
  1. <div class="aaa"><div class="bbb"></div></div>

czyli że
  1. .aaa .bbb{...}

jest równo ważne z
  1. .aaa, .bbb{...}

(IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
trueblue
post
Post #36





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
Dołączył: 11.03.2014

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


Nie jest.
  1. .aaa .bbb

oznacza, że jest to selektor dla elementów o klasie bbb, które mają przodka z klasą aaa.
  1. .aaa, .bbb

to selektor dla elementów o klasie aaa i/lub klasie bbb
Jeszcze możesz się spotkać z:
  1. .aaa.bbb

Co oznacza, że jest to selektor dla elementów, które mają przypisane obydwie klasy.
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #37





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


~ PHP ~
1. nie mogę nigdzie znaleść: co robi &$zmienna? a robi pewnie coś (przykład: $a = &$b; ) //trochę off-top z tym ale chyba niema po co zakładać tematu którego nawet nazwy bym nie znał (dodatkowo pewnie już gdzieś jest na forum ale nie wiem jak to szukać) znajduję tylko same rzeczy typu if ($x && $y)....... a o to mi nie chodzi.
2. Jak mogę zliczyć różnice czasu i dat? - artykułów jest pełno ale całkowicie nie na temat, jest tylko dodawanie dat itd, a chce zrobić coś takiego:
Zliczenie ile czasu mięło od podanej daty do aktualnej; a konkretniej od daty wygenerowanej przez SQL NOW() do drugiej daty NOW(), chodzi mi żeby liczyło różnice sekund, minut, godzin dni, miesięcy, lat; //tego też nigdzie nie mogę znaleść. (Zliczenie ile łącznie użytkownik był online)

Ten post edytował ZaXaZ 26.04.2014, 21:30:01
Go to the top of the page
+Quote Post
Turson
post
Post #38





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


1. http://www.php.net/manual/en/language.references.pass.php
2. Ostatnio w dziale PHP był temat o obliczaniu czasu
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #39





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


PHP - Ciastka
a co myślicie o tym żeby dodatkowo blokować użytkowników w ciastkach na dzień? lub tydzień jeśli spamerzy? zadziała na strony jeśli są spamerskie?
ps. wiem że ciastka można blokować oraz kasować, ale istnieje nie jeden mniej sprytny użytkownik a ja nie pogardze żadnym zabezpieczeniem które coś wniesie.

Ciastka vs Sesje
planuję w sesjach przechowywac id użytkownika a w ciastkach nick, czy dobrze tak będzie?!, bo forum.php.pl jak widzę ma w ciastkach zalogowanie; jak się nie mylę... bo po kasacji ciastek przeglądarki mnie wylogowalo a gdzieś czytałem że sesje korzystają i tak z ciastek.

Ten post edytował ZaXaZ 30.04.2014, 14:15:10
Go to the top of the page
+Quote Post
Turson
post
Post #40





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


1. Nie zaszkodzi blokować po ciastkach, ale to zabezpieczenie nie może być jedynym.
2. Ciatka można także zmieniać. Trzymaj w sesji.
Go to the top of the page
+Quote Post
trueblue
post
Post #41





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
Dołączył: 11.03.2014

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


Cytat(ZaXaZ @ 30.04.2014, 15:03:22 ) *
gdzieś czytałem że sesje korzystają i tak z ciastek.

W ciastku jest przechowywany identyfikator sesji, tak aby serwer wiedział, którą sesję (którego użytkownika sesję) ma odtworzyć przy nawigacji po stronie.
Kiedy usuniesz to ciastko, to nadal plik sesji istnieje na serwerze, ale nie ma możliwości jej odtworzenia/powiązania.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.12.2025 - 16:34