<h2>Редактировать факт</h2>
<form name="form1" method="post" action="edit_fact.php">
<fieldset>
<legend>Категории</legend>
<p>
<label>Выберите категорию фактов для редактирования:<br>
<select name="category" id="category">
<option value="geografy">География</option>
<option value="animals">Животные</option>
<option value="space">Космос</option>
<option value="science">Наука</option>
<option value="nature">Природа</option>
<option value="other">Разное</option>
<option value="people">Человек</option>
<option value="history">История</option>
</select>
</label>
</p>
<p>
<label>
<input type="submit" name="sub" id="sub" value="Выбрать категорию">
</label>
</p>
</fieldset>
</form>
<?php
if (!isset($id))
{
if (!isset($category)) {echo "<p>Выберите категорию!</p>";
else
{
$result = mysql_query ("SELECT facts,id FROM $category");
121 $myrow = mysql_fetch_array($result);
do { printf ("<p><a href='edit_fact.php?category=%s&id=%s'>%s</a></p>",$category,$myrow["id"],$myrow["facts"]); }
123 while ($myrow = mysql_fetch_array($result)); }
}
else {
$result = mysql_query ("SELECT facts,id FROM $category WHERE id = $id");
$myrow = mysql_fetch_array($result);
print <<<HERE
<form name="form1" method="post" action="update_fact.php">
<p>
<label>Текст редактируемого факта:<br>
<textarea name="facts" cols="60" rows="7" id="facts">$myrow[facts]</textarea>
</label>
<input name="id" type="hidden" value="$myrow[id]">
<input name="category" type="hidden" value="$category">
</p>
<p>
<label>
<input type="submit" name="add" id="add" value="Сохранить изменения">
</label>
</p>
</form>
HERE;
}
?>
При выборе категории ничего не происходит, все время пишет Выберите категорию!
Если убрать проверку в начале
if (!isset($category)) {echo "<p>Выберите категорию!</p>";
то выдает такую ошибку:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\facts\www\admin\edit_fact.php on line 121
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\facts\www\admin\edit_fact.php on line 123
То есть в строках mysql_fetch_array
Вот что странно: когда устанавливаю денвер старый - все работает!!!!
Если ставлю денвер поновее, все время пишет Выберите категорию!
Недавно перешел на более современный хостинг. Вот тогда и перестал работать PHP.
Помогите, умоляю!
Спустя 6 минут, 10 секунд (2.07.2011 - 13:47) waldicom написал(а):
Код, на мой взгляд, не очень.
Используются глобальные переменные, но не включены в конфиге? Циклы do...while не самое лучшее решение в данном случае.
Используются глобальные переменные, но не включены в конфиге? Циклы do...while не самое лучшее решение в данном случае.
Спустя 47 секунд (2.07.2011 - 13:47) waldicom написал(а):
Цитата (gserg @ 2.07.2011 - 11:40) |
Вот что странно: когда устанавливаю денвер старый - все работает!!!! Если ставлю денвер поновее, все время пишет Выберите категорию! Недавно перешел на более современный хостинг. Вот тогда и перестал работать PHP. |
Это, кстати, как раз говорит в пользу теории о выключенных глобальных переменных.
Спустя 8 минут, 35 секунд (2.07.2011 - 13:56) gserg написал(а):
а как их включить?
Спустя 17 минут, 11 секунд (2.07.2011 - 14:13) waldicom написал(а):
В php.ini есть директива register_globals. Нужно включить и затем перезапустить вебсервер. Важно выбрать правильный php.ini, если их несколько.
Спустя 7 минут, 7 секунд (2.07.2011 - 14:20) gserg написал(а):
точно register_globals отключен
Спустя 9 минут, 51 секунда (2.07.2011 - 14:30) gserg написал(а):
спасибо огромное waldicom!!!!!!
весь нэт облазил, а тут зарегистрирован давно и пошел в последнею очередь...
добавил в php.ini строку register_globals = On; и закинул его на аккаунте в той папке, где находится скрипт, требующий нестандартных настроек.
эврика!!!!
еще раз спасибо
весь нэт облазил, а тут зарегистрирован давно и пошел в последнею очередь...
добавил в php.ini строку register_globals = On; и закинул его на аккаунте в той папке, где находится скрипт, требующий нестандартных настроек.
эврика!!!!
еще раз спасибо

Спустя 1 час, 1 минута, 16 секунд (2.07.2011 - 15:31) inpost написал(а):
gserg
А теперь обратно отключай, как думаешь, почему PHP автоматически отключает их?! Потому что это опасно...
Если отправляешь $_POST, значит к ней и обращайся, к глобальной переменной $_POST
А теперь обратно отключай, как думаешь, почему PHP автоматически отключает их?! Потому что это опасно...
Если отправляешь $_POST, значит к ней и обращайся, к глобальной переменной $_POST
Спустя 2 часа, 13 минут, 12 секунд (2.07.2011 - 17:45) gserg написал(а):
Цитата (inpost @ 2.07.2011 - 12:31) |
gserg А теперь обратно отключай, как думаешь, почему PHP автоматически отключает их?! Потому что это опасно... Если отправляешь $_POST, значит к ней и обращайся, к глобальной переменной $_POST |
а чем это грозит????
Спустя 39 минут, 20 секунд (2.07.2011 - 18:24) DySprozin написал(а):
gserg
простейший пример, ты пишешь админку admin.php:
тогда кто-то может обратиться к твоему сайту так:
http://site.ru/admin.php?login=ok
и таким образом человек получит доступ в админку, не зная пароля, понял? (;
простейший пример, ты пишешь админку admin.php:
if ($pass == 'bla-bla-bla') $login = 'ok';
...
...
if ($login == 'ok') {
//тут админские возможности
}
тогда кто-то может обратиться к твоему сайту так:
http://site.ru/admin.php?login=ok
и таким образом человек получит доступ в админку, не зная пароля, понял? (;
Спустя 1 час, 8 минут, 36 секунд (2.07.2011 - 19:32) gserg написал(а):
а чем же тогда можно заменить POST?
Спустя 18 минут, 2 секунды (2.07.2011 - 19:51) DySprozin написал(а):
gserg
не надо ни чем заменять post
передаешь например поле space, тогда в скрипте пишешь:
$space = $_POST['space'];
(;
не надо ни чем заменять post
передаешь например поле space, тогда в скрипте пишешь:
$space = $_POST['space'];
(;
Спустя 18 часов, 45 минут, 3 секунды (3.07.2011 - 14:36) gserg написал(а):
Цитата (DySprozin @ 2.07.2011 - 16:51) |
gserg не надо ни чем заменять post передаешь например поле space, тогда в скрипте пишешь: $space = $_POST['space']; (; |
Спасибо!