Сопоставить имя пользователя (поле из таблицы MySQL) с идентификатором сеанса в PHP - PullRequest
0 голосов
/ 17 октября 2011

Как мне это сделать? Я пробовал все по-разному, но я просто не могу это сделать!

По сути, я пытаюсь извлечь информацию из «стартовой таблицы» и отобразить только данные зарегистрированных пользователей.

Вот код, который дает мне сообщение об ошибке, в котором я не могу решить:

 <?php
session_start();
require_once '../database.php';
if (isset($_SESSION['myusername'])){
echo "Welcome ".$_SESSION['myusername'];
}
?>

<?php
include '../database.php';

$userid = $_SESSION["myusername"];

#the where clause is where im stuck at the moment!

Line 50:
$result = mysql_query("SELECT Recipename, Ingredients, Method, Time FROM starters WHERE username = $_SESSION['myusername']");

echo "<table border='0'><table border width=65%> <tr><th>Recipie Name</th><th>Ingredients</th><th>Method</th><th>Time</th></tr>";

 while($row = mysql_fetch_array($result))
{
        echo "<tr>";
        echo "<td>" . $row['Recipename']. "</td>";
        echo "<td>" . $row['Ingredients']. "</td>";
        echo "<td>" . $row['Method']. "</td>";
        echo "<td>" . $row['Time']. 'minutes'."</td>";

echo "</tr>";
}
echo "</table>";

        ?>
</table>

я получаю следующее сообщение об ошибке:

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/jahedhus/public_html/cook/usersloggedin/starters.php on line 50

строка 50 - оператор выбора! Буду очень признателен за вашу помощь, Большое спасибо!

Ответы [ 3 ]

2 голосов
/ 17 октября 2011

Вам необходимо заключить имя пользователя в кавычки:

$result = mysql_query("SELECT Recipename, Ingredients, Method, Time FROM starters WHERE username = '{$_SESSION['myusername']}'");

Кроме того, вы доверяете, что $_SESSION['myusername'] является допустимым именем пользователя (не какой-либо строкой вложенного SQL). Если вы не знаете, что данные в безопасности, вам нужно как минимум экранировать данные .

0 голосов
/ 17 октября 2011

Проблема с кавычками состоит в том, что они будут склеены, я бы их тоже отделил:

$result = mysql_query("SELECT Recipename, Ingredients, Method, Time FROM starters WHERE username = ".$_SESSION['myusername']);

OR

$result = mysql_query("SELECT Recipename, Ingredients, Method, Time FROM starters WHERE username = '$_SESSION[myusername]'");
0 голосов
/ 17 октября 2011

Измените строку:

$result = mysql_query("SELECT Recipename, Ingredients, Method, Time FROM starters WHERE username = $_SESSION['myusername']");

на эту:

$result = mysql_query("SELECT Recipename, Ingredients, Method, Time FROM starters WHERE username = '" . $_SESSION['myusername'] . "'");
...