Въпреки наличието на сесия, излиза - Намате достъп

vasilev5

Registered
Въпреки наличието на сесия, излиза - Намате достъп до страницата

<?php
session_start();
$_SESSION['username'] = $username;
if($_SESSION['level'] == 3){
$db_conn = mysql_connect("$host", "$dbusername", "$dbpassword")
or die("unable to connect to the database");
mysql_select_db("$db", $db_conn) or die("unable to select the database");
$query="SELECT id,title,category, activen FROM lesson_posts WHERE activen='1' AND category = '9 klas' OR category = ' Ïðàâîïèñ' OR category = 'Ïóíêòóàöèÿ' OR category= 'Ëèòåðàòóðà' ORDER BY id ";
$result=mysql_query($query, $db_conn) or die(mysql_error($db_conn));
echo '<center><table border="1">
<tr><td align="center" class="names" >Óðîöè 9 êëàñ:
</td></tr>';
while ($row=mysql_fetch_row($result)) {
if (strlen($row['1'])>49)
{$points='...';}
else
{$points='';}
$row['1'] = substr($row['1'],0,49);
$row['1']=substr($row['1'],0 , 49);
echo"<tr><td><a href=\"?d=dir&c=lessons&p=lesson&view=$row[0]\">$row[2] : $row[1]$points </a></td></tr>";
}
echo "</table>";

} else { echo "Íÿìàòå äîñòúï äî òàçè ñòðàíèöà!";

}
?>
 
отвори документа в Notepad++, изрежи го с CTRL+Х, смени Оформлението на UTF-8(без BOM) и натисни CTRL+V.
 
PHP:
<?php
session_start();
$_SESSION['username'] = $username;
if($_SESSION['level'] == 3){
$db_conn = mysql_connect("$host", "$dbusername", "$dbpassword")
or die("unable to connect to the database");
mysql_select_db("$db", $db_conn) or die("unable to select the database");
$query="SELECT `id`,`title`,`category`, `activen` FROM `lesson_posts` WHERE `activen`='1' AND `category` = '9 klas' OR `category` = ' Ïðàâîïèñ' OR `category` = 'Ïóíêòóàöèÿ' OR `category`= 'Ëèòåðàòóðà' ORDER BY `id` ";
$result=mysql_query($query, $db_conn) or die(mysql_error($db_conn));
echo '<center><table border="1">
<tr><td align="center" class="names" >Óðîöè 9 êëàñ:
</td></tr>';
while ($row=mysql_fetch_row($result)) {
if (strlen($row['1'])>49)
{$points='...';}
else
{$points='';}
$row['1'] = substr($row['1'],0,49);
$row['1']=substr($row['1'],0 , 49);
echo"<tr><td><a href=\"?d=dir&c=lessons&p=lesson&view=$row[0]\">$row[2] : $row[1]$points </a></td></tr>";
}
echo "</table>";

} else { echo "Íÿìàòå äîñòúï äî òàçè ñòðàíèöà!";

}
?>
Също така е добре вместо $_SESSION['username'] = $username;
да си я проверяваш дали е сетната с if (isset($_SESSION['username'])){
code here
}
Така?
 
Пробвай така:
PHP:
<?php
session_start();
$_SESSION['username'] = $username;
if($_SESSION['level'] == 3){
$db_conn = mysql_connect("$host", "$dbusername", "$dbpassword")
or die("unable to connect to the database");
mysql_select_db("$db", $db_conn) or die("unable to select the database");
$query="SELECT `id`,`title`,`category`, `activen` FROM `lesson_posts`
WHERE `activen`='1' AND (`category` = '9 klas' OR `category` = ' Ïðàâîïèñ' OR
`category` = 'Ïóíêòóàöèÿ' OR `category`= 'Ëèòåðàòóðà') ORDER BY `id` ";
$result=mysql_query($query, $db_conn) or die(mysql_error($db_conn));
echo '<center><table border="1">
<tr><td align="center" class="names" >Óðîöè 9 êëàñ:
</td></tr>';
while ($row=mysql_fetch_row($result)) {
if (strlen($row['1'])>49)
{$points='...';}
else
{$points='';}
$row['1'] = substr($row['1'],0,49);
$row['1']=substr($row['1'],0 , 49);
echo"<tr><td><a href=\"?d=dir&c=lessons&p=lesson&view=$row[0]\">$row[2] : $row[1]$points </a></td></tr>";
}
echo "</table>";
}else{
    echo "Íÿìàòå äîñòúï äî òàçè ñòðàíèöà!";
}
?>
[/php]
 
А къде си задал стойност на $db???

PHP:
$db="lesson_posts";
mysql_select_db("$db", $db_conn) or die("unable to select the database");

Пробвай така:

PHP:
<?php
session_start();
$db="lesson_posts";
$_SESSION['username'] = $username;
if($_SESSION['level'] == 3){
$db_conn = mysql_connect("$host", "$dbusername", "$dbpassword")
or die("unable to connect to the database");
mysql_select_db("$db", $db_conn) or die("unable to select the database");
$query="SELECT id,title,category, activen FROM lesson_posts WHERE activen='1' AND category = '9 klas' OR category = ' Ïðàâîïèñ' OR category = 'Ïóíêòóàöèÿ' OR category= 'Ëèòåðàòóðà' ORDER BY id ";
$result=mysql_query($query, $db_conn) or die(mysql_error($db_conn));
echo '<center><table border="1">
<tr><td align="center" class="names" >Óðîöè 9 êëàñ:
</td></tr>';
while ($row=mysql_fetch_row($result)) {
if (strlen($row['1'])>49)
{$points='...';}
else
{$points='';}
$row['1'] = substr($row['1'],0,49);
$row['1']=substr($row['1'],0 , 49);
echo"<tr><td><a href=\"?d=dir&c=lessons&p=lesson&view=$row[0]\">$row[2] : $row[1]$points </a></td></tr>";
}
echo "</table>";

} else { echo "Íÿìàòå äîñòúï äî òàçè ñòðàíèöà!";

}
?>
 
Както каза @Nazi_93 ,сложи едно if(isset($_SESSION['username'])) {echo "OK";
}
след session_start();
Също така кодът ти е много лошо написан,mysql_connect("$host", "$dbusername", "$dbpassword") ,няма смисъл от кавичките.
 
PHP:
<?php
session_start();
$db="lesson_posts";
$_SESSION['username'] = $username;
if($_SESSION['level'] == 3){
$db_conn = mysql_connect("$host", "$dbusername", "$dbpassword")
or die("unable to connect to the database");
mysql_select_db("$db", $db_conn) or die("unable to select the database");
$query="SELECT id,title,category, activen FROM lesson_posts WHERE activen='1' AND category = '9 klas' OR category = ' Ïðàâîïèñ' OR category = 'Ïóíêòóàöèÿ' OR category= 'Ëèòåðàòóðà' ORDER BY id ";
$result=mysql_query($query, $db_conn) or die(mysql_error($db_conn));
echo '<center><table border="1">
<tr><td align="center" class="names" >Óðîöè 9 êëàñ:
</td></tr>';
while ($row=mysql_fetch_array($result)) {
if (strlen($row['1'])>49)
{$points='...';}
else
{$points='';}
$row['1'] = substr($row['1'],0,49);
$row['1']=substr($row['1'],0 , 49);
echo"<tr><td><a href=\"?d=dir&c=lessons&p=lesson&view=$row[0]\">$row[2] : $row[1]$points </a></td></tr>";
}
echo "</table>";

} else { echo "Íÿìàòå äîñòúï äî òàçè ñòðàíèöà!";

}
?>

или

PHP:
<?php
session_start();
$db="lesson_posts";
$_SESSION['username'] = $username;
if($_SESSION['level'] == 3){
$db_conn = mysql_connect("$host", "$dbusername", "$dbpassword")
or die("unable to connect to the database");
mysql_select_db("$db", $db_conn) or die("unable to select the database");
$query="SELECT id,title,category, activen FROM lesson_posts WHERE activen='1' AND category = '9 klas' OR category = ' Ïðàâîïèñ' OR category = 'Ïóíêòóàöèÿ' OR category= 'Ëèòåðàòóðà' ORDER BY id ";
$result=mysql_query($query, $db_conn) or die(mysql_error($db_conn));
echo '<center><table border="1">
<tr><td align="center" class="names" >Óðîöè 9 êëàñ:
</td></tr>';
while ($row=mysql_fetch_row($result)) {
if (strlen($row['1'])>49)
{$points='...';}
else
{$points='';}
$row['1'] = substr($row['1'],0,49);
$row['1']=substr($row['1'],0 , 49);
echo"<tr><td><a href=\"?d=dir&c=lessons&p=lesson&view=$row[0]\">$row[2] : $row[1]$points </a></td></tr>";
}
echo "</table>";

} else { echo "Íÿìàòå äîñòúï äî òàçè ñòðàíèöà!";

}
?>
Сега? Пробвай 1 от двете...
 
Пробвах и двата файла
с $db="lesson_posts"; ми блокира едит профила. Като го изтрих отново дава - Нямате достъп
 
Пробвах и двата файла
с $db="lesson_posts"; ми блокира едит профила. Като го изтрих отново дава - Нямате достъп
 
А провери ли дали акаунта, с който се опитваш да влезеш има права за достъп ? Т.е.
PHP:
$_SESSION['level'] == 3
За всеки случай направи
PHP:
echo $_SESSION['level'];
и виж какво число е.
 
А въобще сигурен ли си, че стойността на $_SESSION['level'] трябва да е 3, за да се изпълни останалата част на кода. и Сигурен ли си, че потребителя с който влизаш има level 3?

След като го установиш, проверяваш проверката.

PHP:
if($_SESSION['level'] != ""&&$_SESSION['level'] == 3){
echo "gotovo";
}
 

Back
Горе