2014-02-10 3 views
1

Работа на сайте пользователя в данный момент, и возникли некоторые проблемы с этим кодом:

<?php 

// Connects to your Database 
mysql_connect ("host","a2530897_admin","pass") or die("Could not conenct"); 
mysql_select_db("a2530897_members") or die ("could not connect to dadabase!"); 

$SQL=mysql_query("SELECT * FROM users WHERE username='".$_SESSION['username']."'") 
or die(mysql_error()); 
session_start(); 

echo "<strong>First Name: ". $_SESSION['first_name']."</strong>"; 
echo "<strong>Last Name: ". $_SESSION['last_name']."</strong>"; 
echo "<strong>Email Name: ". $_SESSION['email_address']."</strong>"; 
echo "<strong>Photo: ". $_SESSION['photo']."</strong>"; 
echo "<strong>Username: ". $_SESSION['username']."</strong>"; 
echo "<strong>Date: ". $_SESSION['date3']."</strong>"; 

?> 

Это, кажется, приносит большую часть информации правильно, имя, фамилию и адрес электронной почты работы. Когда я пытаюсь воссоздать имя фотографии, имя пользователя или дату, введенную с информацией о пользователе, она не отображается и заканчивается пустым? Есть ли у кого-нибудь идеи, что я могу делать неправильно?

+3

Где вы устанавливаете все переменные сеанса? Вы делаете что-либо с вашим запросом? – putvande

+1

Вы оба уязвимы для SQL-инъекции в отношении атак XSS. – PeeHaa

+0

Я не уверен, как это сделать, я новичок в таких вещах и не очень хорошо писал код, я нахожу его в сети и использую его, если только это не просто. Этот код, конечно, не работает, хотя я не могу придумать ничего, что делает, особенно для получения имени рисунка. – AidanPT

ответ

2

Вы используете сессию перед запуском сессии

$SQL=mysql_query("SELECT * FROM users WHERE username='".$_SESSION['username']."'") 
or die(mysql_error()); 
session_start(); 

должен быть

session_start(); 
$SQL=mysql_query("SELECT * FROM users WHERE username='".$_SESSION['username']."'") 
or die(mysql_error()); 

Как на основе имени пользователя вы Fetching запись для этого пользователя тогда нет необходимости отображать информацию из переменной сеанса вы можете напрямую как показано ниже

session_start(); 
$SQL=mysql_query("SELECT * FROM users WHERE username='".$_SESSION['username']."'") 
or die(mysql_error()); 

$row = mysql_fetch_array($SQL); 

echo "<strong>First Name: ". $row['first_name']."</strong>"; 
echo "<strong>Last Name: ". $row['last_name']."</strong>"; 
echo "<strong>Email Name: ". $row['email_address']."</strong>"; 
echo "<strong>Photo: ". $row['photo']."</strong>"; 
echo "<strong>Username: ". $row['username']."</strong>"; 
echo "<strong>Date: ". $row['date3']."</strong>"; 
+0

Спасибо за ваш ответ, просто попробовал это и до сих пор не получил информацию обратно? Имя и электронная почта все еще работают, но ничего больше? – AidanPT

+0

Проверьте оставшуюся переменную независимо от того, установлено ли значение сеанса настройки или нет. – Roopendra

+0

Как это проверить? – AidanPT

Смежные вопросы