[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с PHP. Голову уже сломал
gserg
Не работает код админ панели

<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 не самое лучшее решение в данном случае.

Спустя 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; и закинул его на аккаунте в той папке, где находится скрипт, требующий нестандартных настроек.
эврика!!!!
еще раз спасибо biggrin.gif

Спустя 1 час, 1 минута, 16 секунд (2.07.2011 - 15:31) inpost написал(а):
gserg
А теперь обратно отключай, как думаешь, почему 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:

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'];

(;

Спустя 18 часов, 45 минут, 3 секунды (3.07.2011 - 14:36) gserg написал(а):
Цитата (DySprozin @ 2.07.2011 - 16:51)
gserg
не надо ни чем заменять post

передаешь например поле space, тогда в скрипте пишешь:

$space = $_POST['space'];

(;

Спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.