PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (6): « 1 2 3 [4] 5 6 »

> Найдено сообщений: 81
T-Mon Отправлено: 26 Ноября, 2007 - 20:50:16 • Тема: Распарсить выражение "topic1234.html" • Форум: Регулярные выражения

Ответов: 12
Просмотров: 637
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $string="topic1234.html";
  3. $remove=array("/topic/","/\\.html/");
  4. $string=preg_replace($remove,"",$string);
  5. echo $string;
  6. ?>
\n\n(Добавление)
Кстати, форум не правильно читает сообщение, по крайней мере в теге php, ибо мне пришлось ставить вместо "\" - "\\", чтоб отобразился один backslash.
T-Mon Отправлено: 26 Ноября, 2007 - 19:09:42 • Тема: Введение недопустимых символов в поле сообщения • Форум: Программирование на PHP

Ответов: 17
Просмотров: 1090
А почему мой метод непрвилен (mysql_escape_string(htmlspecialchars($name,ENT_QUOTES)))?
Странно, а что вам не понравилось в моей запросе, вроде бы все корректно работало и работает... что нужно изменить и почему?
P.S. Книга Зольникова Д.С. "Как самостоятельно создать сайт любой сложности".
T-Mon Отправлено: 26 Ноября, 2007 - 14:50:48 • Тема: Введение недопустимых символов в поле сообщения • Форум: Программирование на PHP

Ответов: 17
Просмотров: 1090
PHP:
скопировать код в буфер обмена
  1.         $name=mysql_escape_string(htmlspecialchars($name,ENT_QUOTES));
  2.         $post=mysql_escape_string(htmlspecialchars($post,ENT_QUOTES));
  3.         $query="INSERT INTO `$table` (name, post) VALUES ('$name','$post')";
  4.         mysql_query($query,$data);

Воспользовался этим кодом, но, увы, в базу данных ничего не добавляется...
Если же писать нормальное сообщение, то все рабоет как следует.\n\n(Добавление)
Спасибо всем и прошу прощения.
Вот снова проглядел! Ведь у меня в БД на размер имени стоит ограничение в 20 символов, а ведь после приведения строки в надлежащий вид кол-во символов может расти... а я это не учел, вот по этому и не добавлялось.\n\n(Добавление)
Только хотелось бы узнать: обязательно ли применение mysql_escape_string после htmlspecialchars, насколько я понял работу они выполняют одинаковую..?
T-Mon Отправлено: 25 Ноября, 2007 - 11:45:37 • Тема: Введение недопустимых символов в поле сообщения • Форум: Программирование на PHP

Ответов: 17
Просмотров: 1090
К примеру:
",$,',\,&

Юзаю функцию типа:
PHP:
скопировать код в буфер обмена
  1. $name=isset($_POST['name'])?$_POST['name']:'';
  2. $post=eregi_replace('"','\"',$post);


Но потом данные не записываются в базу. Как с этим правильно манипулировать?
T-Mon Отправлено: 24 Ноября, 2007 - 23:31:10 • Тема: Guest book • Форум: FreeLance

Ответов: 12
Просмотров: 7611
Хмм, для этого я и делаю это, чтоб немного поиметь себе мозг и чему-небудь научиться.
T-Mon Отправлено: 24 Ноября, 2007 - 21:47:13 • Тема: Guest book • Форум: FreeLance

Ответов: 12
Просмотров: 7611
Да делайте с кодом, что хотите, мне как-то все равно, будет правда приятно если копирайте поставите... правда кому это надо?
P.S. А книшу я еще сам модифицирую.\n\n(Добавление)
В планах:
1. Инсталлятор программы
2. Придания элементарного дизайна
3. Создание и редактирование прав модераторов в спецпанели.
4. Редактирование\удаление сообщений в спецпанели.
5. Базовые настройки программы в спецпанели.
6. Логи действий модераторов.
7. Корректное отображение сообщений вне зависимости от длины слов\запрет на введение слов длиннее позволенного.
8. Запрет на использование html в имени\сообщение.
9. Расширенное количество bb-кодов.
10. Разделение всего блока сообщений на страницы.
11. Поддержка нескольких языков и оформлений.\n\n(Добавление)
12. Мат-фильтр.
T-Mon Отправлено: 24 Ноября, 2007 - 15:28:55 • Тема: Guest book • Форум: FreeLance

Ответов: 12
Просмотров: 7611
Только нужно будет админские права настроить... ну и еще более жестко проверять на наличие html в коде, а то будут проблемы вывода. А так, юзай.\n\n(Добавление)
Мля, это я провтыкал... там table должно быть, а не дб)))\n\n(Добавление)
Как при нажатии кнопки Submit менять УРЛ, чтоб $_GET не получало команду обнуляться таблицу, после предыдущего обнуления во время печатания нового сообщения. То есть после обнуление базы, если писать сообщения, предыдущее будет удаляться, а новое с параметром id=1 будет внесено в базу.
T-Mon Отправлено: 24 Ноября, 2007 - 14:43:47 • Тема: Guest book • Форум: FreeLance

Ответов: 12
Просмотров: 7611
Все те тупые вопросы, которые я задавал участникам данного форума заключались в учебной разработке данного кода, обратите внимание, что:
PHP:
скопировать код в буфер обмена
  1. $host="localhost";
  2. $login="root";
  3. $pass="";
  4. $db_name="db_book";
  5. $table="data";

настраивается под свои параметры СУБД и под свой вкус. Некоторые участки кода желательно закомментировать, так как они подразумевают нессанкционированный доступ к базе данных.
Код книги:
PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <title>Guestbook</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=cp1251">
  5.  
  6. </head>
  7. <body>
  8. <form method="post" accept-charset="cp1251">
  9. Your name:<br>
  10. <input type="text" size=40 name="name">
  11. <br>
  12. Your message:<br>
  13. <textarea name="post" rows=10 cols=30></textarea>
  14. <br>
  15. <input type="submit" value="Post a message">
  16. <input type="hidden" name="input" value='1'>
  17. <br>
  18. </form>
  19.  
  20. <?PHP
  21. /*Very simple and without any special design guest book
  22. with only possibility to post messages and names.
  23. It doesn't support any cookies or sessions - that means
  24. that there is no special possibility to moderate it.
  25. There are some moderate options to Delete messages and
  26. to Reset the whole Database, but it is available for
  27. every visitor, so i strictly advise your to comment it!
  28. The best way to moderate guest book is to use phpmyadmin*/
  29.  
  30. // Some otions of MySQL connection
  31. $host="localhost";
  32. $login="root";
  33. $pass="";
  34. $db_name="db_book";
  35. $table="data";
  36. //Connecting to MySQL and customizing encoding detection
  37. $data=mysql_connect($host,$login,$pass) or die ("Cannot connect mysql");
  38. mysql_query ("set character_set_client='cp1251'");
  39. mysql_query ("set character_set_results='cp1251'");
  40. mysql_query ("set collation_connection='cp1251_general_ci'");
  41. //Reseting guestbook if special link clicked (Comment it!!!)
  42. $action=isset($_GET['action'])?$_GET['action']:'';
  43. if ($action=="NULL")
  44. {
  45.         $query="DROP DATABASE IF EXISTS `$db_name`;";
  46.         mysql_query($query,$data);
  47. }
  48. //Creating and selecting the database if it doesn't exist
  49. $query="CREATE DATABASE IF NOT EXISTS `$db_name`;";
  50. mysql_query($query,$data);
  51. mysql_select_db($db_name,$data) or die ("Cannot select the database");
  52. //Creating the table if it doesn't exist
  53. $query="CREATE TABLE IF NOT EXISTS `$table` (
  54. `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  55. `name` VARCHAR( 20 ) CHARACTER SET cp1251 COLLATE cp1251_bin NOT NULL ,
  56. `post` VARCHAR( 500 ) CHARACTER SET cp1251 COLLATE cp1251_bin NOT NULL
  57. );";
  58. mysql_query($query,$data);
  59. //Deleting message which is chosen (doesn't decrease id in mysql)
  60. $id=isset($_GET['id'])?$_GET['id']:'';
  61. if ($id)
  62. {
  63.         $query="DELETE FROM `$table` WHERE `id`=$id";
  64.         mysql_query($query,$data);
  65. }
  66. //Reading the form and checking for a correct post
  67. $name=isset($_POST['name'])?$_POST['name']:'';
  68. $post=isset($_POST['post'])?$_POST['post']:'';
  69. $test=1;
  70. if (isset($_POST['input']))
  71. {
  72. if (strlen($name)<1)
  73. {
  74.         echo ("You haven't specified your name!<br><br>");
  75.         $test=0;
  76. }
  77. elseif ((strlen($name)>20)&&($test))
  78. {
  79.         echo ("Your name is too long!<br><br>");
  80.         $test=0;
  81. }
  82. elseif ((strlen($post)<1)&&($test))
  83. {
  84.         echo ("You haven't written the message!<br><br>");
  85.         $test=0;
  86. }
  87. elseif ((strlen($post)>500)&&($test))
  88. {
  89.         echo ("Your message is too long!<br><br>");
  90.         $test=0;
  91. }
  92. elseif ($test)
  93. {
  94. //Inserting data inside the table if post is a correct one
  95. $query="INSERT INTO `$table` (name, post) VALUES ('$name','$post')";
  96. mysql_query($query,$data);
  97. }
  98. }
  99. //Reading and showing all storaged posts
  100. $query="SELECT id,name,post FROM `$table` ORDER BY id DESC";
  101. $result=mysql_query($query,$data);
  102. $counter=0;
  103. while ($name=mysql_fetch_assoc($result))
  104. {
  105.         $counter++;  //Counting number of posts
  106.         $current="id";
  107. foreach ($name as $index => $value)
  108. {
  109.         if ($index=="id") //Showing post id
  110.         {
  111.                 echo "<b>Post ID: $value ";
  112.                 $id=$value;
  113.         }
  114.         elseif ($index=="name") //Showing post author
  115.         {
  116.                 echo "Post author: $value</b>";
  117.                 echo " <a href='./index.php?id=$id'>[Delete post]</a><br>"; //And showing 'Delete' link (Better to comment it!)
  118.         }
  119.         else
  120.         {
  121.                 //Parsing some bb codes into html
  122.                 $value=str_replace('[b]','<b>',$value);
  123.         $value=str_replace('[B]','<b>',$value);
  124.         $value=str_replace('[/b]','</b>',$value);
  125.         $value=str_replace('[/B]','</b>',$value);
  126.         $value=str_replace('[i]','<i>',$value);
  127.         $value=str_replace('[I]','<i>',$value);
  128.         $value=str_replace('[/i]','</i>',$value);
  129.         $value=str_replace('[/I]','</i>',$value);
  130.         $value=str_replace('[u]','<u>',$value);
  131.         $value=str_replace('[U]','<u>',$value);
  132.         $value=str_replace('[/u]','</u>',$value);
  133.         $value=str_replace('[/U]','</u>',$value);
  134.         //Showing our message
  135.                 echo "$value<br><hr>";
  136.         }
  137. }
  138. }
  139. //Showing number of posts
  140. if (!$counter) {
  141.         echo "<i>The guestbook is empty!</i>";
  142.         }
  143.         else
  144.         {
  145.                 echo "The total number of posts: <b>$counter</b>";
  146.         }
  147. //'Reset guestbook' link (Drops database and resets id count) Better to comment it until it's needed!!!
  148. echo "<br><br><a href='./index.php?action=NULL'><b><i>Reset guestbook (Carefully! Drops database!)</b></i></a>";
  149.  
  150. ?>
  151. </body>
  152. </html>
T-Mon Отправлено: 19 Ноября, 2007 - 22:16:50 • Тема: Перенос строки и скролинг • Форум: HTML, Дизайн & CSS

Ответов: 14
Просмотров: 12350
А все эти стили, кстати, нафиг не нужны, раздельные символы и без них переносятся, а нераздельные - никак не переносятся.

(Добавление)
Да, тему можно закрыть.
T-Mon Отправлено: 19 Ноября, 2007 - 22:12:37 • Тема: Перенос строки и скролинг • Форум: HTML, Дизайн & CSS

Ответов: 14
Просмотров: 12350
ППЦ, не глумись, признаю, я додик. Додумался же вводить нераздельные символы, 2 дня вводил, даже не задумывался... а только что реально спохватился, ппц. Правда ИЕ и нераздельные переносит, но не в этом суть, извини за нервотрепку!
T-Mon Отправлено: 19 Ноября, 2007 - 21:57:33 • Тема: Перенос строки и скролинг • Форум: HTML, Дизайн & CSS

Ответов: 14
Просмотров: 12350
Не имеет значение, все это я добавил позже. Данный код также не работает:
PHP:
скопировать код в буфер обмена
  1. <style>
  2.    .wrap-overflow {
  3.    overflow: auto;
  4.    word-wrap: break-word;
  5.    white-space: pre-wrap;
  6.    white-space: -moz-pre-wrap !important;
  7.    white-space: -o-pre-wrap;
  8.    white-space: -pre-wrap;
  9.    }
  10.   </style>
  11.  </head>
  12.  <body>
  13.  <form method="post" accept-charset="cp1251">
  14.  Your name:
  15.  
  16.  <input type="text" size=40 name="name">
  17.  
  18.  
  19.  Your message:
  20.  
  21.  <textarea class="wrap-overflow" name="post" rows=10 cols=30></textarea>
T-Mon Отправлено: 19 Ноября, 2007 - 21:39:29 • Тема: Перенос строки и скролинг • Форум: HTML, Дизайн & CSS

Ответов: 14
Просмотров: 12350
PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <title>Guestbook</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=cp1251">
  5. <style>
  6.   .wrap-overflow {
  7.   overflow: auto;
  8.   word-wrap: break-word;
  9.   white-space: pre-wrap;
  10.   white-space: -moz-pre-wrap !important;
  11.   white-space: -o-pre-wrap;
  12.   white-space: -pre-wrap;
  13.   }
  14.  </style>
  15. </head>
  16. <body>
  17. <form method="post" accept-charset="cp1251">
  18. Your name:<br>
  19. <input type="text" size=40 name="name">
  20. <br>
  21. Your message:<br>
  22. <textarea class="wrap-overflow" style="post" name="post" rows=10 cols=30 overflow="auto"></textarea>
  23. <br>
  24. <input type="submit" value="Post a message">
  25. <input type="hidden" name="input" value='1'>
  26. <br>
  27. </form>
  28. </body>
  29. </html>

Вот структура, ни в Опере, ни в Фоксе не работает...
T-Mon Отправлено: 18 Ноября, 2007 - 22:46:05 • Тема: Перенос строки и скролинг • Форум: HTML, Дизайн & CSS

Ответов: 14
Просмотров: 12350
Хмм... не работает.
T-Mon Отправлено: 18 Ноября, 2007 - 21:36:56 • Тема: Перенос строки и скролинг • Форум: HTML, Дизайн & CSS

Ответов: 14
Просмотров: 12350
Между тэгами <head> поставил:
PHP:
скопировать код в буфер обмена
  1. <style>
  2. textarea {
  3. overflow: auto;
  4. word-wrap: break-word;
  5. white-space: pre-wrap;
  6. white-space: -moz-pre-wrap !important;
  7. white-space: -o-pre-wrap;
  8. white-space: -pre-wrap;
  9. }
  10. </style>

А в тэг <textarea> добавил style="textarea", но ничего не изменилось...
T-Mon Отправлено: 18 Ноября, 2007 - 17:43:32 • Тема: Перенос строки и скролинг • Форум: HTML, Дизайн & CSS

Ответов: 14
Просмотров: 12350
Что-то я не понял, что конкретно нужно вставить в, чтоб тэг <textarea>...

Страниц (6): « 1 2 3 [4] 5 6 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB