在过去的几天里,我遇到了一个问题,即我的PHP代码无法从已经工作了7年或8年的表单文本框中获取文本。有没有其他人有这个问题或者是否有可能需要运行的东西不是?
我的PHP表单是用户名文本框和密码文本框和提交按钮
这是因为没有设置用户名而进入死亡的代码:
if(isset($_SESSION['username'])) {
$username = $_SESSION['username'];
} else {
die('User is blank'); //$username = "";
}
此错误将发送到我的error_log
PHP警告:mysql_result():无法跳转到/ home / 中的MySQL结果索引4的第0行
我知道我知道......没有mysqli
表格html:
<form method="post" onsubmit="return vloginform(this);"
action="https://www..com/php_include/processlogin.php"
name="loginform">
<div id="pleft">
<div class="uandp">Username: </div><div class="inputbox"><input type="text"
name="username" maxlength="30" class="buttonsboxes" style="width: 180px;" />
</div>
<div class="uandp">Password: </div><div class="inputbox"><input
type="password" name="password" maxlength="30" class="buttonsboxes"
style="width: 180px;" /></div>
</div>
<div id="pright">
<p><input class="buttonsboxes" type="submit" value="login" name="submit"
id="submit" /><input class="buttonsboxes" type="reset" value="reset"
name="reset" id="reset" /></p>
</div>
答案 0 :(得分:0)
不确定如何获取记录,但使用mysql_fetch_array
而不是手动获取每个列值将解决此问题。尝试在获取结果之前分析结果。如果结果为空,则跳过提取。
这样的事情:
$result = mysql_query("SELECT * FROM tablename");
if (!$result || !mysql_num_rows($result)) {
die('No records.');
}
while ($row = mysql_fetch_array($result)) {
// Your code goes here
}
答案 1 :(得分:-1)
您可能希望使用$ _REQUEST变量而不是$ _SESSION变量,因为每当数据从表单传输到php页面时,它都会在$ _REQUEST变量中传输,而不是在$ _SESSION变量中。 使用可以做类似的事情:
$username = $_POST['username'];
<强>更新强>
根据您的代码,您使用post方法发送数据,因此您应该使用$ _POST变量从表单中获取数据:
if ($username == null) {
die('User is blank'); // if username = "", this line will be executed
} else {
// do the required task...
}
您可以通过编写以下代码行来检查它是否为空:
isset($_REQUEST['username'])
我刚刚尝试了函数 - isset($_POST['username'])
和article 1 article 2 article 3
article 4
,但它没有给出所需的结果。但我已经有上面的代码可以工作了。
希望这会有所帮助:)
答案 2 :(得分:-1)
只需在文本框中使用必需标记,或者使用$ _POST VARIABLE。
POST:
if(isset($_POST['username'])) {
$username = $_POST['username'];
} else {
die('User is blank'); //$username = "";
}