Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Guest book
Форумы портала PHP.SU » Объявления » FreeLance » Guest book

Страниц (1): [1]
 

1. T-Mon - 24 Ноября, 2007 - 14:43:47 - перейти к сообщению
Все те тупые вопросы, которые я задавал участникам данного форума заключались в учебной разработке данного кода, обратите внимание, что:
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>
2. Snic - 24 Ноября, 2007 - 15:21:57 - перейти к сообщению
очень интересно как раз я собирался гостевую делать
доработать чуток и good
думаю твой код использовать в своей CMS можно?\n\n(Добавление)
Первое что надо доработать это NULL
при null'e он бахает все базу а не обнуляет свою таблицу это очень неудобно Как думаешь?
3. T-Mon - 24 Ноября, 2007 - 15:28:55 - перейти к сообщению
Только нужно будет админские права настроить... ну и еще более жестко проверять на наличие html в коде, а то будут проблемы вывода. А так, юзай.\n\n(Добавление)
Мля, это я провтыкал... там table должно быть, а не дб)))\n\n(Добавление)
Как при нажатии кнопки Submit менять УРЛ, чтоб $_GET не получало команду обнуляться таблицу, после предыдущего обнуления во время печатания нового сообщения. То есть после обнуление базы, если писать сообщения, предыдущее будет удаляться, а новое с параметром id=1 будет внесено в базу.
4. Snic - 24 Ноября, 2007 - 16:26:02 - перейти к сообщению
Вот чуток поправил для тебя твою GB смотри дальше твори выдумывай пробуй.
Файл прикрепляю.
5. valenok - 24 Ноября, 2007 - 17:02:47 - перейти к сообщению
GNU ?
6. Infuzzer - 24 Ноября, 2007 - 17:54:29 - перейти к сообщению
GPL
7. valenok - 24 Ноября, 2007 - 17:58:11 - перейти к сообщению
тоже самое
8. Infuzzer - 24 Ноября, 2007 - 19:21:36 - перейти к сообщению
Не тоже самое.
9. valenok - 24 Ноября, 2007 - 20:39:50 - перейти к сообщению
Цитата:

GNU General Public License (Универсальная общедоступная лицензия GNU или Открытое лицензионное соглашение GNU) — возможно, наиболее популярная лицензия на свободное программное обеспечение, созданная в рамках проекта GNU в 1988 г. Её также сокращённо называют GNU GPL или даже просто GPL, если из контекста понятно, что речь идёт именно о данной лицензии (существует довольно много других лицензий, содержащих слова «general public license» в названии). Вторая версия этой лицензии была выпущена в 1991 году, третья версия, после многолетней работы и длительной дискуссии — в 2007 году. GNU Lesser General Public License (LGPL) — это модифицированная версия GPL, предназначенная для некоторых библиотек ПО.

Цель GNU GPL — предоставить пользователю права копировать, модифицировать и распространять (в том числе на коммерческой основе) программы (что по умолчанию запрещено законом об авторских правах), а также гарантировать, что и пользователи всех производных программ получат вышеперечисленные права. Принцип «наследования» прав называется «копилефт» (транслитерация английского «copyleft») и был придуман Ричардом Столлмэном. По контрасту с GPL, лицензии собственнического ПО очень редко дают пользователю такие права и обычно, наоборот, стремятся их ограничить, например, запрещая восстановление исходного кода.


http://ru[dot]wikipedia[dot]org/wiki/GNU[dot][dot][dot]l_Public_License

Да я знаю что не юникс
10. T-Mon - 24 Ноября, 2007 - 21:47:13 - перейти к сообщению
Да делайте с кодом, что хотите, мне как-то все равно, будет правда приятно если копирайте поставите... правда кому это надо?
P.S. А книшу я еще сам модифицирую.\n\n(Добавление)
В планах:
1. Инсталлятор программы
2. Придания элементарного дизайна
3. Создание и редактирование прав модераторов в спецпанели.
4. Редактирование\удаление сообщений в спецпанели.
5. Базовые настройки программы в спецпанели.
6. Логи действий модераторов.
7. Корректное отображение сообщений вне зависимости от длины слов\запрет на введение слов длиннее позволенного.
8. Запрет на использование html в имени\сообщение.
9. Расширенное количество bb-кодов.
10. Разделение всего блока сообщений на страницы.
11. Поддержка нескольких языков и оформлений.\n\n(Добавление)
12. Мат-фильтр.
11. valenok - 24 Ноября, 2007 - 23:21:23 - перейти к сообщению
3,12,4,6,7(ч2),8
вычеркните и не имейте себе мозг
12. T-Mon - 24 Ноября, 2007 - 23:31:10 - перейти к сообщению
Хмм, для этого я и делаю это, чтоб немного поиметь себе мозг и чему-небудь научиться.
13. Infuzzer - 25 Ноября, 2007 - 00:44:42 - перейти к сообщению
valenok
Вот видишь Улыбка
GNU General Public License (GPL)
XD

 

Powered by ExBB FM 1.0 RC1