$result2=mysql_query("INSERT INTO comments (post,author,text,date,mail) VALUES ('$fields[id]','$name','$fields[text]','$date','$fields[mail]')",$db);
Я давно уже не занимался PHP, уделил больше времени верстке. А сейчас возникла необходимость в решении поставленных мною задач. Я понял, что нужно повторять и повторять с нуля, чтобы наверстать упущенную сноровку и вспомнить азы. Поэтому собственно и обратился на форум, т.к. на форуме, много профессионалов, для которых эти задачи сущий пустяк("пяти минут дело"), которые в наше то время на мое удивление очень отзывчивые, наверное по тому, что сами когда-то начинали или возможно просто по доброте души. В любом случае лично вы на форуме многим помогли, за что Вам огромный респект. (Добавление)
Существует форма, отправляющая данные, которые заносятся в массив $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-х букв вывести: "Вы ввели недопустимое имя, вернитесь на предыдущую страницу и напишите настоящее имя и кнопка возврата на предыдущую страницу;
Можно еще на свое усмотрение посоветовать что-то добавить в целях безопасности, буду признателен.
if($fields[author]=="Ваше имя" or $fields[mail]=="Ваш e-mail"){
exit("<div class='com'>Вы ввели не всю информацию, вернитесь назад и заполните все поля.</div> <br> <input id='send' type='button' value='Вернуться назад' onclick='window.history.go(-1)'>");
$message="Появился комментарий к посту - ".$post_title."\nКомментарий добавил(а): ".$author."\nТекст комментария: ".$text."\nСсылка на заметку: http://site.com/post.php?id=".$id."";
У меня проблема. Вставляю код, как вы описали и ничего не происходит, как было так и осталось.
Описываю структуру:
site.com/index.php - Главная.
site.com/cats.php - отвечает за вывод категорий. // Например site.com/cats.php?cat=11 - авто, site.com/cats.php?cat=21 - девушки; site.com/cats.php?cat=111 - футбол.
site.com/post.php - отвечает за вывод заметки полностью.// Например site.com/post.php?id=11 - BMW, site.com/post.php?id=21 - Дженни Вейд; site.com/post.php?id=111 - Шевченко.
Еще есть три файла , author.php - об авторе, biz.php - предложение, guest.php - гостевая
Нужно чтобы эти файлы тоже отображались с ЧПУ.
Здесь подробно описано как должна быть оформлена ссылка :http://htmlbook[dot]ru/html/a
Обратите внимание на:
href="URL"
Я знаю, что нужно брать значение атрибута href в кавычки, трудность заключалась в том, что если я ставил кавычки после знака = и перед >, то получал еще больше ошибок. Но проблему решил, действительно проблема была в самих кавычках. Спасибо большое за внимание и помощь всем, кто принимал участие в данной теме.[u][/u]
Line 117, Column 132: = in an unquoted attribute value. Probable causes: Attributes running together or a URL query string in an unquoted attribute value.
[url]…ttp://site.com/site.com.php?page=2>2</a> | <a href=http://site.com/ve…[/url]
Т.к. проблему я решил (почти так, как хотелось) благодаря DeepVarvar - думаю не лишним будет сообщить Вам об этом. Пользователям будет полезно знать решение.
Предложенный вами код я немного доработал под свои нужды.
Итак:
Форма:
if($fields[author]=="Ваше имя" or $fields[mail]=="Ваш e-mail"){
exit("<p>Вы ввели не всю информацию, вернитесь назад и заполните все поля. <br> <input type='button' value='Вернуться назад' onclick='window.history.go(-1)'>");
exit("<p>Вы ввели неверную сумму цифр с картинки на предыдущей странице. <br> <input type='button' value='Вернуться назад' onclick='window.history.go(-1)'>");
}
?>
Сложность возникла в том, что тег textarea не передает данные в ячейку массива "text" => "", т.к. у него нет атрибута value он постоянно пустой. Если ячейке массива задать значение "text" => "Ваша запись" и дополнить функцию if:
if($fields[author]=="Ваше имя" or $fields[mail]=="Ваш e-mail" or $fields[text]=="Ваша запись"){
exit("<p>Вы ввели не всю информацию, вернитесь назад и заполните все поля. <br> <input type='button' value='Вернуться назад' onclick='window.history.go(-1)'>");
,
при этом оставить пустым поле тега textarea и отправить форму, то сработает <input type='button' value='Вернуться назад' onclick='window.history.go(-1)'>. Но подлость в том, что это сработает даже если поле заполнено.
Поэтому выполнить проверку текстового поля на пустоту мне не удалось. В принципе данное поле по логике и так заполнят. Буду благодарен, если подскажите решение.
Ахах, оценили значит харизму
Прошу прощения, что так вот долго не отвечал - дела домашние.
Ладно, поехали.
Первый вариант:
Вы слишком не терпеливы. Показалось что считаете тут на форуме кто-то вам что-то должен.
Неа - ни капельки не должен. Кроме того, увидев тот код, который был сброшен...
Такое размещают на govnokod.ru чтобы поржать.
Ни у кого нет желания лезть в это "Г" и марать руки, что-то советовать.
Лучше отмолчаться, от греха подальше - себе дороже.
Потому, что после одного совета окажется что вы не знаете еще более глубоких азов, и придется откатываться с объяснениями в самый низ, в "каменный век"..
Решение проблемы?
Возможно (я надеюсь) тут: http://forum.php.su/topic.php?fo...33&topic=793
Второй вариант:
Ммммм... А давайте перепишу вам все с нуля и заново?
На самом деле есть еще и третий вариант:
А давайте вы попробуете сами переписать все заново.
А мы тут просто поможем процессу. Направим в нужное русло.
Помогать будет тот, кто свободен сейчас, и если ему будет настроение вам помогать.
А таких лудей тут полно.
Я внесу свою первую лепту.
Начнем с верстки.
Почему у вас в тегах идет описание стилей?
Почему на текстарии используется плейсхолдер, а на инпутах жаваскрипт?
Онфокус на скрипте? о_О Переносите в css
Почему в примере не открыт див перед формой?
Используйте один тип кавычек при описании атрибутов и свойств элементов DOM.
Почему у формы не абсолютный путь?
Почему идентификатор input, даже на форме не уникален?
Теперь скрипт.
stripslashes($author); это что? magic quotes включен?
Я сокращу только прием параметров. Дальше думайте сами.
По первому варианту:
Не могу Вам возразить, т.к. я только учусь. Вы наверное экстрасенс, данный код, это воспроизведение полученных знаний от человека, к которому Вы не равнодушны - "Ж. Попова" и видео курсов СПЕЦИАЛИСТ.
Я очень хочу учиться, но ограничен во времени, возможностях и источниках черпания знаний, поэтому стараюсь хоть чему-то научиться, но не все получается так, как хочется.
Второй вариант мне скорее не подойдет, т.к. думаю, что это будет дорогого стоить. Да и в конце концов я сам ничему не научусь.
Третий вариант скорее всего будет самым актуальным для меня. Я был бы чрезмерно благодарен, если бы мог учиться у профессионалов, разумеется, когда у Вас есть время и настроение.
Что касается верстки: Почему у вас в тегах идет описание стилей?
Подозревая мысль, которую вы хотели осветить этим вопросом, что "Это признак нехорошего кода", отвечу: "Потому что так тоже можно, но я прислушался к Вам и перенес все в таблицу стилей).
Почему на текстарии используется плейсхолдер, а на инпутах жаваскрипт?
Дело в том что блог, который я "написал", является кросбраузерным. Я хочу избежать надписей над импутами "Ведите имя:". Хочу расположить подобные надписи внутри импутов, чтобы при клике левой кнопкой мыши текст "Ведите имя:" исчезал. IE не поддерживает атрибут placeholder (html5). В данной форме, текстовая область одна, поэтому если в IE она не будет подписана, то и так понятно, что в нее нужно ввести текст комментария (минимизировал применении скриптов). На картинке, которую я прилагаю, макет работающей на локальном хосте формы.
Онфокус на скрипте? о_О Переносите в css
Если я не ошибаюсь вопрос риторический.
Почему в примере не открыт див перед формой?
Открывающий div на месте. Я не аккуратно скопировал код для демонстрации.
Используйте один тип кавычек при описании атрибутов и свойств элементов DOM.
Учту.
Почему у формы не абсолютный путь?
Исправил.
Почему идентификатор input, даже на форме не уникален?
Потому что он содержит всего 1 правило:
#input {
margin:5px 15px 15px 0px;
}
По поводу кода, который вы предложили, считаю его очень профессиональным, но я провозился с ним вчера до 5 часов утра и так и не наладил. Данные отправляются, о чем свидетельствует var_dump, однако я пока не додумался, как обработать значения, ключей массива, если они пустые или в них содержится значение value чтобы браузер выводил: "Вы ввели не всю информацию, вернитесь назад и заполните все поля.". (Добавление)
DelphinPRO пишет:
Как видите, код намного читабельне, и удобнее для доработок в будущем.