我目前正在使用php的项目中工作。
我有这个按钮
<form method="post" action="">
<div class="profile" id="u118" style="left: 46px; top: 281px; width: 342px; height: 34px;">
<input name="newOrder" type="submit" value="VIEW FULL COMPANY DETAILS" class="profile" id="profbutton" style="width: 342px; height: 34px;">
</div>
</form>
我想从其他文件testDisplayCompanyDetails.php
<?php
if(isset($_GET[$_SESSION['id']]))
{
$id = $_SESSION['id'];
$sql="Select * from company where CompanyID = :id";
$res=$db->prepare($sql);
$res->execute(array('id'=> $id));
while($row = $res->fetch(PDO::FETCH_ASSOC)){
echo $row['Name'];
echo "</br>";
echo $row['Address'];
echo "</br>";
echo $row['Telephone1'];
echo "</br>";
echo $row['Telephone2'];
echo "</br>";
echo $row['BusinessWebsite'];
echo "</br>";
echo $row['BusinessEmail'];
echo "</br>";
echo $row['BusinessPermit'];
echo "</br>";
echo $row['BusinessPermitValidTill'];
echo "</br>";
echo $row['DTIPermit'];
echo "</br>";
echo $row['DTIPermitValidTill'];
echo "</br>";
echo $row['BankName'];
echo "</br>";
echo $row['BankAccountNumber'];
echo "</br>";
}
} ?&GT;
我该怎么做?我复制了错误的代码。遗憾
答案 0 :(得分:0)
在表单中,操作需要指向您的文件。
<form action="/path/to/your/script.php" method="post">
此外,您的method="post"
表示您需要使用$_POST
代替$_GET
- 而您输入的name
必须与密钥相同$ _POST:
<?php
include 'dbconnection.php';
if(isset($_POST['newOrder']))
{
$id = $_POST['newOrder'];
$sqlLoader="Select Name from validpersonnel where PersonnelID = :id";
$resLoader=$db->prepare($sqlLoader);
$resLoader->execute(array('id' => $id));
$row = $resLoader->fetch();
echo $row['Name'];
}
除非您告诉PHP文件输出更多内容,否则它将是一个值为$row
的白色屏幕。
此外,您需要<input type="submit"/>
才能告诉浏览器以输入形式发送数据 - 否则,您需要一个javascript处理程序。
如果输出不应过于密集,您将需要查看ajax - 这将允许发送数据 - 并允许您处理响应而无需重定向或重新加载页面。
此外,您可以通过验证服务器端的$ _POST输入来了解如何防止注入。
以filter_var
作为开始 -
代表数字:
filter_var($_POST['newOrder'], FILTER_VALIDATE_INT);
应该足够了 -
其他任何东西,它有点棘手 - 但我通常使用:
filter_var($_POST['newOrder'], FILTER_SANITIZE_STRING);
- 这将涵盖基本需求。
答案 1 :(得分:-1)
尝试action="displanamev1.php"
并将displanamev1.php中的$_GET
更改为$_POST
(或将method="post"
更改为method="get"
)