Не работает скрипт

Unlock
На сайте с 01.08.2004
Offline
786
841

Коллеги, не работает один скрипт и разобраться в чем проблема не знаю как. Никаких ошибок php не выдает. Писался во времена php4 и стойкое ощущение, что скрипт перестал работать после переезда на хостинг с php5. Посмотрите пожалуйста, может кто-то разберется. :)

Форма:

<form target="_blank" method="post" action="/se.php">

<select name="engine" gtbfieldid="9">
<option value="pubchem">PubChem Compound</option>
<option value="hiv">Anti-HIV Database</option>
</select>
<input type="text" onblur="if (this.value=='') this.value='Please select database and enter keyword(s)'; this.style.color='#aaa'" onfocus="if (this.value=='Please select database and enter keyword(s)') this.value=''; this.style.color='#333'" class="textfield" value="Please select database and enter keyword(s)" size="45" name="scrit" gtbfieldid="10" style="color: rgb(170, 170, 170);">
<input type="image" align="left" alt="Search" src="/images/go.jpg" id="search-btn" name="search-btn">
</form>

Скрипт se.php

<?

if (!isset($engine)) {
?>

<?
exit;
}



# DEFINE SEARCH ENGINES
# engine name = action, method, criteria field
$eng = array(

"pubchem" => array("http://www.ncbi.nlm.nih.gov/entrez/query.fcgi","Get","term"),
"hiv" => array("http://chemdb2.niaid.nih.gov/struct_search/all/all_many.asp","post","txtANChemAlt")


);


# DEFINE HIDDEN FIELDS
# engine name = "name"=>"value"
$hiddenfields = array(
"pubchem" => array("db"=>"pccompound"),
"hiv" => array(),
);



$action = $eng[$engine][0];
//$method = $eng[$engine][1];
$criteriafield = $eng[$engine][2];

$resstr = $action."?".$criteriafield."=".rawurlencode($scrit);


if ($hiddenfields[$engine]) {
while ( list($key, $val) = each($hiddenfields[$engine]) ) {
$resstr .= "&".$key."=".$val;
}
}

Header("Location: $resstr");
exit;
?>
Есть желание, - тысяча способов; нет желания, - тысяча поводов! /Петр-I/.
M
На сайте с 17.04.2008
Offline
88
MBo
#1


<?
if (!isset($engine)) {
?>

<?
exit;
}

заменить на


<?
if (!isset($_POST['engine'])) {
?>

<?
exit;
}
$engine=$_POST['engine'];

если заработает, то причина в register_globals = Off (php.ini),

и тогда, возможно, где-то ещё скрипт может криво сработать.

Unlock
На сайте с 01.08.2004
Offline
786
#2

Про register_globals я и забыл. :) Спасибо.

Unlock добавил 05.01.2011 в 23:35

Нет, все равно проблема осталась. Ладно, фиг с ней.

Jekyll
На сайте с 04.05.2009
Offline
136
#3

Про вторую переменную из формы забыли :)

$scrit = $_POST['scrit'];

Jekyll добавил 06.01.2011 в 00:07

Снимаю шляпу перед вашим подходом к проблемам :)

Unlock
На сайте с 01.08.2004
Offline
786
#4
Jekyll:
$scrit = $_POST['scrit'];

Теперь работает, спасибо. :)

Jekyll:
Снимаю шляпу перед вашим подходом к проблемам

С этим скриптом я много раз сам пытался разобраться, но ничего не выходило. Обратился сюда за помощью и когда понял, что все равно не работает как надо, терпения не хватило и решил просто забить. ;)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий