Я новичок в php.
Я пытаюсь написать простой внутренний веб-сайт, который просматривает номер вакансии, введенный пользователем, и возвращает клиента, если он существует. (Проверка, если хотите).
Это работает, когда WAMP настроен на ПК с использованием драйвера ODBC для Windows для Firebird. Но когда выделенный сервер linux был настроен с использованием модуля php5-interbase — interbase / firebird для php5, он не работает. Нет ошибок, просто очищает экран.
Может кто-нибудь помочь, где это идет не так. Я предполагаю, что это связь, но это все для меня в новинку.
<?php
error_reporting(0);
$jobNumber = $_POST['jobNumber'];
if ($_POST['clear'])
{
$jobNumber="";
$message1="";
}
if ($_POST['enquire'])
{
$dsn = 'DSN=Ostendo Wyma;Driver={Firebird/InterBase(r) driver};Dbname=//Orcus/C:/Program Files (x86)/Ostendo/Database/Ostendo.fdb;CHARSET=NONE;UID=SYSDBA;' ;
$dbh = odbc_connect($dsn, '', '') ;
$sqlstr = "SELECT (CUSTOMER || ' ' || ORDERDESCRIPTION) AS " .'"Result"' . " FROM JOBHEADER WHERE ORDERNUMBER = '" .$jobNumber ."' AND ORDERSTATUS <> 'Closed'" ;
$sqlstr .= ' UNION ';
$sqlstr .= "SELECT ITEMDESCRIPTION AS " .'"Result"' . " FROM ASSEMBLYHEADER WHERE ORDERNUMBER = '" .$jobNumber ."' AND ORDERSTATUS <> 'Closed'";
$sth = odbc_exec($dbh, $sqlstr) ;
$t = odbc_fetch_row($sth) ;
$result = odbc_result($sth, 'Result') ;
$message1 = $jobNumber . " Returns " .$result;
}
?>
<html>
<style>
body
{
font-family:arial;
font-size:12;
}
</style>
<title>Ostendo Test</title>
<form action="" method="POST">
<body>
<table border = 3>
<tr>
<td> Assembly/Job Number: </td>
<td> <input type=text name=jobNumber value="<?php echo $jobNumber;?>" size="50" autofocus>
</tr>
<tr>
<td colspan = 3>
<input type="submit" name="enquire" value="Validate">
<input type="submit" name="clear" value="Clear">
</td>
</tr>
</table>
</form>
<?php
echo "<br><br>";
echo "<font face='arial' size='4'>";
echo $message1;
echo "</font>";
?>
</body>
</html>
Я отключил создание отчетов об ошибках (т. Е. Изменил 0 на 1) и никаких сообщений об изменениях или ошибках. Затем я полностью удалил строку, и снова никаких изменений или сообщений об ошибках.
Я включил обработку ошибок PHP и получил следующее при обновлении страницы:
Notice: Undefined index: jobNumber in /var/www/Enquire.php on line 2
Notice: Undefined index: clear in /var/www/Enquire.php on line 4
Notice: Undefined index: enquire in /var/www/Enquire.php on line 9
(Затем ниже коробки / таблицы я получил следующие сообщения об ошибках)
Notice: Undefined variable: message1 in /var/www/Enquire.php on line 49
Это заставляет меня думать, что я не объявил некоторые переменные правильно. ?
Когда я ввожу действительную ссылку на вакансию, я получаю следующее:
Примечание: неопределенный индекс: очистить в /var/www/Enquire.php в строке 4
Неустранимая ошибка: вызов неопределенной функции odbc_connect () в /var/www/Enquire.php в строке 12
Так что я думаю, это связано с тем, как я подключаюсь к базе данных FB.
Задача ещё не решена.
Других решений пока нет …