webForumDet fria alternativet

Inloggningen ändras i forumet

PHP

2 svar · 434 visningar · startad av Blockqoute

Medlem sedan dec. 200380 inlägg
Frågan#1

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;">&nbsp;</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>
Medlem sedan juli 20041 183 inlägg
#2

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);
Medlem sedan juni 20006 031 inlägg
#3

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.

265 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)