Я пытаюсь подключиться к серверу Oracle, если он находится в универе. Я думаю, что он подключается, однако я не могу выбрать из таблицы, чтобы проверить, совпадают ли учетные данные для входа в систему. Я пробовал и другие способы, но это самый близкий мне вариант. Проблема заключается в части oci_bin, где отображается ошибка, но я не знаю другого способа решить эту проблему.
<?php
session_start();
if (!isset($_POST['username']) || !isset($_POST['password'])) {
header("Location: ../session.php");
}
putenv("ORACLE_SID=teaching");
if ($Connection = oci_connect("w4e09", "melih312")) {
print "Connection OK \n";}
if (isset($_SESSION['loggedin'])) header("Location: ../secret.php");
$Statement = oci_parse($Connection, 'select *
from Company
where address = :un_bv
and email = :pw_bv' );
Oci_bind_by_name($s, ":un_bv", $_POST['username']);
Oci_bind_by_name($s, ":pw_bv", $_POST['password']);
oci_execute($s);
$r = oci_fetch_array($s, OCI_ASSOC);
}
if ($r) {
$_SESSION['loggedin']=TRUE; $_SESSION['username'] = "admin";
}
else {
// No rows matched so login failed
login_form('Login failed. Valid usernames/passwords ' .
'are "chris/tiger" and "alison/red"');
}
header("Location: secret.php");
?>
🤔 А знаете ли вы, что...
Java предоставляет инструменты для создания криптографических приложений и шифрования данных.
oci_bind_by_name
, oci_execute
и oci_fetch_array
должны использовать ресурс, возвращаемый oci_parse
. В вашем случае это будет переменная $Statement
:
$Statement = oci_parse(
$Connection,
'select * from Company where address = :un_bv and email = :pw_bv'
);
oci_bind_by_name($Statement, ":un_bv", $_POST['username']);
oci_bind_by_name($Statement, ":pw_bv", $_POST['password']);
oci_execute($Statement);
$r = oci_fetch_array($Statement, OCI_ASSOC);
Взгляните на документацию:
http://php.net/manual/en/function.oci-connect.php
http://php.net/manual/en/function.oci-parse.php
Добавьте проверку ошибок:
// During development only
error_reporting(E_ALL); // In PHP 5.3 use E_ALL|E_STRICT
ini_set('display_errors', 'On');
. . .
if ($Connection = oci_connect("w4e09", "melih312")) {
print "Connection OK \n";}
else {
$m = oci_error();
trigger_error('Could not connect to database: '. $m['message'], E_USER_ERROR);
}
Аналогично проверьте ошибки после oci_execute()
.
См. «Обработка ошибок PHP OCI8» на стр. 161 бесплатной книги Oracle http://www.oracle.com/technetwork/topics/php/underground-php-oracle-manual-098250.html