正在尝试 post 网络服务器 PHP,多个参数不起作用 VB
Trying to post web server PHP, multiple parameters not working VB
正在尝试 POST 到 PHP 更新数据库。
如果我使用一个参数,它工作正常,但如果我尝试两个参数,它就不起作用。
如何 post 使用两个参数?
VisualBasic 代码
Dim dateTime As DateTime = ReturnAsDateTime(thedate, thetime)
Dim dateformat2 As String = "M/d/yyyy HH:mm"
Dim dateformat3 As String = dateTime.ToString(dateformat2)
Dim StudentNOString As String = thestudent.Number.ToString()
Dim upString As String = "future01=" & dateformat3 & "StudentNumber=" & StudentNOString
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
Dim request As WebRequest = WebRequest.Create("https://example.com/tofilePHPfile.php")
request.Method = "POST"
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(upString)
request.ContentType = "application/x-www-form-urlencoded"
request.ContentLength = byteArray.Length
Dim dataStream As Stream = request.GetRequestStream()
dataStream.Write(byteArray, 0, byteArray.Length)
dataStream.Close()
Dim response As WebResponse = request.GetResponse()
dataStream = response.GetResponseStream()
Dim reader As New StreamReader(dataStream)
Dim responseFromServer As String = reader.ReadToEnd()
reader.Close()
dataStream.Close()
response.Close()
MsgBox(responseFromServer)
PHP代码
<?php
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if (isset ($_POST["future01"]) && isset ($_POST["StudentNumber"])){
$future01 = $_POST["future01"];
$StudentNumber = $_POST["StudentNumber"];
} else {
$future01 = "testfortestfortest";
$StudentNumber = "1";
echo "not working";
}
$stmt = $conn->prepare("UPDATE pushtable SET future01=? WHERE StudentNumber=?");
$stmt->bind_param('ss', $future01,$StudentNumber);
$stmt->execute();
echo $future01;
//echo $StudentNumber;
echo "New records created successfully";
$stmt->close();
$conn->close();
?>
我认为这行有问题,因为 PHP 没有 post 正确。
Dim upString As String = "future01=" & dateformat3 & "StudentNumber=" & StudentNOString
我已经尝试了几十种不同的方法并试图搜索我的问题,但我似乎无法找到答案。 PHP 在 IOS objective-c 代码中工作得很好。所以,我认为我的问题出在 Visual Basic 代码中。
当发生 POST 时,future01 和 StudentNumber 未被单独识别。
这些是我看过的一些页面:
https://www.informit.com/articles/article.aspx?p=131236&seqNum=7
POST Request using VBScript
https://en.wikipedia.org/wiki/POST_(HTTP)#Use_for_submitting_web_forms
您的参数之间缺少分隔符。此代码...
Dim upString As String = "future01=" & dateformat3 & "StudentNumber=" & StudentNOString
...将产生如下输出:
future01=9/29/2021 10:00StudentNumber=123
正在尝试 POST 到 PHP 更新数据库。
如果我使用一个参数,它工作正常,但如果我尝试两个参数,它就不起作用。
如何 post 使用两个参数?
VisualBasic 代码
Dim dateTime As DateTime = ReturnAsDateTime(thedate, thetime)
Dim dateformat2 As String = "M/d/yyyy HH:mm"
Dim dateformat3 As String = dateTime.ToString(dateformat2)
Dim StudentNOString As String = thestudent.Number.ToString()
Dim upString As String = "future01=" & dateformat3 & "StudentNumber=" & StudentNOString
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
Dim request As WebRequest = WebRequest.Create("https://example.com/tofilePHPfile.php")
request.Method = "POST"
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(upString)
request.ContentType = "application/x-www-form-urlencoded"
request.ContentLength = byteArray.Length
Dim dataStream As Stream = request.GetRequestStream()
dataStream.Write(byteArray, 0, byteArray.Length)
dataStream.Close()
Dim response As WebResponse = request.GetResponse()
dataStream = response.GetResponseStream()
Dim reader As New StreamReader(dataStream)
Dim responseFromServer As String = reader.ReadToEnd()
reader.Close()
dataStream.Close()
response.Close()
MsgBox(responseFromServer)
PHP代码
<?php
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if (isset ($_POST["future01"]) && isset ($_POST["StudentNumber"])){
$future01 = $_POST["future01"];
$StudentNumber = $_POST["StudentNumber"];
} else {
$future01 = "testfortestfortest";
$StudentNumber = "1";
echo "not working";
}
$stmt = $conn->prepare("UPDATE pushtable SET future01=? WHERE StudentNumber=?");
$stmt->bind_param('ss', $future01,$StudentNumber);
$stmt->execute();
echo $future01;
//echo $StudentNumber;
echo "New records created successfully";
$stmt->close();
$conn->close();
?>
我认为这行有问题,因为 PHP 没有 post 正确。
Dim upString As String = "future01=" & dateformat3 & "StudentNumber=" & StudentNOString
我已经尝试了几十种不同的方法并试图搜索我的问题,但我似乎无法找到答案。 PHP 在 IOS objective-c 代码中工作得很好。所以,我认为我的问题出在 Visual Basic 代码中。
当发生 POST 时,future01 和 StudentNumber 未被单独识别。
这些是我看过的一些页面:
https://www.informit.com/articles/article.aspx?p=131236&seqNum=7
POST Request using VBScript
https://en.wikipedia.org/wiki/POST_(HTTP)#Use_for_submitting_web_forms
您的参数之间缺少分隔符。此代码...
Dim upString As String = "future01=" & dateformat3 & "StudentNumber=" & StudentNOString
...将产生如下输出:
future01=9/29/2021 10:00StudentNumber=123