我想显示“超级”用户负责的所有用户。然后,“超级”用户可以通过单击其用户ID向任何用户发送评论。
显示所有用户的第一部分工作正常!我的问题在于超级用户发送评论。我想将用户ID(即suid
)存储在数据库中。所以我想使用$_Get
函数。但是当我尝试它时,数据库中没有任何存储。我想我犯了一个错误。那么有人可以帮助我吗?
这是向超级用户显示所有用户的代码:
<?php
session_start();?>
<?php
require("noCache.php");
$uid=$_SESSION['uid'];
?>
<html>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Send a comment</title>
<meta charset="utf-8">
<link rel="stylesheet" href="css/reset.css" type="text/css" media="all">
<link rel="stylesheet" href="css/layout.css" type="text/css" media="all">
<link rel="stylesheet" href="css/style.css" type="text/css" media="all">
<script type="text/javascript" src="js/jquery-1.4.2.js" ></script>
<script type="text/javascript" src="js/cufon-yui.js"></script>
<script type="text/javascript" src="js/cufon-replace.js"></script>
<script type="text/javascript" src="js/Myriad_Pro_400.font.js"></script>
<script type="text/javascript" src="js/Myriad_Pro_700.font.js"></script>
<script type="text/javascript" src="js/Myriad_Pro_600.font.js"></script>
</head>
<body>
<div class="main">
<header>
<div class="wrapper">
<h1><a href="index.php" id="logo"> Biz</a></h1>
</div>
<nav>
<ul id="menu">
<li class="alpha"><a href="index.php"><span><span>Home</span></span></a></li>
<li><a href="About.html"><span><span>About</span></span> </a></li>
<li><a href="Projects.html"><span><span>Projects</span></span></a></li>
<li><a href="Contacts.php"><span><span>Contacts</span></span></a></li>
<li class="omega"><a href="Services.html"><span><span>Services</span></span></a></li>
</ul>
</nav>
</br></br>
</header>
<head>
<!-- CSS Stylesheet -->
<style type="text/css">
html{
}
body{
text-align:center;
}
</style>
</head>
<?php
$dbh=mysql_connect("localhost", "root", "hahaha1") or die (mysql_error());
mysql_select_db ("senior");
$result = mysql_query("SELECT * FROM sensorusers where uid=$uid");
echo "<html><body>";
echo "<table cellspacing=10 cellpadding=5 ><tr> <th>ID</th><th>Name</th><th>Username</th><th>Password</th><th>Date of Registeration</th><th>Phone</th></tr>";
while ($row = mysql_fetch_array($result))
{ echo "<form method='post' action='sendcomment.php'>";
echo "<tr><td><input type='submit' name='suid' value='".$row['suid']."' /></td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['dusername'] . "</td>";
echo "<td>" . $row['password'] . "</td>";
echo "<td>" . $row['date'] . "</td>";
echo "<td>" . $row['phone'] . "</td></tr></form>";
$_GET['suid'] = $row['suid'];
}
echo "</table></body></html>";
mysql_close($dbh);
?>
<html>
<body>
<!-- CSS Stylesheet -->
<style type="text/css">
body {
font-family:"Andalus"
font: 16px ;
color:black;
padding: 30px 5px;
text-align: center;
}
</style></body></html>
以下是我想问的部分:
echo "<table cellspacing=10 cellpadding=5 ><tr> <th>ID</th><th>Name</th><th>Username</th><th>Password</th><th>Date of Registeration</th><th>Phone</th></tr>";
while ($row = mysql_fetch_array($result))
{ echo "<form method='post' action='sendcomment.php'>";
echo "<tr><td><input type='submit' name='suid' value='".$row['suid']."' /></td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['dusername'] . "</td>";
echo "<td>" . $row['password'] . "</td>";
echo "<td>" . $row['date'] . "</td>";
echo "<td>" . $row['phone'] . "</td></tr></form>";
$_GET['suid'] = $row['suid'];
}
解决方案:
谢谢大家的帮助。我修复了代码。我使用方法post
第一次保存suid
的值。然后我将其打印为隐藏输入。最后,我将隐藏输入的值保存在sql中,它可以工作!
答案 0 :(得分:1)
你有POST
我在你的代码中看不到GET
,如果你使用方法GET或POST,它依赖于你的html输入(你没有发布它们)。
如果您的方法是GET,那么您使用GET
但请尝试使用此
if(isset($_POST['submit'])){
而不是
if($submit){
编辑。
您正在使用method='post'
那么你必须使用POST
而不是GET
EDIT2:
你的sql中有错误,你使用了VALUE
,它应该是VALUES
而不是
$place="INSERT INTO comments VALUE
将其替换为
$place="INSERT INTO comments (columns here ,..., ,..) VALUES
答案 1 :(得分:1)
如何使用$_GET
:
将数据放在URL中,如下所示:
sendcomment.php?suid=blahblahblah
然后您可以使用$_GET
,如下所示:
$suid = $_GET['suid']
目前,您的代码使用POST
发送suid
或者改变你的表格方法。
echo "<form method='post' action='sendcomment.php?suid=".$row['suid']."'>";
答案 2 :(得分:1)
您的代码中存在多个问题。我会尝试列出最大的一些,但可能仍会遗漏一些。
代码1 -
问题1 -
您有多个<html></html>
,<head></head>
和<body></body>
块。
<html>
...
<head>
...
</head>
<body>
...
<head>
...
</head>
...
echo "<html><body>";
...
echo "...</body></html>";
...
<html>
<body>
...
</body>
</html>
第2期 -
您的<form>
位于<td>
块附近,无效,因此不会POST
正常。它需要在表格<form><table></table></form>
附近,或在单元格<td><form></form></td>
内。
echo "<table cellspacing=10 cellpadding=5 ><tr> <th>ID</th><th>Name</th><th>Username</th><th>Password</th><th>Date of Registeration</th><th>Phone</th></tr>";
while ($row = mysql_fetch_array($result))
{ echo "<form method='post' action='sendcomment.php'>";
echo "<tr><td><input type='submit' name='suid' value='".$row['suid']."' /></td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['dusername'] . "</td>";
echo "<td>" . $row['password'] . "</td>";
echo "<td>" . $row['date'] . "</td>";
echo "<td>" . $row['phone'] . "</td></tr></form>";
$_GET['suid'] = $row['suid'];
}
echo "</table></body></html>";
第3期 -
您滥用$_GET
并且它超出了<form></form>
标记。 $_GET
用于从url
获取价值。
$_GET['suid'] = $row['suid'];
代码2 -
问题1 -
您正在设置$id1=$_GET["suid"];
,但在代码#1的表单中,您使用的是method="post"
。
$id1=$_GET["suid"];
第2期 -
当您从代码#1发布到代码#2(<form><input type='submit' name='suid' value='".$row['suid']."' /></form>
)时,您只发送name='suid'
,所以$_GET
&amp; $_POST
INSERT
个变量
$id1=$_GET["suid"];
...
$name=$_POST['sent_by'];
$id=$_POST['hidden_id'];
$id2=$_POST['hidden_id2'];
$message=$_POST['message'];
$submit= $_POST['submit'];
...
第3期 -
您在查询中有错误。它应该是VALUES
,而不是VALUE
,你应该在`INSERT INTO注释(id,name,message,receiver,sender,date,time)之前包含列VALUES('','$ name' , '$消息', '$ ID', '$ ID1', '$日期', '$时间')
$place="INSERT INTO comments VALUE('','$name','$message','$id','$id1','$date','$time')";
$run = mysql_query("$place");
第4期 -
您表单中的所有value=
都缺少价值周围的引号''
。
<form action="sendcomment.php" method="post">
<input type ='hidden' name='hidden_id' value = <?php print $uid; ?> >
<input type ='hidden' name='hidden_id2' value = <?php print $id1; ?> >
Name : <input type ='name' name='sent_by' value = <?php print $username; ?>></br>
Message: <textarea name='message'></textarea></br>
<input type='submit' value='submit' name="submit" /></br>
</form>
我知道您已经接受了答案,但是您仍然需要解决很多代码问题。这些都会导致您的表单出现问题并插入数据库。另外,它们会给你带来更多问题。
答案 3 :(得分:0)
只是这个
$id1=$_GET["suid"];
替换为
$id1=$_POST["suid"];
当使用$ _GET变量shuld在url中时。 当使用$ _POST变量时,url
中没有显示