В этой статье я хочу затронуть тему баз данных. Практически на всех сайтах есть необходимость в хранения информации в базе. Это может быть логин и пароль пользователя или какие-то его данные. Даже там, где нужно сохранить всего лишь одно слово, многие программисты применяют MySql. Я считаю, что это не очень то удобно.
Во-первых нужно создавать отдельную таблицу, во вторых к базе данных нужно подключаться, в третьих при переносе сайта, например, на новый хостинг, нужно делать дамп базы. В четвертых, очень часто возникают конфликты с кодировкой сайта и данных, хранящихся в базе на MySql, и наконец в пятых, такая база ВСЕГДА будет являться самым уязвимым местом для хакерских атак.
Начинающие программисты, да я и сам в свое время, научившись хранить данные в мускуле, не считают нужным рассматривать альтернативные варианты. Хотя есть ведь куда более удобные способы.
Предлагаю в качестве примера рассмотреть ситуацию, когда скажем нужно сохранить ник пользователя User1 и его пароль, например 123456. Для начала, на один уровень выше корня создадим директорию bd. Или ее можно создать в самом корне, или в любом другом каталоге. В этой директории создадим файл htaccess с инструкциями Deny from all Таким образом мы запретим доступ к этой директории напрямую из адресной строки.
После создадим там файл bd.dat с правами на запись 0777. У нас получился путь до базы ./bd/bd.dat
Данные в файле можно хранить в любом удобном формате, например через двоеточие, кому как удобно, в качестве примера:
User1:password1 User2:password2 User3:password3
Чтобы записать эти данные, например после регистрации нового пользователя, мы можем выполнить следующий php код. Пусть данные приходят в формате $_POST["username"] и $_POST["password"]$new_user = trim(strip_tags($_POST["user"])); // принимаем имя юзера, отрезав пробелы и возможные теги$new_pass = trim(strip_tags($_POST["pass"])); // принимаем пароль, отрезав пробелы и возможные теги$sault = "123"; // задаем соль для пароля, она может быть любой, // для усложнения шифровки пароля$new_pass = md5($sault.$new_pass); // шифруем пароль с солью$fp = fopen("./bd/bd.dat","a+"); // открываем файл для записи в конец файла$fw = fwrite($fp, $new_user.":".$new_pass); // записываем данные в файл$fc = fclose($fp); // закрываем файл
Таким образом мы приняли данные, введенные пользователем и сохранили их в файл. Быстро, удобно, надежно и просто. Как доставать данные из файла и как редактировать, напишу в следующих статьях.