PHP регистрация към база

SuCcEsS

Registered
здравейте може ли някои да ми направи форма за регистрация към тази база

Код:
id INT NOT NULL AUTO_INCREMENT, 
						PRIMARY KEY(id),
						status VARCHAR(20),
						user_name VARCHAR(50),
						password VARCHAR(100)
 
Здравей, SuCcEsS!
Направих ти го само за user_name и password, вече ти ще си добавиш както искаш да ти бъде status.
Ще започнем с файла за връзката ти към базата данни:

Код:
<?php
$db = new mysqli('localhost', 'root', 'password', 'database');

if($db->connect_errno){
  die("Има проблем с връзката моля опитайте по-късно!");
}

mysqli_query($db,"SET NAMES UTF8");
?>

По config файла не вярвам да имаш някакви въпроси.

register.php файла:
Код:
 <?php
 require_once 'config.php';
  if(isset($_POST['register']))
  {
    $user_name = trim($_POST['user_name']);
    $password = md5(trim($_POST['password']));
    if(strlen($user_name) < 4) 
    {
      echo "Потребителското име не може да бъде по-малко от 4 букви";
    }
    else if(preg_match("/[^a-z|0-9$]/i", $password))
    {
      echo "Невалидна парола";
    }
    else 
        {
          mysqli_query($db, "INSERT INTO users (user_name, password) VALUES('$user_name','$password')") or die(mysqli_error());
          echo "Вие се регистрирахте успешно";
        }
  }
?>
<!DOCUMENT Register.php>
<html>
<head>
  <title>Регистрация</title>
</head>
<body>
<form action="" method="post">
	Потребителко име :
	<input type="text" name="user_name"> <br/>
	Парола:
	<input type="password" name="password"><br/>
<input type="submit" name="register" value="Регистрация">
</form>
</body>
</html>
 
Извинявам се за спама, но ..
Видях това:
Код:
$password = md5(trim($_POST['password']));
и после:
Код:
 if(preg_match("/[^a-z|0-9$]/i", $password))
    {
      echo "Невалидна парола";
    }

Много ми е интересно, защо СЛЕД като вече си прехвърлил паролата в md5 я проверяваш ?! Разбирам да я провериш преди да я кодираш и накрая да я бутнеш към md5 .. ама тъй .. не можах да го схвана тва.. понеже дори и празен стринг да се подаде - то пак ще го прехвърли в md5.. :idea: :arrow: :D
 
joTunkiq каза:
Извинявам се за спама, но ..
Видях това:
Код:
$password = md5(trim($_POST['password']));
и после:
Код:
 if(preg_match("/[^a-z|0-9$]/i", $password))
    {
      echo "Невалидна парола";
    }

Много ми е интересно, защо СЛЕД като вече си прехвърлил паролата в md5 я проверяваш ?! Разбирам да я провериш преди да я кодираш и накрая да я бутнеш към md5 .. ама тъй .. не можах да го схвана тва.. понеже дори и празен стринг да се подаде - то пак ще го прехвърли в md5.. :idea: :arrow: :D

В началото не го бях сложил там md5 ама точно като слагах тук кода реших да го добавя и така се е получило.

Моя грешка :)
 
Бих предложила валидацията на данните да става по този метод. Така ще провери всички полета и ще изкара евентуалните грешки. :)

PHP:
$errors  = array(); //тук ще държим грешките


//някакви проверки
if(strlen($user_name) < 4) 
{ 
	//добавяме error message-a
	$errors[] = 'Името трябва да е по-голямо от 4 знака.'; 
} 


if(preg_match("/[^a-z|0-9$]/i", $password)) 
{ 
	$errors[] = 'Паролата е невалидна.';	
} 

//ако $errors е празен, няма грешки
if(count($errors) > 0)
{
	//тук, разбира се някакво допълнително стилизиране or something
	echo '<pre>';
	print_r($errors);
	echo '</pre>';
}
else
{
	//записване в db
}
 
мерси копирах го само още един въпрос как да направя определен линк да се показва примерно само на даден потребител според името например потребителя galin да вижда даден линк а другите да не го виждат
 
SuCcEsS каза:
мерси копирах го само още един въпрос как да направя определен линк да се показва примерно само на даден потребител според името например потребителя galin да вижда даден линк а другите да не го виждат

Може по начина, който ти е дал RiddleR или да добавиш в таблицата rank и да направиш дадения линк да се вижда само за администраторите да кажем:

PHP:
if($_SESSION['user']['rank'] == 'administrator')
{
	echo 'Линк';
}
 
странно но не записва в базата данни пробвах с кода отгоре също и с
Код:
<?php session_start(); ?>
<?php ob_start(); ?>
<?php
include_once('configuration.php');
include_once('connect.php');
include_once('include/language.php');
?>
<!DOCTYPE html>





 <html class="no-js" lang="en"> 
<head>
  <meta charset="utf-8" />

  
  <meta name="viewport" content="width=device-width" />

  <title>Reserve - Sign Up</title>

  
  <link rel="stylesheet" href="theme/stylesheets/foundation.css">

  

  <script src="theme/javascripts/modernizr.foundation.js"></script>

  
  

</head>
<body>
<div class="row">
	<div class="twelve columns">
    	<?php
		if(isset($_POST['btn_add']))
		{
			$continue	=	true;
			$user_name	=	safety_filter($_POST['user_name']);
			$password	=	safety_filter($_POST['password']);
			
			if(strlen($user_name) < 3 or strlen($user_name) > 20)
				{	$continue = false; alert_box('alert', get_lang('User Name').': '.get_lang('Minumum charecter').' 3, '.get_lang('Maximum charecter').' 20');	}
			if(strlen($password) < 3 or strlen($password) > 20)
				{	$continue = false; alert_box('alert', get_lang('Password').': '.get_lang('Minumum charecter').' 3, '.get_lang('Maximum charecter').' 20');	}
			
			if(mysql_num_rows(mysql_query("SELECT * FROM $database->users WHERE user_name='$user_name' AND status='publish'")) > 0)
				{	$continue = false; alert_box('alert', get_lang('This user name exists.'));	}
			
			if($continue == true)
			{
				$password	=	md5($password);
				mysql_query("INSERT INTO ".$prefix."users
					(status, user_name, password)
					VALUES
					('publish', '$user_name', '$password')");
				if(mysql_affected_rows() > 0)
				{
					alert_box('success', get_lang('Successful'));	
				}
			}
		}
		
		if(isset($_GET['delete_user_id']))
		{
			$delete_user_id	=	safety_filter($_GET['delete_user_id']);
			if($delete_user_id == '1')
			{
				alert_box('alert', get_lang('Executive No. 1 is not deleted.'));
			}
			else
			{
				mysql_query("UPDATE $database->users SET status='delete' WHERE id='$delete_user_id'");
			}
		}
		
		?>
    </div>
</div> 
<form name="form_user_update" id="form_user_update" class="form_login" action="" method="POST">

<div class="row"><br>
            <div class="four columns end"><div style="font-weight: bold; font-size: 14px; color: #2ba6cb"><?php lang('SignUp'); ?></div>
<br>
                <label for="user_name"><?php lang('User Name'); ?></label>
                <input type="text" name="user_name" id="user_name" value="" placeholder="username" class="required" />
            </div>
        </div>
        
        <div class="row">
            <div class="four columns end">
                <label for="password"><?php lang('Password'); ?></label>
                <input type="password" name="password" id="password" value="" placeholder="password" class="required" />
            </div>
        </div>
        
        <div class="row">
            <div class="four columns end"><a href='register.php'><?php lang('Login'); ?></a>
                <input type="submit" name="btn_submit" id="btn_submit" class="button blue" value="<?php lang('SignUp'); ?>" />
        
    </div> 
    </div>
    
    
</div> 
</form>
като се логна мога да добавям акаунти, но не и ако не съм логнат!
 

Back
Горе