Har du rätt ID-nummer i sessions-vairablen då? Vad händer om du lägger till en die() direkt efter att du hämtat nummret? Får du korrekt id??
$medlemsnummer=$_SESSION['id'];
die($medlemsnummer);
2 svar · 434 visningar · startad av Blockqoute
Jag håller på med ett forum som nästa är helt klart. Jag har bara ett problem kvar som jag tycker är väldigt underligt. Jag har en inloggningsfunktion till forumet och problemet är att forumet själv ändrar vilken person som är inloggad på en viss sida. Tror ni att det finns någon vänlig själ som kan förklara för mig varför denna sida ändrar detta? Det som alltid ändras är att vilken användare som än loggar in så ändras det alltid till den som står först i databasen, alltså den med lägst id. Sedan är det denna användare som är inloggad framöver.
Sidan se ut som nedan (den är ganska lång):
<?php include ("connect.php");
session_start();
// om session tilldelad, login = ok.
if(!isset($_SESSION['id'])){
header("location:lanalas.php");
}
$medlemsnummer=$_SESSION['id'];
$result5=mysql_query("SELECT anvandarnamn FROM medlem WHERE medlemsnummer='$medlemsnummer'");
$rad5=mysql_fetch_array($result5);
$anvandarnamn=$rad5['anvandarnamn'];
$t=$_GET['t'];
if(isset($_POST['Submit'])){
$sql2="SELECT MAX(a_id) AS Maxa_id FROM forum_answer WHERE question_id='{$_POST['t']}'";
$result2=mysql_query($sql2);
$rows2=mysql_fetch_array($result2);
// add + 1 to highest answer number and keep it in variable name "$Max_id". if there no answer yet set it = 1
if ($rows2) {
$Max_id = $rows2['Maxa_id']+1;
}
else {
$Max_id = 1;
}
$a_answer=$_POST['detail'];
$datetime=date("Y-m-d H:i:s"); // create date and time
// Insert answer
$sql3="INSERT INTO forum_answer(question_id, a_id, a_name, a_answer, a_datetime)VALUES('{$_POST['t']}', '$Max_id', '$anvandarnamn', '$a_answer', '$datetime')";
$result3=mysql_query($sql3);
if($result3){
echo "Successful<BR>";
}
else {
echo "ERROR";
}
}
?>
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Bokia - Startsida</title>
<meta name="description" content="">
<meta name="keywords" content="">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div align="center">
<?
include "inc_huvud.php";
include "inc_meny.php";
include "inc_meny2_lanalas.php";
?>
<table width="735" cellspacing="0" cellpadding="0" border="0" class="main"><tr><td valign="top">
<table border="0" width="700"><tr><td align="center">
<h2>Låna & Läs</h2>
</td></tr>
<tr><td align="center"><h1>Forum</h1></td></tr></table>
<?
if(isset($_POST['Submit'])){
$result10=mysql_query("SELECT fid, topic FROM forum_question WHERE id='{$_POST['t']}'");
$rad10=mysql_fetch_array($result10);
$fid=$rad10['fid'];
$topic=$rad10['topic'];
$result11=mysql_query("SELECT titel, id FROM forum WHERE id='$fid'");
$rad11=mysql_fetch_array($result11);
$id=$rad11['id'];
$titel=$rad11['titel'];?>
<b>Visar ämne: </b><?echo $topic;?>
<p><a href="forum.php">Forumindex</a> -> <a href="main_forum.php?f=<? echo $id; ?>"><?echo $titel;?></a><p>
<?}else{
$result10=mysql_query("SELECT fid, topic FROM forum_question WHERE id='$t'");
$rad10=mysql_fetch_array($result10);
$fid=$rad10['fid'];
$topic=$rad10['topic'];
$result11=mysql_query("SELECT titel, id FROM forum WHERE id='$fid'");
$rad11=mysql_fetch_array($result11);
$id=$rad11['id'];
$titel=$rad11['titel'];?>
<b>Visar ämne: </b><?echo $topic;?>
<p>
<a href="forum.php">Forumindex</a> -> <a href="main_forum.php?f=<? echo $id; ?>"><?echo $titel;?></a><p>
<?}
if(isset($_POST['Submit'])){
$sql="SELECT * FROM forum_question WHERE id='{$_POST['t']}'";
$result=mysql_query($sql);
$rad=mysql_fetch_array($result);
?>
<table width="700" border="1" cellpadding="5" cellspacing="1" style="border:1px solid #000;">
<tr><td style="background-color:#7E7E7E;" width="150"><b>Författare</b></td>
<td style="background-color:#7E7E7E;"><b>Meddelande</b></td></tr>
<tr><td rowspan="2" style="background-color:#7E7E7E;"><p><? echo $rad['name']; ?><p><font style="font-size : 9px;">Skrivet:<br><? echo $rad['datetime']; ?></font></td>
<td style="background-color:#eee;"><b>Rubrik: </b><? echo $rad['topic']; ?></td></tr>
<tr><td style="background-color:#eee;"><? echo $rad['detail']; ?></td></tr>
</table>
<BR>
<?php
$sql3="SELECT * FROM forum_answer WHERE question_id='{$_POST['t']}' ORDER BY a_id ASC";
$result3=mysql_query($sql3);
while($rad3=mysql_fetch_array($result3)){
?>
<table width="700" border="1" cellpadding="5" cellspacing="1" style="border:1px solid #000;">
<tr><td style="background-color:#7E7E7E;" width="150"><b>Författare</b></td>
<td style="background-color:#7E7E7E;"><b>Meddelande</b></td></tr>
<tr><td style="background-color:#7E7E7E;"><p><? echo $rad3['a_name']; ?><p><font style="font-size : 9px;">Skrivet:<br><? echo $rad3['a_datetime']; ?></font></td>
<td style="background-color:#eee;" valign="top"><? echo $rad3['a_answer']; ?></td></tr>
</table>
<br>
<?
}
}else{
$sql="SELECT * FROM forum_question WHERE id='$t'";
$result=mysql_query($sql);
$rad=mysql_fetch_array($result);
?>
<table width="700" border="1" cellpadding="5" cellspacing="1" style="border:1px solid #000;">
<tr><td style="background-color:#7E7E7E;" width="150"><b>Författare</b></td>
<td style="background-color:#7E7E7E;"><b>Meddelande</b></td></tr>
<tr><td rowspan="2" style="background-color:#7E7E7E;"><p><? echo $rad['name']; ?><p><font style="font-size : 9px;">Skrivet:<br><? echo $rad['datetime']; ?></font></td>
<td style="background-color:#eee;"><b>Rubrik: </b><? echo $rad['topic']; ?></td></tr>
<tr><td style="background-color:#eee;"><? echo $rad['detail']; ?></td></tr>
</table>
<BR>
<?php
$sql3="SELECT * FROM forum_answer WHERE question_id='$t' ORDER BY a_id ASC";
$result3=mysql_query($sql3);
while($rad3=mysql_fetch_array($result3)){
?>
<table width="700" border="1" cellpadding="5" cellspacing="1" style="border:1px solid #000;">
<tr><td style="background-color:#7E7E7E;" width="150"><b>Författare</b></td>
<td style="background-color:#7E7E7E;"><b>Meddelande</b></td></tr>
<tr><td style="background-color:#7E7E7E;"><p><? echo $rad3['a_name']; ?><p><font style="font-size : 9px;">Skrivet:<br><? echo $rad3['a_datetime']; ?></font></td>
<td style="background-color:#eee;" valign="top"><? echo $rad3['a_answer']; ?></td></tr>
</table><br>
<?
}
}
$sql4="SELECT view FROM forum_question WHERE id='$t'";
$result4=mysql_query($sql4);
$rows=mysql_fetch_array($result4);
$view=$rows['view'];
// if have no counter value set counter = 1
if(empty($view)){
$view=1;
$sql5="INSERT INTO forum_question(view) VALUES('$view') WHERE id='$t'";
$result5=mysql_query($sql5);
}
// count more value
$addview=$view+1;
$sql6="update forum_question set view='$addview' WHERE id='$t'";
$result5=mysql_query($sql6);
mysql_close();
?>
<BR>
<form name="form1" method="post" action="view_topic.php">
<table width="700" border="0" cellpadding="5" cellspacing="1" style="border:1px solid #000;">
<tr>
<td colspan="3" style="background-color:#7E7E7E;"><strong>Svara på tidigare inlägg</strong> </td>
</tr>
<tr>
<input type="hidden" value="<? if(isset($_POST['t'])){ echo $_POST['t']; } else{ echo $t; } ?>" name="t">
<td valign="top" style="background-color:#eee;"><strong>Meddelande:</strong></td>
<td style="background-color:#eee;"><textarea name="detail" cols="50" rows="10" id="detail"></textarea></td>
</tr>
<tr>
<td style="background-color:#eee;"><strong>Användarnamn:</strong></td>
<td style="background-color:#eee;"><?echo $anvandarnamn;?></td>
</tr>
<tr>
<td style="background-color:#eee;"> </td>
<td style="background-color:#eee;"><input type="submit" name="Submit" value="Skicka" style="font-family: Verdana; color: #000000; font-size: 9px; background-color: #E1E1E1; border: 3px outset #8B8B8B">
<input type="reset" name="Submit2" value="Rensa" style="font-family: Verdana; color: #000000; font-size: 9px; background-color: #E1E1E1; border: 3px outset #8B8B8B">
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
<?
include "inc_botten.php";
?>
</body>
</html>
Har du rätt ID-nummer i sessions-vairablen då? Vad händer om du lägger till en die() direkt efter att du hämtat nummret? Får du korrekt id??
$medlemsnummer=$_SESSION['id'];
die($medlemsnummer);
Regel nummer 1 när du använder sessioner. Använd alltid unika namn!
$_SESSION['id']; bör du ändra till något annat typ $_SESSION['sess_id'];
Har du en annan variabel som heter $id så kan dom krocka annars.