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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Я только учусь. Помогите пожалуйста допилить код

 PHP.SU

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


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

> Описание: Нужно в существующий код добавить некоторые функции
ghjy06
Отправлено: 31 Мая, 2013 - 15:31:12
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)

[+]


Существует форма, отправляющая данные, которые заносятся в массив $fields, они обрабатываются и добавляется в базу данных:
Стоят такие задачи:"Проделать тоже самое, только:1. чтобы автоматом к значению "author" добавлялось слово Гость и заносилось в базу не просто "Сергей", а "Сергей Гость"; 2. Если в поле "e-mail" формы указаны какие-то значения, которые не могут содержаться в e-mail adrese вывести (/*№#!?%$^~&): "Вы ввели недопустимый e-mail, вернитесь на предыдущую страницу и напишите настоящий e-mail и кнопка возврата на предыдущую страницу; 3. Если в поле e-mail нет знака "@" вывести: "Вы ввели недопустимый e-mail, вернитесь на предыдущую страницу и напишите настоящий e-mail и кнопка возврата на предыдущую страницу; 4. Если в поле author введены недопустимые значения например "admin","administrator", "Автор", "author", (/*№#!?%$^~&), или, если введены цифры или имя меньше 2-х букв вывести: "Вы ввели недопустимое имя, вернитесь на предыдущую страницу и напишите настоящее имя и кнопка возврата на предыдущую страницу;
Можно еще на свое усмотрение посоветовать что-то добавить в целях безопасности, буду признателен.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $fields = array(
  3.                                 "author" => "",
  4.                                 "mail" => "",
  5.                                 "text" => "",
  6.                                 "pr" => "",
  7.                                 "sub_com" => "",
  8.                                 "id"=> ""
  9.                                 );
  10. foreach (array_keys($fields) as $k) {
  11.   if (isset($_POST[$k])) {
  12.     $value = trim($_POST[$k]);
  13.     if (!$value) {
  14.       continue;
  15.     }
  16.         if ($fields[author] == "Ваше имя" or $fields[mail] == "Ваш e-mail"){
  17.         exit ("<div class='com'>Вы ввели не всю информацию, вернитесь назад и заполните все поля.</div> <br> <input id='send' type='button' value='Вернуться назад' onclick='window.history.go(-1)'>");
  18.         }
  19.         }
  20.     $fields[$k] = htmlspecialchars($value);
  21.   }
  22. $result = mysql_query ("SELECT sum FROM comments_settings",$db);
  23. $myrow = mysql_fetch_array($result);
  24.  
  25. if ($pr == $myrow["sum"])
  26. {
  27. $date = date("Y-m-d");
  28. $result2 = mysql_query ("INSERT INTO comments (post,author,text,date,mail) VALUES ('$fields[id]','$fields[author]','$fields[text]','$date','$fields[mail]')",$db);
  29. $address = "admin@site.com";
  30. $subject = "Новый комментарий на блоге";
  31. $result3 = mysql_query ("SELECT title FROM data WHERE id='$id'",$db);
  32. $myrow3 = mysql_fetch_array ($result3);
  33. $post_title = $myrow3["title"];
  34. $message = "Появился комментарий к посту - ".$post_title."\nКомментарий добавил(а): ".$author."\nТекст комментария: ".$text."\nСсылка на заметку: http://site.com/post.php?id=".$id."";
  35. mail($address,$subject,$message,"Content-type:text/plain; Charset=utf-8\r\n");
  36.  
  37. echo "<html><head>
  38. <meta http-equiv='Refresh' content='0; URL=http://site.com/post.php?id=$id'>
  39. </head></html>";
  40. exit();
  41. }
  42. else
  43. {
  44. exit ("<div class='com'>Вы ввели неверную сумму цифр с картинки на предыдущей странице.</div> <br> <input id='send' type='button' value='Вернуться назад' onclick='window.history.go(-1)'>");
  45. }
  46. ?>

(Добавление)
Все 4 задания это было бы идеально, но если смотреть реально на вещи, то самым актуальным является задача №1.
 
 Top
Проклятый принц
Отправлено: 31 Мая, 2013 - 15:53:01
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)

[+]


4) Через preg_match()
(Добавление)
2 и 3 тоже, как 4, решается этой же функцией.
(Добавление)
1 пункт не особо понял.
В общем, как я понял, чтобы к переменной (например, автор) добавилось дополнительное значение (гость). Если так, то, ($Имя_переменной." Гость";). В твоём случае, это наверно, -
$fields[author]." Гость"
 
 Top
ghjy06
Отправлено: 31 Мая, 2013 - 16:10:59
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)

[+]


Хм..., а разве можно так писать:
PHP:
скопировать код в буфер обмена
  1. $result2 = mysql_query ("INSERT INTO comments (post,author,text,date,mail) VALUES ('$fields[id]','$fields[author]'.'Гость','$fields[text]','$date','$fields[mail]')",$db);
  2.  

(Добавление)
ghjy06 пишет:
Хм..., а разве можно так писать:
PHP:
скопировать код в буфер обмена
  1. $result2 = mysql_query ("INSERT INTO comments (post,author,text,date,mail) VALUES ('$fields[id]','$fields[author]'.'Гость','$fields[text]','$date','$fields[mail]')",$db);
  2.  


Желательно реальный пример кода привести.

(Отредактировано автором: 31 Мая, 2013 - 16:12:21)

 
 Top
DelphinPRO
Отправлено: 31 Мая, 2013 - 18:43:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




а если просто взять и подумать? не пробовали?

PHP:
скопировать код в буфер обмена
  1. $name = $fields['author'].'Гость';
  2. $result2 = mysql_query ("INSERT INTO comments (post,author,text,date,mail) VALUES ('$fields[id]','$name','$fields[text]','$date','$fields[mail]')",$db);

(Отредактировано автором: 31 Мая, 2013 - 18:43:34)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
ghjy06
Отправлено: 31 Мая, 2013 - 19:58:20
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)

[+]


DelphinPRO пишет:
а если просто взять и подумать? не пробовали?

PHP:
скопировать код в буфер обмена
  1. $name = $fields['author'].'Гость';
  2. $result2 = mysql_query ("INSERT INTO comments (post,author,text,date,mail) VALUES ('$fields[id]','$name','$fields[text]','$date','$fields[mail]')",$db);


Я давно уже не занимался PHP, уделил больше времени верстке. А сейчас возникла необходимость в решении поставленных мною задач. Я понял, что нужно повторять и повторять с нуля, чтобы наверстать упущенную сноровку и вспомнить азы. Поэтому собственно и обратился на форум, т.к. на форуме, много профессионалов, для которых эти задачи сущий пустяк ("пяти минут дело"), которые в наше то время на мое удивление очень отзывчивые, наверное по тому, что сами когда-то начинали или возможно просто по доброте души. В любом случае лично вы на форуме многим помогли, за что Вам огромный респект.
(Добавление)
DelphinPRO пишет:
а если просто взять и подумать? не пробовали?

PHP:
скопировать код в буфер обмена
  1. $name = $fields['author'].'Гость';
  2. $result2 = mysql_query ("INSERT INTO comments (post,author,text,date,mail) VALUES ('$fields[id]','$name','$fields[text]','$date','$fields[mail]')",$db);

А остальные задачи, правда можно решить при помощи preg_match()?
- Подскажите, где об этом можно почитать.
 
 Top
bretill
Отправлено: 31 Мая, 2013 - 21:36:27
Post Id



Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB