Вы не зашли.

#1 

ZloVeЩиЙ
Профи
Имя: Andrew
Зарегистрирован: 2008-01-15
Сообщений: 6702
На форуме: 1484 час.
Репутация: 448 (85%) ±
Инфо  Вебсайт  Написать

Опять я со своими вопросами,
даже тему отдельную создал, потому как по ходу изучения и практики php языка они будут появляться.

На этот раз решил написать простенькую форму регистрации... практика, практика и еще раз практика.
Если без проверки то все ок, а когда пытаюсь прикрутить проверку, то сообщения об ошиб[ке|ках] выводятся, но данные все равно записываются в БД.

$connect = mysql_connect('localhost','root') or die(mysql_error());
mysql_select_db('dbname'); //успешный коннект

if (isset($_POST['reg'])) {   

$login = $_POST['login'];
$password = $_POST['password']; // нажали кнопку, присвоили значения полей переменным

  if($login != '' && $password != '') { // а не пустые ли поля? если не пустые проверяем дальше
   if ((strlen($login) >= 3) and (strlen($login) <= 33)) { // размер от 3 до 33 символов ну и проверка ниже
    $login = stripslashes($login);
    $login = html_entity_decode($login);
    $login = strip_tags($login);
    }
    else {echo "Вы ввели не корректные данные в поле Логин";}   
   
     if((strlen($password) >= 3) and (strlen($password) <= 33)) { // аналогично с полем пароль + шифруем его в md5
     $password = stripslashes($password);
                 $password = html_entity_decode($password);
                 $password = strip_tags($password);
     $password = md5('password');
     }
     else {echo "Вы ввели не корректные данные в поле Пароль";}
  }

  else {echo "Заполните обязательные поля.";}

}

1. Как и куда прикрутить запись в БД, когда данные введены верно!?

$query = mysql_query("INSERT INTO users VALUES('','$login','$password')")
or die(mysql_error());

2. На что еще можно проверить поля кроме как к-ва символов и наличия тегов?

Отредактированно ZloVeЩиЙ (2013-11-25 23:50:47)


[img]http://imgs.su/tmp/1315727312-616.jpg[/img] - use it.

Неактивен

#2 

ZloVeЩиЙ
Профи
Имя: Andrew
Зарегистрирован: 2008-01-15
Сообщений: 6702
На форуме: 1484 час.
Репутация: 448 (85%) ±
Инфо  Вебсайт  Написать

Такой вариант нашелся с проверкой true|false:

Но уж через чур он объёмный, можно как то проще это все дело проверять?


[img]http://imgs.su/tmp/1315727312-616.jpg[/img] - use it.

Неактивен

#3 

Trilby
miss me?
Имя: Алексей
Откуда: Default City
Зарегистрирован: 2006-08-01
Сообщений: 8472
На форуме: 797 час.
Репутация: 765 (94%) ±
Инфо  Вебсайт  Написать

мог сильно накосячить, и вообще много ошибок допустить. Если что, также готов выслушать критику в адрес своей реализации))

Неактивен

#4 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1543
На форуме: 525 час.
Репутация: 110 (88%) ±
Инфо  Написать

не плохо было бы еще делать trim() с логином и паролем, чтобы убрать случайные пробелы) а пароль хранить в двойном md5()
ZloVeЩиЙ, на Хабре достаточно подробно расписан простой вариант процесса регистрации/авторизации, может пригодится)

Отредактированно TheDark (2013-11-27 16:46:27)

Неактивен

#5 

ZloVeЩиЙ
Профи
Имя: Andrew
Зарегистрирован: 2008-01-15
Сообщений: 6702
На форуме: 1484 час.
Репутация: 448 (85%) ±
Инфо  Вебсайт  Написать

Такой вопрос...
1. Можно ли на php вытащить скриншот из видео которое лежит на youtu.be имея ссылку?
2. Можно таких скриншотов сделать\вытащить несколько?

Такой ответ...

Отредактированно ZloVeЩиЙ (2013-12-06 02:31:09)


[img]http://imgs.su/tmp/1315727312-616.jpg[/img] - use it.

Неактивен

#6 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1543
На форуме: 525 час.
Репутация: 110 (88%) ±
Инфо  Написать

У меня вопрос не сложный, но я все никак не разберусь. Нужно обработать форму, занести данные в MySQL и вывести их на странице без перезагрузки самой страницы.
Как я понимаю, тут нужен AJAX. Но я с ним не работал и, вероятно, тут нужен более комплексный подход. Но времени у меня нет, а решение нужно.

Форма обычная, а данные на странице выводятся через mysql_query() и mysql_fetch_assoc() соответственно. Вопрос заключается в том, как обработать данные из $_POST не перезагружая страницу?

Форма, если что)

Отредактированно TheDark (2013-12-15 00:46:39)

Неактивен

#7 

Trilby
miss me?
Имя: Алексей
Откуда: Default City
Зарегистрирован: 2006-08-01
Сообщений: 8472
На форуме: 797 час.
Репутация: 765 (94%) ±
Инфо  Вебсайт  Написать

google://ajax form example
Там все довольно просто... Подключается jQuery, с его помощью отправляются данные сервак (php-скрипт), там идет обработка/колдовство с mysql/возвращение данных... Возвращенные данные заносятся в форму. При минимальных знаниях английского все можно понять без документации даже

Неактивен

#8 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1543
На форуме: 525 час.
Репутация: 110 (88%) ±
Инфо  Написать

Как можно сделать, чтобы содержимое страницы http://site.ru/?page=about было доступно по адресу http://site.ru/about?
Понимаю, дело с .htaccess, но если честно, не знаю как сформулировать запрос в гугле. Кто в курсе как это правильно делается?

Неактивен

#9 

Trilby
miss me?
Имя: Алексей
Откуда: Default City
Зарегистрирован: 2006-08-01
Сообщений: 8472
На форуме: 797 час.
Репутация: 765 (94%) ±
Инфо  Вебсайт  Написать

первые две строки один раз в коде должны быть...

Отредактированно Trilby (2013-12-17 19:00:29)

Неактивен

#10 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1543
На форуме: 525 час.
Репутация: 110 (88%) ±
Инфо  Написать

Trilby, круто) а как быть с ссылками, которые сформируются в будущем? скажем, появится статья с id=10 и в обычном случае я бы вывел ее как post.php?id=10... как сделать ее доступной по адресу, например, site.com/10.html?
или, что еще лучше - я в админке сделаю автоматический транслит названия статьи (чтобы "Вдохновение для дизайнера" превратилось в "vdohnovenie_dlya_dizainera") и помещу этот результат в бд. таким образом статью можно будет выводить как post.php?title=vdohnovenie_dlya_dizainera. Как сделать, чтобы адрес был вида site.com/vdohnovenie_dlya_dizainera ? и так для каждой новой статьи в будущем?

не открывать же каждый раз .htaccess и вносить правки?)

UPD. Нашел. Решение (там где о человеко-понятных урлах).

Отредактированно TheDark (2013-12-17 19:44:05)

Неактивен

#11 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1543
На форуме: 525 час.
Репутация: 110 (88%) ±
Инфо  Написать

Для перебора данных массива использую foreach:

В результате все данные выводятся и разделяются запятой. Последний элемент массива тоже. Как сделать так, чтобы к последнему значению запятая не добавлялась? Тут надо как-то с ключем поиграться и там, где он последний применить правило. Но как сделать не знаю (:
Подскажите, плиз, как решить задачку)

Неактивен

#12 

Trilby
miss me?
Имя: Алексей
Откуда: Default City
Зарегистрирован: 2006-08-01
Сообщений: 8472
На форуме: 797 час.
Репутация: 765 (94%) ±
Инфо  Вебсайт  Написать

Не нужно вывод делать циклом. Давно изобретен join.

Если какие-то задачи будут, где надо выделить последний элемент в итерации, то здесь обычный if-else поможет:
http://stackoverflow.com/questions/1070 … reach-loop

Отредактированно Trilby (2014-01-07 23:31:18)

Неактивен

#13 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1543
На форуме: 525 час.
Репутация: 110 (88%) ±
Инфо  Написать

Trilby, нет, implode для меня не вариант. я привел упрощенный вариант цикла. на деле мне нужно с каждым элементом воздействовать, а не просто получить список.

Неактивен

#14 

Trilby
miss me?
Имя: Алексей
Откуда: Default City
Зарегистрирован: 2006-08-01
Сообщений: 8472
На форуме: 797 час.
Репутация: 765 (94%) ±
Инфо  Вебсайт  Написать

Сообщение от TheDark:

Trilby, нет, implode для меня не вариант. я привел упрощенный вариант цикла. на деле мне нужно с каждым элементом воздействовать, а не просто получить список.

я уже переписал свое сообщение. Там и на это ответ

Отредактированно Trilby (2014-01-07 23:31:52)

Неактивен

#15 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1543
На форуме: 525 час.
Репутация: 110 (88%) ±
Инфо  Написать

Trilby, о, спасибо) я уже придумал вариант, используя array_pop() и array_push(), но в примерах нашелся вариант компактнее)

Отредактированно TheDark (2014-01-07 23:39:42)

Неактивен

#16 

Dimitry
Ниндзя по зачистке капусты
Имя: Дмитрий
Откуда: Германия
Зарегистрирован: 2003-04-18
Сообщений: 18773
На форуме: 1814 час.
Репутация: 1242 (99%) ±
Инфо  Вебсайт  Написать

ну ещё как вариант

$out="";
foreach ($array as $value) {
    if($out) $out.=","; $out.=$value;   
}
echo $out;


Моя анкета на vmeste.eu
Если сообщение Вам помогло, отблагодарите участника повысив его репутацию!
PS. То, что нас не убивает, то делает нас сильнее!

Неактивен

#17 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1543
На форуме: 525 час.
Репутация: 110 (88%) ±
Инфо  Написать

Не совсем из области PHP, но очень рядом) Вопрос по кодировке MySQL.
в install.php формируется запрос в бд о создании таблицы:

и выполяется mysql_query($create_table_pages)
В случае успеха, в эту таблицу сразу же заносятся стандартные данные (текст) на русском языке.
Но в таблицу все попадает в виде ???????. Кодировку я поставил cp1251, в бд тоже значится cp1251_general_ci
Пробовал к каждому полю дописывать CHARACTER SET cp1251 COLLATE cp1251_general_ci - эффекта ноль.

Интересно, что на локалке все нормально и таких траблов не возникает, а вот стоит залить в нет...) Кто знает как пофиксить?

UPD. Решил, может кому пригодится. После mysql_connect и mysql_select_db вставил:

Таким образом данные занеслись в бд правильно, но вывод все-равно был со знаками вопроса. Чтоб исправить нужно было в файле, где формируется подключение к бд (скажем, config.php) добавить:

Отредактированно TheDark (2014-01-10 16:32:24)

Неактивен

#18 

ZloVeЩиЙ
Профи
Имя: Andrew
Зарегистрирован: 2008-01-15
Сообщений: 6702
На форуме: 1484 час.
Репутация: 448 (85%) ±
Инфо  Вебсайт  Написать

cp1251 ?
Все пытаются наоборот на UTF-8 перевести свои сайты !


[img]http://imgs.su/tmp/1315727312-616.jpg[/img] - use it.

Неактивен

#19 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1543
На форуме: 525 час.
Репутация: 110 (88%) ±
Инфо  Написать

ZloVeЩиЙ, пока такой потребности не вижу...) привык как-то))

Неактивен

#20 

TheDark
Знаток
Зарегистрирован: 2010-08-01
Сообщений: 1543
На форуме: 525 час.
Репутация: 110 (88%) ±
Инфо  Написать

пишу сюда, так как с регулярками почти не знаком, а ради этого изучать их не хочется)
как сделать так, чтобы текст, скажем, http://site.com/ автоматически становился ссылкой? Например, человек пишет комментарий на сайте и указывает такую ссылку) Нужно, чтобы при выводе комментария подобный текст становился ссылкой, причем, нечто вроде: /away.php?url=http://site.com/
кто поможет?

Неактивен

[ Generated in 0.009 seconds, 9 queries]