我在網站上有2個頁面;從URL獲取username
,將其放入$_SESSION
,並顯示該用戶所屬的組列表。會話未保存爲某些變量
當用戶選擇一個組時,該站點將轉到下一頁(group.php
頁面),並在其URL中提供該組名稱以便在組頁面中使用該組名稱。
在羣組頁面中,有一個表單可以發送要顯示在羣組頁面中的消息(kindda就像Facebook牆,我猜)。
問題出在這裏:
在組列表頁面username
被髮送到會話中; 羣組名稱被組頁面拾取後,我也將其發送到會話中, 但由於某種原因,當頁面到達if(isset($_POST['texts']))
部分時,它會記住用戶名,但不記錄組名。
任何想法爲什麼是這樣?
以下是組頁面的代碼。
<?php
session_start();
include_once("../connect.php");
$username = $_SESSION['username'];
$result = mysqli_query($conn, "SELECT id FROM users WHERE username='$username'");
while($row = mysqli_fetch_array($result)) {
$uid = $row['id'];
}
if(isset($_GET['groupname'])) {
$groupname = $_GET['groupname'];
}
$result = mysqli_query($conn, "SELECT id FROM groups WHERE groupname='$groupname'");
while($row = mysqli_fetch_array($result)) {
$gid = $row['id'];
}
$_SESSION['groupname'] = $groupname;
?>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<form action=
<?php
echo "'group.php?id=" . $gid . "'";
?> method="post" name="newtext">
<textarea name="texts" rows="4" cols="30"></textarea>
<input type="submit" id="subtext" name="submit" value="Submit" />
</form>
<?php
//add text message
if(isset($_POST['texts'])){
$texts = $_POST['texts'];
if($texts == "") {
echo "<script>alert('no message writen')</script>";
}else{
mysqli_query($conn, "INSERT INTO texts (`sender`, `sent`, `group`, `text`)
VALUES ('$uid', now(), '$gid', '$texts');");
echo "<script>alert('message recieved!')</script>";
}
}
?>
</div>
</body>
</html>
你在做'group.php?id'不應該是'group.php?groupname'嗎? – 2014-10-11 20:14:02
這應該用引號'action =「<?php echo」'group.php?id =「。$ gid。」'「;?>」''也可以。 – 2014-10-11 20:15:19
您在session或url中使用保存組名? – 2014-10-11 20:21:16