PHP和Oracle会话登录
这里是我的PHP代码+Oracle登录表单有问题。PHP和Oracle会话登录,php,oracle11g,Php,Oracle11g,这里是我的PHP代码+Oracle登录表单有问题。 在这个PHP文件中,我创建了登录函数。但我有这样一个错误: Warning: oci_num_rows() expects parameter 1 to be resource, string given in C:\xampp\htdocs\developers\it\session.php on line 12 Wrong - 我试着在谷歌上搜索,但还是没有找到任何东西。 有人知道,有什么问题吗? 感谢您的帮助。根据您的脚本,
在这个PHP文件中,我创建了登录函数。但我有这样一个错误:
Warning: oci_num_rows() expects parameter 1 to be resource, string given in C:\xampp\htdocs\developers\it\session.php on line 12
Wrong
-
我试着在谷歌上搜索,但还是没有找到任何东西。
有人知道,有什么问题吗?
感谢您的帮助。根据您的脚本,而不是
if(oci_num_rows($cek)==1)
你应该打电话
if(oci_num_rows($result)==1)
根据你的剧本而不是
if(oci_num_rows($cek)==1)
你应该打电话
if(oci_num_rows($result)==1)
当您询问从
oci\u num\u rows()返回的行数时,可能希望使用$result
而不是$cek
。但是,您确实希望避免直接在字符串中使用$username
和$password
。这将使您更容易受到SQL注入攻击,因此请考虑将oci\u parse
与
在此之后,您还应该始终在重定向序列之后调用exit()
,因为如果您不这样做,脚本将继续运行(这可能是其他地方的安全问题)。当您请求从oci_num_rows()返回的行数时,您可能希望使用$result
而不是$cek
。但是,您确实希望避免直接在字符串中使用$username
和$password
。这将使您更容易受到SQL注入攻击,因此请考虑将oci\u parse
与
在这之后,您还应该始终在重定向序列之后调用exit()
,因为如果您不这样做,脚本将继续运行(这可能是其他地方的安全问题)。我也遇到了同样的情况,所以我用这样的脚本来欺骗它,但我不知道是否有影响。因为会议和验证进行得很顺利
$username =$_POST['username'];
$password = $_POST['password'];
$conn = oci_connect('xxx', 'xxx', 'localhost/MYDB');
$pass_encription = md5($password);
$query = "SELECT * from *table_name* WHERE *field1*='".$username."' and *field2*='".$password."'";
$result = oci_parse($conn, $query);
oci_execute($result);
$exe = oci_fetch($result);
if ($exe > 0)
{
oci_close($conn);
oci_execute($result);
$row =oci_fetch_array($result);
$sid = $row['field_1_parameter'];
$snama = $row['field_2_parameter'];
$sjab = $row['field_3_parameter'];
$session = array (
'field_1_array' =>$sid,
'field_2_array' =>$snama,
'field_3_array' =>$sjab
);
if($sjab == 'Administrator')
{
$this->session->set_userdata($session);
redirect('redirecting_page');
}
`我也遇到了同样的情况,所以我用这样的脚本来欺骗它,但我不知道是否有影响。因为会议和验证进行得很顺利
$username =$_POST['username'];
$password = $_POST['password'];
$conn = oci_connect('xxx', 'xxx', 'localhost/MYDB');
$pass_encription = md5($password);
$query = "SELECT * from *table_name* WHERE *field1*='".$username."' and *field2*='".$password."'";
$result = oci_parse($conn, $query);
oci_execute($result);
$exe = oci_fetch($result);
if ($exe > 0)
{
oci_close($conn);
oci_execute($result);
$row =oci_fetch_array($result);
$sid = $row['field_1_parameter'];
$snama = $row['field_2_parameter'];
$sjab = $row['field_3_parameter'];
$session = array (
'field_1_array' =>$sid,
'field_2_array' =>$snama,
'field_3_array' =>$sjab
);
if($sjab == 'Administrator')
{
$this->session->set_userdata($session);
redirect('redirecting_page');
}
`对于错误登录,这是正确的。但当我尝试使用正确的登录名登录时,它仍然会显示一条消息“错误”。还有什么帮助吗?var\u dump(oci\u fetch\u array($result))
并选中它显示如下错误:解析错误:语法错误,第16行的C:\xampp\htdocs\developers\it\session.php中的意外T\u变量导致登录错误,这是真的。但当我尝试使用正确的登录名登录时,它仍然会显示一条消息“错误”。还有什么帮助吗?var\u dump(oci\u fetch\u array($result))
并选中它显示如下错误:解析错误:语法错误,第16行的C:\xampp\htdocs\developers\it\session.php中出现意外的T\u变量