我正在用PHP,HTML和MySQL创建一个社交网站。网站上的一项功能是用户键入另一个用户名,当他们点击它时,他们会转到该用户墙。我遇到的问题是,当我在搜索栏中输入后点击用户用户名时,我会回到我的主页,而不是其他用户的主页。有人能帮助我吗?
search2.php:
include("connect.php");
$output = '';
if(isset($_POST['search'])) {
if (empty($_POST["searchh"])) {
echo"You didn't enter anything . ";
} else {
$searchq = $_POST['searchh'];
$searchq = preg_replace("#[^0-9a-z]#i", "",$searchq);
$searchq = mysqli_real_escape_string($conn, $_POST['searchh']);
$query = mysqli_query($conn ,"SELECT * FROM users WHERE username LIKE '%$searchq%'") or die("Could not search");
$count = mysqli_num_rows($query);
if($count == 0){
echo "User does not exists";
} else {
while($row = mysqli_fetch_array($query)) {
$username = $row['username'];
$id = $row['id'];
$output .= '<a href="home.php?username=$username" >'. '<div>' .$username. '</div>' .'</a>';
}
}
}
} else {
echo"Not working";
}
profile.php:
<center>
<form action="search2.php" method="post">
<input type="text" name="searchh" placeholder="Search user ...">
<button id="bt3" type="submit" name="search">Search</button>
</form>
</center>
答案 0 :(得分:2)
您在这种情况下以错误的方式组合字符串。
更改:强>
'<a href="home.php?username=$username" >'
要强>
'<a href="home.php?username='.$username.'" >'
对于$ _POST [&#39; searchh
&#39;] - 拼写错误?应该是$ _POST [&#39; search
&#39;]而不是?
似乎在home.php中,用户的个人资料显示,用户名正在传递额外的空格。因此,调整传入的$ _GET [&#39;用户名&#39;]和$ _SESSION [&#39;用户名&#39;]同时调用()。 home.php也不接受收到的$ _GET [&#39;用户名&#39;],用于识别哪个用户检索帖子。
紧随其后:
$username = isset($_SESSION['username']) ? $_SESSION['username'] : '';
添加强>
$username = trim(isset($_GET['username']) ? $_GET['username'] : $username);