Автор Тема: Първото ми Уеб приложение  (Прочетена 7380 пъти)

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Всичко е в начален стадии, но може да се тества:

https://sourceforge.net/projects/privategallery/

Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

Acho

  • Напреднали
  • *****
  • Публикации: 5733
  • Distribution: Slackware, MikroTik - сървърно
  • Window Manager: console only
    • Профил
    • WWW
Re: Първото ми Уеб приложение
« Отговор #1 -: Jun 27, 2013, 16:01 »
Поздравления колега. Респект.
Активен

CPU - Intel Quad-Core Q8400, 2.66 GHz; Fan - Intel Box; MB - Intel G41M-T2; RAM - DDR2-800, Kingston HyperX, 2X2048 MB; VC - onboard, Intel G41 Express Chipset; HDD - Toshiba, 500 GB, SATAII; SB - Realtek HD Audio; DVD-RW - TSSTcorp DVD-RW; LAN - Realtek PCI-E GBE Controller; PSU - Fortron 400 Watt.

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Re: Първото ми Уеб приложение
« Отговор #2 -: Jun 27, 2013, 16:08 »
Мерси. След като не намерих готово което да ми хареса, си го написах. Исках да си гледам видео уроците през Уеб-а и това вече работи, но реших да го разширя, най-вече за кеф.
« Последна редакция: Jun 27, 2013, 16:10 от clovenhoof »
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Първото ми Уеб приложение
« Отговор #3 -: Jun 27, 2013, 16:13 »
Може ли въпрос:
Код
GeSHi (PHP):
  1. if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')
  2. {
  3.    $u = $_POST['user'];
  4.    $p = $_POST['password'];
  5.    if (isset($u) && isset($p) &&
  6.        authenticateUser($u, $p))
  7. {
  8.    echo true;
  9.    exit;
  10. }
  11.    echo false;
  12. }
  13. else
  14. {
  15. header("Location: index.php");
  16. }

Какво проверяваш тука?
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Re: Първото ми Уеб приложение
« Отговор #4 -: Jun 27, 2013, 16:21 »
Формата за логване я сериализирам и пращам с ajax, а не по традиционния начин. Горното проверява дали е ajax рекуеста към страницата.

Основната причина за това беше да показвам съобщение за грешка при логване, а и да тренирам.
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

zeridon

  • Killmode enabled
  • Administrator
  • Напреднали
  • *****
  • Публикации: 1398
  • Distribution: Debian/Ubuntu
  • Window Manager: console/Gnome
  • BOfH
    • Профил
    • WWW
Re: Първото ми Уеб приложение
« Отговор #5 -: Jun 28, 2013, 08:41 »
Предполагам ти е ясно че на юзера не може да се вярва какво ще забие в полетата за user/pass и си ги филтрираш правилно. Ако ли не мисля че чувам sql injection ...
Активен

Внмимавай имам клещи за кабел
http://www.netsecad.com/
http://theregister.co.uk/odds/bofh/

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Re: Първото ми Уеб приложение
« Отговор #6 -: Jun 28, 2013, 10:15 »
Незнам дали си гледал кода, но разбира се че знам инжекцията и според мен в това отношение приложението е добре, ама още съм нов в Web Dev така че може да хвърлите един поглед на автентикацията:
Код
GeSHi (PHP):
  1. function authenticateUser($u, $p)
  2. {
  3. $result = false;
  4. try
  5. {
  6. $dbh = new PDO("sqlite:main.db");
  7. $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  8.  
  9. $query = "SELECT id, name, password FROM users WHERE name = :username";
  10. $query_params = array(':username' => $_POST['user']); // Това съм забравил да го сложа на $u
  11. $stmt = $dbh->prepare($query);
  12.                $stmt->execute($query_params);
  13.  
  14. $row = $stmt->fetch();
  15. if($row)
  16.                {
  17.                      $mdp = md5($p);
  18.                      if($mdp === $row['password'])
  19.                      {
  20. unset($row['password']);
  21. unset($row['name']);
  22.  
  23. $_SESSION['user'] = $row['id'];
  24.                                $result = true;
  25.                      }
  26.               }
  27. }
  28. catch(PDOException $e)
  29. {
  30. //$e->getMessage();
  31. }
  32.  
  33. return $result;
  34. }
  35.  

Според мен е добре така имайки предвид че ползвам PDO::prepare, а също така паролата я проверявам отделно, но ако нещо не ви харесва казвайте за да поразуча утвърдените практики.
« Последна редакция: Jun 28, 2013, 10:17 от clovenhoof »
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Re: Първото ми Уеб приложение
« Отговор #7 -: Jul 02, 2013, 10:23 »
Ха, днес отварям и гледам проекта ми го няма на sourceforge.
Мейл не съм получавал с причини за това.

Писах им за обяснение и чакам.  >:(
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Re: Първото ми Уеб приложение
« Отговор #8 -: Jul 03, 2013, 16:45 »
Върнаха проекта обратно.
Нещо се били объркали ... дълго за разправяне.
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

VladSun

  • Moderator
  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: Първото ми Уеб приложение
« Отговор #9 -: Aug 17, 2013, 16:24 »
Поздравления и добре дошъл в web dev-a :)

Малко конструктивна критика:
- не ползваш ООП
- няма MVC разделение
- в password_hash.php (един от малкото файлове, който разгледах) имаш повторение на кода

ПП:

след header('Location: xxxx'); винаги се вика exit();
« Последна редакция: Aug 17, 2013, 16:28 от VladSun »
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Re: Първото ми Уеб приложение
« Отговор #10 -: Aug 19, 2013, 13:30 »
Добре заварил! :)

Доста неща свързани с Уеб Дев-а, разгледах, тествах и осъзнах от последният ми пост тук.
Основното е че си избрах PHP Framework. Ще пренапиша целият проект ползвайки Laravel.
Последният има хубава документация и поддръжка. Избрах този фремуорк след като прочетох документацията от сайта и най-вече секциата Quickstart. Btw, приятно се работи и с тулче като composer.
Така че вече ще има MVC, a за автентикацията мисля да ползвам библиотека като Sentry.

За дизайна - този бутстрап го зарязах. Много ме дразни че сайтовете които го ползват си личат от километри. Вече ползвам YAML CSS и установих че за разлика от бутстрап-а никъде по кода вече нямам !important и всичко е по чисто.
« Последна редакция: Aug 19, 2013, 13:37 от clovenhoof »
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Re: Първото ми Уеб приложение
« Отговор #11 -: Aug 21, 2013, 16:47 »
Всъщност, ето го и демо проекта: http://selectany.my.phpcloud.com/PrivateGallery
Потребител: admin
Парола: test123

Още не съм измислил напълно начина на ползване, но за сега мисля всеки потребител си избира отделни настройки т.е. да си добавя видео, снимки и др.
Тъй като в демото има само един потребител, за момента това което конфигурирането прави е да създава една таблица (кеш) в базата и на финала я изтрива.
Реално кеша го създадох при деплойване на демото и след това "превключих на демо режим".
Като таргет на кеша е една директория с много файлове (инсталацията от Ruby200 :) ), която качих на сървъра и в която добавих няколко тестови HTML5 (*.webm) клипчета в папката "My Great Videos". Двойно кликане и видеото трябва да тръгне (поне ако браузера поддържа HTML5 video).

ПП: В момента пътя до директорията за кеширане е хардкодната, така че направo натискате "Next"
« Последна редакция: Aug 21, 2013, 16:50 от clovenhoof »
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Първото ми Уеб приложение
« Отговор #12 -: Aug 21, 2013, 16:57 »
Пу за мене!

Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Re: Първото ми Уеб приложение
« Отговор #13 -: Aug 21, 2013, 17:10 »
 :)
С рефреш и отново не стана ли ?
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Първото ми Уеб приложение
« Отговор #14 -: Aug 21, 2013, 17:16 »
:)
С рефреш и отново не стана ли ?

Първия път всичко минава. После избирам Pictures, после пак се връщам на Video и вече каквото и да напиша ми дава грешка.
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше