php smarty确实需要帮助
嘿,伙计们,我不知道为什么这行不通……它似乎不想获取帖子的价值观……我搞不懂 这是loginboxphp smarty确实需要帮助,php,sql,session,smarty,Php,Sql,Session,Smarty,嘿,伙计们,我不知道为什么这行不通……它似乎不想获取帖子的价值观……我搞不懂 这是loginbox <div class="loginbox"> <form action="processlogin.php" method="post"> <table width="100%" border="0" cellspacing="0" cellpadding="5"> <tr> <td>Us
<div class="loginbox">
<form action="processlogin.php" method="post">
<table width="100%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td>Username</td>
<td><input type="text" name="UserName" /></td>
</tr>
<tr>
<td>Password</td>
<td><input type="text" name="Password" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Login" /></td>
</tr>
<tr>
<td> </td>
<td><span style="font-size:12px;"><a href="adduser.php">Click here to register</a></span></td>
</tr>
</table>
</form>
这是函数…你会看到我只是随机测试,没有真正意义。我只是想让它显示出一路上的事情,这样我就可以找出哪里出了问题
对不起,我的编码技术很差。我现在只学了2个月左右。从您发布的内容来看,您正在通过回显调试信息来阻止会话正常启动:
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
// Get any error message
$error = @$_GET['error'];
} else {
$UserName = @$_POST['UserName'];
$Password = @$_POST['Password'];
echo $UserName;
}
processlogin($UserName, $Password);
对session_start的调用在processlogin函数中,该函数在您已经将内容输出到浏览器之后出现。这是PHP maunal所说的:
要使用基于cookie的会话,
必须在之前调用会话\u start
将任何内容输出到浏览器
尝试删除行echo$UserName
嗯
p、 鉴于您是一名初学者,请注意您的processlogin函数容易受到SQL注入攻击。实际上,有关SQL注入攻击的部分是错误的-抱歉!它仍然不起作用。我认为从表单中获取变量存在一些问题。因为即使在进程登录运行之前,它也应该显示用户名的回显…我删除了错误检查,回显仍然不起作用。出现的是tradde,这是我表示loggedin==false的方式。我修复了它…但我不知道如何…它刚刚开始工作…我什么都没做,突然它工作了。
<?php
include '/usr/local/Smarty/libs/Smarty.class.php';
require "includes/defs.php";
$smarty = new Smarty;
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
// Get any error message
$error = @$_GET['error'];
} else
{
$UserName = @$_POST['UserName'];
$Password = @$_POST['Password'];
echo $UserName;
}
processlogin($UserName, $Password);
?>
function processlogin($UserName, $Password){
echo $UserName;
session_start();
$UserName = mysql_escape_string($UserName);
$Password = md5($Password);
echo $UserName;
$connection = mysql_open();
$SQL = "SELECT * FROM tblUsers WHERE UserName = '$UserName' AND UserPass = '$Password'";
$Result = @ mysql_query($SQL)
or showerror();
if(mysql_num_rows($Result) > 0)
{
$DATA = mysql_fetch_assoc($Result);
$_SESSION['userID'] = $DATA['ID'];
$_SESSION['Loggedin'] = "true";
echo 'true';
//header("Location:index.php");
}
else
{
$_SESSION['Loggedin'] = "false";
echo 'trdddde';
//header("Location:index.php");
}
}
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
// Get any error message
$error = @$_GET['error'];
} else {
$UserName = @$_POST['UserName'];
$Password = @$_POST['Password'];
echo $UserName;
}
processlogin($UserName, $Password);