Jump to content
  • 0

Нужна квалифицированная поддержка


wertel
 Share

Question

Уважаемые специалисты своего дела, у меня к Вам просьба, она заключается в следующем:

я насписал код который служит для редактирования полей таблицы БД через форму, он работает, я проверял, но мне кажется что там есть лишнее(я перестраховался). Если кому то не сложно, посмотрите пожалуйста и вынесите свой вердикт.

КОД ОБРАБОТЧИК:

<?php

include ('block/bd.php');

if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title); }}/*проверяем поля на пустоту, значение unset уничтожает переменную если у нее пустота в ''*/

if (isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d']; if ($meta_d == '') {unset($meta_d); }}

if (isset($_POST['meta_k'])) {$meta_k = $_POST['meta_k']; if ($meta_k == '') {unset($meta_k); }}

if (isset($_POST['text'])) {$text = $_POST['text']; if ($text == '') {unset($text); }}

if (isset($_POST['id'])) {$id = $_POST['id']; }

?>

........................

.........................

</head>

<body>

..................................

................................

..............................

<?php

$refreshpage="index.php";

if (isset($title) && isset($meta_d) && isset($meta_k)&& isset($text))

{

$result = mysql_query ("UPDATE settings SET title='$title',meta_d='$meta_d', meta_k='$meta_k',text='$text' WHERE page='contacts'");

if ($result == 'true') {echo "<p>Ваш контакт успешно обновлен</p>";}

else { echo "<p>Произошла ошибка, данные не добавлены</p>";}

}

else {

echo '<p> Вы заполнили не все поля, данные не могут быть обновлены</p>';

}

print "<script language='Javascript'>function reload() {location = \"$refreshpage\"}; setTimeout('reload()', 3000);</script>"; exit;

?>

</td>

</tr>

</table cellpadding="0" cellspacing="0"></td>

</tr>

<?php include ("block/footer.php");?>

</table>

</body>

</html>

—————————————————————————————————————-

КОД ФОРМА

<?php

if (!isset($id))

{

$result=mysql_query ("SELECT title, id FROM settings WHERE page='contacts' ");

$myrow = mysql_fetch_array ($result);

do

{

printf ("<p><a href='edit_contact.php?id=%s'>%s</a></p>",$myrow["id"],$myrow["title"]);

}

while ($myrow = mysql_fetch_array ($result));

}

else

{

$result=mysql_query ("SELECT * FROM settings WHERE page='contacts' ");

$myrow = mysql_fetch_array ($result);

print <<<HERE

<form id="form1" name="form1" method="post" action="update_contact.php">

<p>

<label><span class="view_date">Введите краткий заголовок</span> <br />

<input value="$myrow[title]" type="text" name="title" />

</label>

<br />

<br />

<label><span class="view_date">Введите краткое описание деятельности</span> <br />

<input value="$myrow[meta_d]" type="text" name="meta_d" />

</label>

<br />

<br />

<label><span class="view_date">Введите ключевые слова для будущего поиска</span> <br />

<input value="$myrow[meta_k]" type="text" name="meta_k"id="meta_k" />

</label>

<br />

<br />

<br />

<label><span class="view_date">Введите полный текст с тэгами абзацев</span><br />

<textarea name="text" cols="60" rows="30">$myrow[text]</textarea>

</label>

<br />

<br />

<br />

<br />

<label>

<input name="Submit" type="submit" id="submint" class="lesson_name" value="Сохранить изменения" />

</label>

</p>

</form>

HERE;

}

?>

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0
if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title); }}/
Тут вторые скобки совсем не нужны, да и сократить можно

if (isset($_POST['title']) && strlen(trim($_POST['title']))) $title=trim($_POST['title']);

Ну или, если нужен уж unset, то

if (isset($_POST['title']) && !strlen($title=trim($_POST['title']))) unset($title);

Дальше смотреть лень. Код нечитаемый

Edited by Int
Link to comment
Share on other sites

  • 0

Я считаю, что тут вообще всё плохо.

1. Логику надо отделять от представления

2. Какие-то бешеные иссеты и присвоения непонятно зачем нужные.

3. Такое ощущение, что код писало несколько разных людей - вывод осуществляется, то через echo с двойными кавычками, то с одинарными кавычками, то через print, то через printf в сишном стиле.

4. Код нечитабелен - используйте табуляцию и делайте его ровнее.

И, да, в форуме код надо заключать в специально обученные теги.

Link to comment
Share on other sites

  • 0
то через echo с двойными кавычками, то с одинарными кавычками
Ну уж это по обстоятельствам. Я вот умею использовать и те и другие. Если в тексте встречается перенос строки, то проще писать "текст\nтекст", чем 'текст'."\n".'текст'.

Хоть это и слегка нагрузит интерпретатор поиском переменных в строке. У меня такой критерий: если выводится куча переменных, то я загоняю вывод в "", а если одна-две, то делаю разрыв в одинарных кавычках.

А на счёт разделения логики и представления вот что хочу спросить всё время: как же выводить значения переменных, если php-кода не должно быть в простом тексте? Делать подстановки типа {\_aa_\}?

Edited by Int
Link to comment
Share on other sites

  • 0
А на счёт разделения логики и представления вот что хочу спросить всё время: как же выводить значения переменных, если php-кода не должно быть в простом тексте? Делать подстановки типа {\_aa_\}?

Ну да, типтого. Шаблонизаторы в помощь.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy