Регистрация с mysql

Player_pz

Registered
Ето една добра система за регистрация с mysql .

Код:
CREATE TABLE `users` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` TEXT NOT NULL ,
`password` TEXT NOT NULL ,
`email` TEXT NOT NULL ,
`realname` TEXT NOT NULL ,
`website` TEXT NOT NULL ,
`location` TEXT NOT NULL
) ENGINE = MYISAM ;


config.php
Код:
$db[host] = "localhost";
$db[user] = "username";
$db[pass] = "password";
$db[name] = "db_name";

//Connect To The Database
mysql_connect($db[host], $db[user], $db[pass]) or die(mysql_error());
mysql_select_db($db[name]);

index.php
Код:
<?PHP

session_start();
ob_start();

//Include the configurations
include('config.php');

//Define a few variables
$x = $_GET['x'];
$u = $_GET['u'];

class register {

function displayform($title) {

echo('<fieldset><legend>'.$title.'</legend>
<form method="POST" name="register">
Username:<br />
<input type="text" name="username">*<br /><br />

Password:<br />
<input type="password" name="password1">*<br /><br />

Confirm Password:<br />
<input type="password" name="password2">*<br /><br />

Email:<br />
<input type="text" name="email">*<br /><br />

Real Name:<br />
<input type="text" name="realname">*<br /><br />

Website:<br />
<input type="text" name="website"><br /><br />

Location:<br />
<input type="text" name="location"><br /><br />

<input type="submit" name="register" value="Register!">
</form>
</fieldset>');

}

function process($username, $password1, $password2, $email, $realname, $website, $location) {

//Lets define the Queries for searching
$SearchUN = mysql_query("
SELECT *
FROM `users`
WHERE `username` = '$username'");

if(!$SearchUN) die(mysql_error());

$SearchEM = mysql_query("
SELECT *
FROM `users`
WHERE `email` = '$email'");

if(!$SearchEM) die(mysql_error());

$s1 = mysql_fetch_array($SearchUN);
$s2 = mysql_fetch_array($SearchEM);

//Did they leave any vital fields empty?
if(!$username || !$password1 || !$password2 || !$email || !$realname) {
echo('Please fill in all required fields!');
} elseif($password1 !== $password2) {
echo('The supplied passwords do not match.');
} elseif($s1[id]) {
echo('That user already exists.');
} elseif($s2[id]) {
echo('That email is already in use.');
} else {
$InsertQRY = mysql_query("
INSERT INTO
`users`
(
`username`,
`password`,
`email`,
`realname`,
`website`,
`location`
)
VALUES
(
'$username',
'md5($password2)',
'$email',
'$realname',
'$website',
'$location'
)");

if(!$InsertQRY) die(mysql_error());

echo('You have successfully registered!');
}

}

}

class log {

function login_process($username, $password) {

//Find the information
$FindInfo = mysql_query("
SELECT *
FROM `users`
WHERE
`username` = '$username'
AND
`password` = 'md5($password)'
");

if(!$FindInfo) die(mysql_error());

$F = mysql_fetch_array($FindInfo);

if(!$F[id]) {
echo('Sorry, those credentials are incorrect.');
} else {
$_SESSION['username'] = $username;
$_SESSION['password'] = md5($password);
$_SESSION['id'] = $F[id];

echo('You have been successfully logged in!');
}

}

function login_display($title) {

echo('<fieldset><legend>'.$title.'</legend>
<form method="POST" name="login">
Username:<br />
<input type="text" name="username"><br /><br />

Password:<br />
<input type="password" name="password"><br /><br />

<input type="submit" name="login" value="Login!">
</form>
</fieldset>');

}

function logout() {

header('Location: index.php');

$_SESSION['username'] = "";
$_SESSION['password'] = "";

}

}

class profile {

function edit_display($title) {

//Define the Search query, to fetch information
$SearchQRY = mysql_query("
SELECT *
FROM `users`
WHERE
`username` = '$_SESSION[username]'
");

if(!$SearchQRY) die(mysql_error());

$user = mysql_fetch_array($SearchQRY);

echo('<fieldset><legend>'.$title.'</legend>
<form method="POST" name="edit">

Email:<br />
<input type="text" name="email" value="'.$user[email].'"><br /><br />

Real Name:<br />
<input type="text" name="realname" value="'.$user[realname].'"><br /><br />

Website:<br />
<input type="text" name="website" value="'.$user[website].'"><br /><br />

Location:<br />
<input type="text" name="location" value="'.$user[location].'"><br /><br />

<input type="submit" name="edit" value="Edit Profile!">
</form>
</fieldset>');
}

function edit_process($email, $realname, $website, $location) {

//Define search query, again, used to replace info if its empty
$SearchQRY = mysql_query("
SELECT *
FROM `users`
WHERE
`username` = '$_SESSION[username]'
");

if(!$SearchQRY) die(mysql_error());

$user = mysql_fetch_array($SearchQRY);

if(!$email) {
$email = $user[email];
}
if(!$realname) {
$realname = $user[realname];
}

//Update the information
$UpdateQRY = mysql_query("
UPDATE `users`
SET
`email` = '$email',
`realname` = '$realname',
`website` = '$website',
`location` = '$location'
");

if(!$UpdateQRY) die(mysql_error());

echo('You have successfully updated your profile!');

}

function view($id) {
//Define Query for searching for user info

$SearchQRY = mysql_query("
SELECT *
FROM `users`
WHERE
`id` = '$id'
");

if(!$SearchQRY) die(mysql_error());

$user = mysql_fetch_array($SearchQRY);

if(mysql_num_rows($SearchQRY) == 0) {
echo('Invalid Member ID.');
} else {
echo('<fieldset><legend>'.$user[username].'s Profile</legend>
Username: '.$user[username].'<br />
Email: '.$user[email].'<br />
Real Name: '.$user[realname].'<br />
Website: '.$user[website].'<br />
Location: '.$user[location].'
</fieldset> ');

}
}

}

$register = new register;

$log = new log;

$profile = new profile;

if(!$_SESSION['username']) {
echo('<a href="?x=register">Register</a> | <a href="?x=login">Login</a><br /><br />');
} else {
echo('<a href="?x=editprofile">Edit Profile</a> | <a href="?x=viewprofile&u='.$_SESSION['id'].'">View Profile</a><br /><br />');
}

if(!$x) {
echo('Welcome to the users system!');
} elseif($x == "register") {

if($_SESSION['username']) {
echo('You cannot register while logged in!');
} else {

if($_POST['register']) {
$register->process($_POST['username'], $_POST['password1'], $_POST['password2'], $_POST['email'], $_POST['realname'], $_POST['website'], $_POST['location']);
} else {
$register->displayform("Register An Account");
}
}

} elseif($x == "login") {

if($_SESSION['username']) {
echo('You are alreadfy logged in!');
} else {
if($_POST['login']) {
$log->login_process($_POST['username'], $_POST['password']);
} else {
$log->login_display("Login To Your Account");
}
}

} elseif($x == "logout") {

if(!$_SESSION['username']) {
echo('You are alreadfy logged out!');
} else {
$log->logout();
}
} elseif($x == "editprofile") {

if(!$_SESSION['username']) {
echo('You must be logged in to edit your profile!');
} else {
if($_POST['edit']) {
$profile->edit_process($_POST['email'], $_POST['realname'], $_POST['website'], $_POST['location']);
} else {
$profile->edit_display("Edit Your Profile");
}
}

} elseif($x == "viewprofile") {
$profile->view($u);
}

?>
 
Нещо не бачка.

1во. Защо?
Код:
//Include the configurations
include('config.php');

:)

и 2ро. Нещо не успях да му намеря проблема.
Код:
Warning: mysql_query() [function.mysql-query]: Access denied for user 'bobzzy'@'localhost' (using password: NO) in /users/newbgi/public_html/test/index.php on line 51

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /users/newbgi/public_html/test/index.php on line 51
Access denied for user 'bobzzy'@'localhost' (using password: NO)
 
fena каза:
Нещо не бачка.
1во. Защо?
Код:
//Include the configurations
include('config.php');
Защото си пише

Edit:

Има лека грешка в кода на config.php но иначе системата работи. config.php трябва да изглежда така:
Код:
<?php
$db[host] = "localhost";
$db[user] = "";
$db[pass] = "";
$db[name] = "";

//Connect To The Database
mysql_connect($db[host], $db[user], $db[pass]) or die(mysql_error());
mysql_select_db($db[name]); 
?>
Ето и как изглежда системката: ЦъК
 
Защо ми дава тази грешка?

Код:
Warning: main(config.php): failed to open stream: No such file or directory in /home/www/risingdjs.freehostia.com/reg/index.php on line 6

Warning: main(): Failed opening 'config.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/www/risingdjs.freehostia.com/reg/index.php on line 6
 
В папката където е файлът index.php примерно трябва да имаш и файл config.php със съдържание:
Код:
<?php
$db[host] = "localhost";
$db[user] = "";
$db[pass] = "";
$db[name] = "";

//Connect To The Database
mysql_connect($db[host], $db[user], $db[pass]) or die(mysql_error());
mysql_select_db($db[name]);
?>
 

Back
Горе