PHP跳过if块
我用VisualBasic编写了一小段代码,将用户名和密码发布到本地托管的login.php,这。。某种程度上是可行的,但由于某种原因,PHP脚本完全跳过了检查参数PHP跳过if块,php,vb.net,Php,Vb.net,我用VisualBasic编写了一小段代码,将用户名和密码发布到本地托管的login.php,这。。某种程度上是可行的,但由于某种原因,PHP脚本完全跳过了检查参数username是否已设置的if语句,并返回-1 PHP代码: $connection = mysqli_connect('127.0.0.1', 'root', 'root', 'default'); if(mysqli_connect_errno()) stop('2'); if(isset($_POST['username']
username
是否已设置的if语句,并返回-1
PHP代码:
$connection = mysqli_connect('127.0.0.1', 'root', 'root', 'default');
if(mysqli_connect_errno()) stop('2');
if(isset($_POST['username']) == true) {
if(isset($_POST['password']) == true) {
$username = mysqli_escape_string($connection, $_POST['username']);
$password = mysqli_escape_string($connection, $_POST['password']);
$query = mysqli_query($connection, "SELECT username,password,usersalt FROM Users WHERE username='$username';");
if($result = $query) {
while($row = mysqli_fetch_row($result)) {
if($username == $row[0]) {
$password = sha1($password.$row[2]);
if($password == $row[1]) {
stop('5');
}
stop('4');
} else { stop('3'); }
}
}
} else { stop('1'); }
} else { stop('0'); }
stop('-1'); // Returns at this no matter what.
function stop($m) { global $connection;
mysqli_close($connection);
exit($m);
}
VB代码:
Public Function Login(Username As String, Password As String) As Int32
Try
If Username Is Nothing Then Return 0
If Password Is Nothing Then Return 1
Console.WriteLine("Establishing connection to login server")
Dim Request As WebRequest = WebRequest.Create(Server & APIRequest.Login)
Request.Method = "POST"
Request.ContentType = "application/x-www-form-urlencoded"
Dim Content As Byte() = Encoding.UTF8.GetBytes(String.Format("username={0}&password={1}", Username, Password))
Request.ContentLength = Content.Length
Console.WriteLine("Passing credentials to server")
Dim DataStream As Stream = Request.GetRequestStream()
DataStream.Write(Content, 0, Content.Length)
DataStream.Close()
Dim Response As WebResponse = Request.GetResponse()
DataStream = Response.GetResponseStream()
Console.WriteLine("Getting server response")
Dim Reader As New StreamReader(DataStream)
Dim ResponseString As String = Reader.ReadToEnd
Reader.Close()
DataStream.Close()
Response.Close()
If ResponseString IsNot Nothing Then
Dim int As Int32 = -1
Integer.TryParse(ResponseString, int)
Console.WriteLine("Server response: {0}", int)
Return int
End If
Catch Exception As Exception
End Try
Console.WriteLine("Unknown error occurred.")
Return -1
End Function
VB输出:
Establishing connection to login server
Passing credentials to server
Getting server response
Server response: -1
更新
我已解决了在以下行中抛出的错误:
while($row=mysqli\u fetch\u row($result)){
我已将该行代码替换为:$row=mysqli\u fetch\u row($result);
更改此选项
$connection = mysqli_connect('127.0.0.1', 'root', 'root', 'default');
if($connection->connect_errno()) stop('2');//add connection name
简介
$connection->
connect\u errno()
$connection = mysqli_connect('127.0.0.1', 'root', 'root', 'default');
if($connection->connect_errno()) stop('2');//add connection name
简介
$connection->
connect\u errno()
我已解决了在以下行中抛出的错误:
while($row=mysqli\u fetch\u row($result)){
我已将该行代码替换为:$row=mysqli\u fetch\u row($result);
我已解决了发生在以下行的错误:while($row=mysqli\u fetch\u row($result)){
我已将该行代码替换为:$row=mysqli\u fetch\u row($result);
嗨,你能告诉我你到底在用VB和php做什么吗?我问这个是出于好奇。嗨,你能告诉我你到底在用VB和php做什么吗?我问这个是出于好奇。