Форма за регистрация

new_user

Registered
Търся форма за регистрация на потребители , която използва MySQL . Знам , че има доста уроци , но има 1 или 2 , който да работят , като хората , а те са с някакви дизайни , а на мен ми трябва чиста форма за регистрация.
 
database.sql

[sql]
CREATE TABLE `users`
(
`id` int(11) NOT NULL auto_increment,
`username` text character set utf8 NOT NULL,
`password` text character set utf8 NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM AUTO_INCREMENT=0 ;
[/sql]


config.php

PHP:
<?php
session_start();
ob_start();
$dbhost = "localhost";
$dbuser = "user";
$dbpass = "pass";
$dbname = "database";
mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());
?>

register.php

PHP:
<?php
include_once "config.php";
if (!isset($_SESSION['username']))
{
?>
<form method="POST">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
<input type="submit" name="submit" value="Register">
</form>
<?php
if (isset($_POST['submit']))
{
$user = addslashes(htmlspecialchars($_POST['username']));
$pass = addslashes(htmlspecialchars($_POST['password']));
if (!empty($user) and !empty($pass))
{
$newpass = md5($pass);
mysql_query("INSERT INTO users (username,password) VALUES ('$user','$newpass')") or die(mysql_error());
header('Location: login.php');
}
else
{
echo "error";
}
}
}
else
{
header('Location: index.php');
}
?>


login.php

PHP:
<?php
include_once "config.php";
if (!isset($_SESSION['username']))
{
?>
<form method="POST">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
<input type="submit" name="submit" value="Login">
</form>
<?php
if (isset($_POST['submit']))
{
$user = addslashes(htmlspecialchars($_POST['username']));
$pass = addslashes(htmlspecialchars($_POST['password']));
if (!empty($user) and !empty($pass))
{
$newpass = md5($pass);
$a = mysql_query("SELECT * FROM users WHERE username='$user' and password='$newpass'") or die(mysql_error());
$b = mysql_num_rows($a);
if ($b > 0)
{
$_SESSION['username'] = $user;
header('Location: index.php');
}
else
{
echo "error";
}
}
else
{
echo "error";
}
}
}
else
{
header('Location: index.php');
}
?>

index.php

PHP:
<?php
include_once "config.php";
if (!isset($_SESSION['username']))
{
?>
<a href="login.php">Login</a> | <a href="register.php">Register</a><br>
<?php
}
else
{
echo "Hello ".$_SESSION['username'];
}
?>

Сега я писах и не съм я пробвал , ако има проблеми казвай ;)
 
proba евалата , но ще може ли последно нещо да те помоля .

Когато вече е регистрирани примерно името: test и някой се опита да се регистрира с такова име да му изписва , че името е заето , благодаря ти предварително. :)
 
Като нищо ще ти източат данните на потребителите и да ти изтрият всичко с тая система. Едни addslashes() не се сложили даже...
 
bancov96 каза:
Като нищо ще ти източат данните на потребителите и да ти изтрият всичко с тая система. Едни addslashes() не се сложили даже...

Би ли ми казал , как ще се оправи този проблем ?
 
И как ще ги източат ? Понеже си "поредния голям зъл хахор" айде направи sql inject на формата. Много обичам като говорите на думи ама на практика дори една инжекция неможете да направите освен ако таблицата не е users и полетата username и password и да има файл за преглед на профил който не проверява за съществуващ профил и т.н.. ;)


register.php

PHP:
<?php
include_once "config.php";
if (!isset($_SESSION['username']))
{
?>
<form method="POST">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
<input type="submit" name="submit" value="Register">
</form>
<?php
if (isset($_POST['submit']))
{
$user = addslashes(htmlspecialchars($_POST['username']));
$pass = addslashes(htmlspecialchars($_POST['password']));
if (!empty($user) and !empty($pass))
{
$a = mysql_query("SELECT * FROM users WHERE username='$user'") or die(mysql_error());
$b = mysql_num_rows($a);
if ($b > 0)
{
echo "zaeto ime";
}
else
{
$newpass = md5($pass);
mysql_query("INSERT INTO users (username,password) VALUES ('$user','$newpass')") or die(mysql_error());
header('Location: login.php');
}
}
else
{
echo "error";
}
}
}
else
{
header('Location: index.php');
}
?>
 
Евалата " proba " :) Само да попитам значи няма , как да се хакне сайта , като използвам тази система за регистрация така ли ?
 
Попринцип начини за хакване безброй.
Като почнеш от форума на сайта (ако има) или някоя друга система , защото предполагам няма да има асмо вход изход и здравей $username та стигаме до дупки в други сайтове на хоста и т.н.
Страница за преглед на профил няма , а като се направи там ще трябва да се защит добре.
Също така ако има странициране пак трябва да се обърне голямо внимание на защитата.
А относно това , тъй като незнам какви мисли ти минават през главата , след мнението на младежа по-горе , ще си редактирам поста и ще добавя така безкрайно важната според него защита addslashes()........


Поздрави ;)
 
Добре , благодаря ти :) Само да те помоля , ще може ли след този мой пост да сложиш променият файл от теб. +1 :)
 
register.php

PHP:
<?php
include_once "config.php";
if (!isset($_SESSION['username']))
{
?>
<form method="POST">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
<input type="submit" name="submit" value="Register">
</form>
<?php
if (isset($_POST['submit']))
{
$user = addslashes(htmlspecialchars($_POST['username']));
$pass = addslashes(htmlspecialchars($_POST['password']));
if (!empty($user) and !empty($pass))
{
$a = mysql_query("SELECT * FROM users WHERE username='$user'") or die(mysql_error());
$b = mysql_num_rows($a);
if ($b > 0)
{
echo "zaeto ime";
}
else
{
$newpass = md5($pass);
mysql_query("INSERT INTO users (username,password) VALUES ('$user','$newpass')") or die(mysql_error());
header('Location: login.php');
}
}
else
{
echo "error";
}
}
}
else
{
header('Location: index.php');
}
?>


login.php

PHP:
<?php
include_once "config.php";
if (!isset($_SESSION['username']))
{
?>
<form method="POST">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
<input type="submit" name="submit" value="Register">
</form>
<?php
if (isset($_POST['submit']))
{
$user = addslashes(htmlspecialchars($_POST['username']));
$pass = addslashes(htmlspecialchars($_POST['password']));
if (!empty($user) and !empty($pass))
{
$newpass = md5($pass);
mysql_query("INSERT INTO users (username,password) VALUES ('$user','$newpass')") or die(mysql_error());
header('Location: login.php');
}
else
{
echo "error";
}
}
}
else
{
header('Location: index.php');
}
?>

Заповядай.
 
Така ли трябва да изглежда index.php след като се довави кода обозначаващ формата за регистрация
<?php get_header(); // Loads the header.php template. ?>
<?php
include_once "config.php";
if (!isset($_SESSION['username']))
{
?>
<a href="login.php">Login</a> | <a href="register.php">Register</a><br>
<?php
}
else
{
echo "Hello ".$_SESSION['username'];
}
?>
<main <?php hybrid_attr( 'content' ); ?>>

<?php if ( !is_front_page() && !is_singular() && !is_404() ) : // If viewing a multi-post page ?>

<?php locate_template( array( 'misc/loop-meta.php' ), true ); // Loads the misc/loop-meta.php template. ?>

<?php endif; // End check for multi-post page. ?>

<?php if ( have_posts() ) : // Checks if any posts were found. ?>

<?php while ( have_posts() ) : // Begins the loop through found posts. ?>

<?php the_post(); // Loads the post data. ?>

<?php hybrid_get_content_template(); // Loads the content/*.php template. ?>

<?php if ( is_singular() ) : // If viewing a single post/page/CPT. ?>

<?php comments_template( '', true ); // Loads the comments.php template. ?>

<?php endif; // End check for single post. ?>

<?php endwhile; // End found posts loop. ?>

<?php locate_template( array( 'misc/loop-nav.php' ), true ); // Loads the misc/loop-nav.php template. ?>

<?php else : // If no posts were found. ?>

<?php locate_template( array( 'content/error.php' ), true ); // Loads the content/error.php template. ?>

<?php endif; // End check for posts. ?>

</main>

<?php get_footer(); // Loads the footer.php template. ?>









proba каза:
database.sql

[sql]
CREATE TABLE `users`
(
`id` int(11) NOT NULL auto_increment,
`username` text character set utf8 NOT NULL,
`password` text character set utf8 NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM AUTO_INCREMENT=0 ;
[/sql]


config.php

PHP:
<?php
session_start();
ob_start();
$dbhost = "localhost";
$dbuser = "user";
$dbpass = "pass";
$dbname = "database";
mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());
?>

register.php

PHP:
<?php
include_once "config.php";
if (!isset($_SESSION['username']))
{
?>
<form method="POST">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
<input type="submit" name="submit" value="Register">
</form>
<?php
if (isset($_POST['submit']))
{
$user = addslashes(htmlspecialchars($_POST['username']));
$pass = addslashes(htmlspecialchars($_POST['password']));
if (!empty($user) and !empty($pass))
{
$newpass = md5($pass);
mysql_query("INSERT INTO users (username,password) VALUES ('$user','$newpass')") or die(mysql_error());
header('Location: login.php');
}
else
{
echo "error";
}
}
}
else
{
header('Location: index.php');
}
?>


login.php

PHP:
<?php
include_once "config.php";
if (!isset($_SESSION['username']))
{
?>
<form method="POST">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
<input type="submit" name="submit" value="Login">
</form>
<?php
if (isset($_POST['submit']))
{
$user = addslashes(htmlspecialchars($_POST['username']));
$pass = addslashes(htmlspecialchars($_POST['password']));
if (!empty($user) and !empty($pass))
{
$newpass = md5($pass);
$a = mysql_query("SELECT * FROM users WHERE username='$user' and password='$newpass'") or die(mysql_error());
$b = mysql_num_rows($a);
if ($b > 0)
{
$_SESSION['username'] = $user;
header('Location: index.php');
}
else
{
echo "error";
}
}
else
{
echo "error";
}
}
}
else
{
header('Location: index.php');
}
?>

index.php

PHP:
<?php
include_once "config.php";
if (!isset($_SESSION['username']))
{
?>
<a href="login.php">Login</a> | <a href="register.php">Register</a><br>
<?php
}
else
{
echo "Hello ".$_SESSION['username'];
}
?>

Сега я писах и не съм я пробвал , ако има проблеми казвай ;)
 

Back
Горе