Сисма за регистрация - ранк система

sn1p3r

Registered
Здравейте, от доста време се опитвам да направя ранк система в сайта ми, но не знам защо нищо не става.

Добавих си поле при users с име rank, на което по подразбиране съм сложил 1, което ще ми е потребител и вече ще си го променям 2 за модератор и така.. Добавих си и следния код:

PHP:
<?
include "config.php";
$select = "SELECT user_rank FROM `users`";
$rank = $row['user_rank'];

if($rank == 3)
{
echo "TEST";
}
else
{
echo "TEST1";
}
?>

Но отново нищо :/ Мтака сега не съм сигурен кои файлове трябва да ви дам? Ще сложа файла за регистрация.

PHP:
<?php
require ("Config.php");

if(isset ($_POST['reg']))
{
       $name = addslashes($_POST['username']);
       $pass1 = addslashes($_POST['pass1']);
       $pass2 = addslashes($_POST['pass2']);
       $email = addslashes($_POST['email']);
	   $ime = addslashes($_POST['ime']);
	   $grad = addslashes($_POST['grad']);
	   $godini = addslashes($_POST['godini']);
       
       
       if(strlen($name) > 4)
       {
        $q = mysql_query("SELECT username FROM users WHERE username='$name'LIMIT 1") or die (mysql_error()); 
		echo "Успешно регистриране";
        if(mysql_num_rows($q) > 0)
        {
         $error = "Заето потребителско име";
        }	
        else
        {
          if(strlen($pass1) >= 6)
          {
           if($pass1 == $pass2)
           {
            if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+))*$",$email))
            {
             $error = "Невалиден емайл";
            }
            else
            {
              $newPass = md5($pass1);
            $query = "INSERT INTO users SET username='$name', password='$newPass', email='$email', ime='$ime', grad='$grad', godini='$godini', skype='$skype', icq='$icq', sait='$sait', interesi='$interesi'";
            mysql_query($query) or die(mysql_error());
            }

           }
            else
            {
             $error = "Паролите не съвпадат";
            }
          }
           else
           {
            $error = "Кратка парола";
           }
        }
       }
}

?>

М.. Ако трябва друг файл моля ви кажете ми и ще го сложа веднага =)

Благодар на всеки опитал да ми помогне.
 
Пренаписах ти файла за регистрация. Oпределено така е по-добре.

Код:
<?php
require ("Config.php");

if(isset ($_POST['reg']))
{
  $name = addslashes($_POST['username']);
  $pass1 = addslashes($_POST['pass1']);
  $pass2 = addslashes($_POST['pass2']);
  $email = addslashes($_POST['email']);
  $ime = addslashes($_POST['ime']);
  $grad = addslashes($_POST['grad']);
  $godini = addslashes($_POST['godini']);
       

  $errors = array();

  //Начало на проверките

  if(strlen($name) < 4)
    $errors[] = 'Потребителското име е твърде кратко';

  $q = mysql_query("SELECT username FROM users WHERE username='$name'LIMIT 1") or die (mysql_error()); 
  if(mysql_num_rows($q))
    $errors[] = 'Потребителското име е заето.';
  if(strlen($pass1) <= 6)
    $errors[] = 'Паролата трябва да е повече от 5 знака.';
  if($pass1 == $pass2)
    $errors[] = 'Паролите не съвпадат.';
  if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+))*$",$email)) //по-добре използвай preg_match
    $errors[] = 'Невалиден email.';

  //Край на првоерките.
  
  if(count($errors) > 0)
  {
    //Значи има грешка при регистрацията;
    echo '<pre>';
    print_r($errors);
    echo '</pre>';
  }
  else
  {
    $newPass = md5($pass1);
    $query = "INSERT INTO users SET username='$name', password='$newPass', email='$email', ime='$ime', grad='$grad', godini='$godini', skype='$skype', icq='$icq', sait='$sait', interesi='$interesi'";
    mysql_query($query) or die(mysql_error());
  }
}

?>

Ето и кода, който си дал, но в работещ вариант.
Ти си написал само и единствено заявката. Трябва да я изпълниш и да вземеш резултата от нея.
Код:
<?
include "config.php";
$select = "SELECT `user_rank` FROM `users`";
$query  = mysql_query($select);
$row    = mysql_fetch_row($query)
$rank = $row[0];

if($rank == 3)
{
  echo "TEST";
}
else
{
  echo "TEST1";
}
?>
 
Ето:

[sql]CREATE TABLE IF NOT EXISTS `users` (
`user_id` int(5) NOT NULL AUTO_INCREMENT,
`username` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
`ime` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`grad` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`godini` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`rank` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
`skype` varchar(25) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Няма информация',
`icq` varchar(35) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Няма информация',
`profesiq` varchar(25) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Няма информация',
`interesi` varchar(25) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Няма информация',
`sait` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`opisanie` varchar(400) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Няма сложено описание',
`text` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Няма сложено описание',
`wrong` varchar(25) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
`group` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'img/login/member.png',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=59 ;[/sql]

Сега ще пробвам с това, което ми даде.
 
Сложих това, което ми даде (първо промених user_rank на rank)

PHP:
<?
include "config.php";
$select = "SELECT `rank` FROM `users`";
$query  = mysql_query($select);
$row    = mysql_fetch_row($query)
$rank = $row[0];

if($rank == 3)
{
  echo "TEST";
}
else
{
  echo "TEST1";
}
?>

и ми изкара тази грешка:

Код:
Parse error: parse error in C:\xampp\htdocs\library\inc\profmenu.php on line 24

на 24 ред е това:

PHP:
$rank = $row[0];
 
Fakeheal каза:
На ред:
Код:
$row    = mysql_fetch_row($query)

Сложи изпуснатата ;. Да стане:
Код:
$row    = mysql_fetch_row($query);

Пф.. Даже и не го видях :d Ам направих го и пак същото с това, което си бях написал и аз :/ излиза ми текста от else :/ А съм си сложил ранк 3 пробвах сложих си 1 и промених това на 1 и пак ми излиза това от Else :/
 
Fakeheal каза:
Напиши:
Код:
var_dump($row[0]);

И покажи какво вади.

За първи път виждам това var_dump и отворих в google Да видя как точно да го сложа направих го така:

PHP:
$user = $_SESSION['username'];
include "config.php";
$select = "SELECT `rank` FROM `users`";
$query  = mysql_query($select);
$row    = mysql_fetch_row($query);
$rank = $row[0];
var_dump($row[0]);

И излезе:

Код:
 string(0) "" TEST1
 
А бе вие добре ли сте ?? човекът ви пита за едно вие му давате съвсем различни неща !? ...
По темата :
направи го така ;)

PHP:
$user = $_SESSION['username'];

include "config.php";

$select = "SELECT `rank` FROM `users` WHERE username='$user'";

$query  = mysql_query($select);

$row    = mysql_fetch_row($query);

$rank = $row[rank];
 
Карамелчо, преди да ни слагаш диагнози, моля те провери нещата, които даваш.

Първо видях, че кода му за регистрация не е най-добрия вариант. Реших да го пренапиша. Ей, така, за спорта.

Второ даваш някакъв код, който не знам дали си тествал, но не работи. Причината е, че mysql_fetch_row() "Returns a numerical array that corresponds to the fetched row and moves the internal data pointer ahead."

Така че $row няма как да съдържа нещо с ключ 'rank'.

Пробвай да направиш нещо такова:

Код:
$user = $_SESSION['username'];
include "config.php";
$select = "SELECT `rank` FROM `users` WHERE `username` = '$user'";
$query  = mysql_query($select);
$row    = mysql_fetch_row($query);
$rank = $row[0];
var_dump($row[0]);
 
Fakeheal каза:
Карамелчо, преди да ни слагаш диагнози, моля те провери нещата, които даваш.

Първо видях, че кода му за регистрация не е най-добрия вариант. Реших да го пренапиша. Ей, така, за спорта.

Второ даваш някакъв код, който не знам дали си тествал, но не работи. Причината е, че mysql_fetch_row() "Returns a numerical array that corresponds to the fetched row and moves the internal data pointer ahead."

Така че $row няма как да съдържа нещо с ключ 'rank'.

Пробвай да направиш нещо такова:

Код:
$user = $_SESSION['username'];
include "config.php";
$select = "SELECT `rank` FROM `users` WHERE `username` = '$user'";
$query  = mysql_query($select);
$row    = mysql_fetch_row($query);
$rank = $row[0];
var_dump($row[0]);

А стана :D Мале ти си супер. Много ти благодаря за цялото това отделено време и даже тази точка, която ти давам е малко в сравнение това, което ти направи отново благодаря ти =)
 

Back
Горе