Ако профила е на потребителя.

nBN

Registered
Ако профила е на потребителя, който си го разглежда, да има текст "Промени профила си"
Аз измислих това, но защо не се получава, къде ми е грешката и ако кода не струва да ми дадете нов. :) Благодаря ви :)

$qsql = mysql_query("SELECT * FROM users WHERE username = '".$_SESSION['username']."'");
$dateuser = mysql_fetch_array($qsql);

if($dateuser['id'] == $row['id']){
echo'Може да едитвашшшш братллллллееееееееее';
}
 
А от къде идва $row['id']?
Едит: мисля че може да направиш проверка м/у ид-то от адрес бара и това което отговаря на потребителя от сесията.
 
$username = $_SESSION['username'];
$result = mysql_query("SELECT * FROM users WHERE username='$username'");
$row = mysql_fetch_assoc($result);
 
$qsql = mysql_query("SELECT * FROM users WHERE username = '".$_SESSION['username']."'");
$dateuser = mysql_fetch_row($qsql);

if($dateuser[0] == $row['id']){
echo'Може да едитвашшшш братллллллееееееееее';
}
 
embaka каза:
$qsql = mysql_query("SELECT * FROM users WHERE username = '".$_SESSION['username']."'");
$dateuser = mysql_fetch_row($qsql);

if($dateuser[0] == $row['id']){
echo'Може да едитвашшшш братллллллееееееееее';
}

Пак се появява на всички потребители
 
ти прайш 2 едни и същи проверки бе човек

$qsql = mysql_query("SELECT * FROM users WHERE username = '".$_SESSION['username']."'");
$dateuser = mysql_fetch_row($qsql);

if($dateuser[0] == is_numeric($_REQUEST['id'])){
echo'Може да едитвашшшш братллллллееееееееее';
}
 
Пробвай така
PHP:
$id = (int)$_GET['id'];
$user = $_SESSION['username']; 
$qsql = mysql_query("SELECT * FROM users WHERE username='$user'"); 
$dateuser = mysql_fetch_assoc($qsql);
if($dateuser['id'] == $id)
{
echo'Може да едитвашшшш братллллллееееееееее'; 
}
 
embaka каза:
ти прайш 2 едни и същи проверки бе човек

$qsql = mysql_query("SELECT * FROM users WHERE username = '".$_SESSION['username']."'");
$dateuser = mysql_fetch_row($qsql);

if($dateuser[0] == is_numeric($_REQUEST['id'])){
echo'Може да едитвашшшш братллллллееееееееее';
}

По твоя начин, нищо не става а при на inferno16 се появява на всички потребители отново.
 
Има и по-лесен начин, който е по-практичен. Записваш в сесията ID на потребителя(след като ползваш на други места ID е логично да запазиш ID вместо име) и си правиш функция, която взима името според ID:

PHP:
function getUserName($id){
     $query = mysql_query("SELECT `username` FROM `users` WHERE `id` = '{$id}'");
     if($query){
          $row = mysql_fetch_assoc($query);
          return $row['username'];
     }

     return false;
}

А това, което искаш го правиш по следния начин:

PHP:
if($_SESSION['user_id'] == $_GET['id']){
     echo "Можеш да едитваш, бро!";
}
 
това е логиката, проблема е в теб, някоя от променливите не съответства на примера, това id, което го вземаш от url, сигурен ли си че е id а не е с друга стойност????

и защо сравняваш id с username, ако полето username е име и го сравняваш с id нали се сещаш, че никога няма се получи
 
embaka каза:
това е логиката, проблема е в теб, някоя от променливите не съответства на примера, това id, което го вземаш от url, сигурен ли си че е id а не е с друга стойност????

и защо сравняваш id с username, ако полето username е име и го сравняваш с id нали се сещаш, че никога няма се получи

АХА, с id като го направя става (yes), но как ще стане с username ?
използвам този код:

$id = (int)$_GET['id'];
$user = $_SESSION['username'];
$qsql = mysql_query("SELECT * FROM users WHERE username='$user'");
$dateuser = mysql_fetch_assoc($qsql);
if($dateuser['id'] == $id)
{
echo'Може да едитвашшшш братллллллееееееееее';
}
 
Няма да е лошо този ред:
PHP:
$qsql = mysql_query("SELECT * FROM users WHERE username='$user'");
да свикнеш да го пишеш така:
PHP:
$qsql = mysql_query("SELECT * FROM users WHERE username='$user'") or die(mysql_error());
може да ти спести много главоболие.
 
Лелелеле :D толкова лесно и просто
Да предположим, че записваш сесията по този начин
$username = $_SESSION['username'];
И просто правиш така
if($username) {
можеш да едитваш
}
ако между тези фигурни скоби сложиш кода за едит то резултатите ще са уникалниза всеки потребител т.е. всеки потребител ще сиу вижда неговите си данни
 
kikity_94 каза:
Лелелеле :D толкова лесно и просто
Да предположим, че записваш сесията по този начин
$username = $_SESSION['username'];
И просто правиш така
if($username) {
можеш да едитваш
}
ако между тези фигурни скоби сложиш кода за едит то резултатите ще са уникалниза всеки потребител т.е. всеки потребител ще сиу вижда неговите си данни

Поправи ме ако греша но това не прави проверката така: ако $username има стойност (т.е. си логнат) прави еди кво си? Ако е така това не решава проблема.
 
kikity_94 каза:
Лелелеле :D толкова лесно и просто
Да предположим, че записваш сесията по този начин
$username = $_SESSION['username'];
И просто правиш така
if($username) {
можеш да едитваш
}
ако между тези фигурни скоби сложиш кода за едит то резултатите ще са уникалниза всеки потребител т.е. всеки потребител ще сиу вижда неговите си данни
+1 на inferno16
 
Толкова ли неможахте да се сетите за това ?!
PHP:
$sql = mysql_query("SELECT * FROM `users` WHERE `username`='$user'");
$row = mysql_fetch_array($sql);
if($_SESSION['user'] == $row['username'])
{
  echo "Bamm  ->> [EDIT ME]";
}
:evil:
 
nBN каза:
+1 на inferno16
Благодаря, но проблема решен ли е?

M1tq96 каза:
Толкова ли неможахте да се сетите за това ?!
PHP:
$sql = mysql_query("SELECT * FROM `users` WHERE `username`='$user'");
$row = mysql_fetch_array($sql);
if($_SESSION['user'] == $row['username'])
{
  echo "Bamm  ->> [EDIT ME]";
}
:evil:
Това пък що за дивотия е
$user = ($_SESSION['user'];
Ти по това което написа бъркаш в базата данни намираш ред в които потребителя да съответсва на този от сесията и после сравняваш полето потребител със сесията. Това е все едно да напишеш if($user == $_SESSION['user']){}
 
Ако ще се ползват ID по-добре да се направи, както му показах. Иначе, ако ползва username в ГЕТ и в сесията, то няма смисъл да бърка в базата данни.
 

Back
Горе