PDA

View Full Version : سوال: مشکل در ثبت نام



scofield007
یک شنبه 08 دی 1392, 12:08 عصر
سلام اساتید
خسته نباشید

2 قطعه کد زیر رو برا ثبت نام نوشتم ولی موقع ثبت نام ارور میده.چطور ارور رو رفع کنم؟


<body>

<?php
if( isset($_SESSION['ERRMSG_ARR']) && is_array($_SESSION['ERRMSG_ARR']) && count($_SESSION['ERRMSG_ARR']) >0 )
{
echo '<ul class="err">';
foreach($_SESSION['ERRMSG_ARR'] as $msg)
{
echo '<li>',$msg,'</li>';
}
echo '</ul>';
unset($_SESSION['ERRMSG_ARR']);
}
?>
<form id="loginForm" name="loginForm" method="post" action="arzyabi-register.php">
<table align="right" width="300" border="0" align="center" cellpadding="2" cellspacing="10">
<tr>
<th><input name="fname" type="text" class="textfield" id="fname" /> </th>
<td><b>:ثبت نام</b></td>
</tr>
<tr>
<th><input name="lname" type="text" class="textfield" id="lname" /> </th>
<td><b>:نام خانوادگی</b></td>
</tr>
<tr>
<th width="124"><input name="login" type="text" class="textfield" id="login" /></th>
<td width="168"><b>:نام کاربری</b></td>
</tr>
<tr>
<th><input name="password" type="password" class="textfield" id="password" /></th>
<td><b>:رمز عبور</b></td>
</tr>
<tr>
<th><input name="cpassword" type="password" class="textfield" id="cpassword" /> </th>
<td><b>:تایید رمز عبور</b></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="ثبت نام" /></td>
</tr>
</table>
</form>
</body>


<?php
session_start();

require_once('config.php');

$errmsg_arr = array();
$errflag = false;

$link = mysql_connect('maghalat','root','');
if(!$link)
{
die('Failed to connect to server: ' . mysql_error());
}

$db = mysql_select_db('maghalat');
if(!$db)
{
die("Unable to select database");
}

function clean($str)
{
$str = @trim($str);
if(get_magic_quotes_gpc())
{
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}

$fname = clean($_POST['fname']);
$lname = clean($_POST['lname']);
$login = clean($_POST['login']);
$password = clean($_POST['password']);
$cpassword = clean($_POST['cpassword']);

if($fname == '')
{
$errmsg_arr[] = 'First name missing';
$errflag = true;
}
if($lname == '')
{
$errmsg_arr[] = 'Last name missing';
$errflag = true;
}
if($login == '')
{
$errmsg_arr[] = 'Login ID missing';
$errflag = true;
}
if($password == '')
{
$errmsg_arr[] = 'Password missing';
$errflag = true;
}
if($cpassword == '')
{
$errmsg_arr[] = 'Confirm password missing';
$errflag = true;
}
if( strcmp($password, $cpassword) != 0 )
{
$errmsg_arr[] = 'Passwords do not match';
$errflag = true;
}

if($login != '')
{
$qry = "SELECT * FROM members WHERE login='$login'";
$result = mysql_query($qry);
if($result) {
if(mysql_num_rows($result) > 0)
{
$errmsg_arr[] = 'Login ID already in use';
$errflag = true;
}
@mysql_free_result($result);
}
else {
die("Query failed");
}
}

if($errflag)
{
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: register-form.php");
exit();
}

$qry = "INSERT INTO members(firstname, lastname, login, passwd) VALUES('$fname','$lname','$login','".md5($_POST['password'])."')";
$result = @mysql_query($qry);

if($result)
{
header("location: register-success.php");
exit();
}else
{
die("Query failed");
}
?>

فایل کانفیگ سرور(اسم database مقالات هست که 3 جدول member و admin و maghalat دارد):



<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_DATABASE', 'maghalat');
?>

با تشکر

scofield007
یک شنبه 08 دی 1392, 12:13 عصر
خطایی که میده این هست:

Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\php\PEAR\Config.php on line 80

Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\php\PEAR\Config.php on line 166

Warning: mysql_connect() [function.mysql-connect]: php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\xampp\htdocs\macromedia\proje\register\arzyabi-register.php on line 23

Warning: mysql_connect() [function.mysql-connect]: [2002] php_network_getaddresses: getaddrinfo failed: No such host is known. (trying to connect via tcp://maghalat:3306) in C:\xampp\htdocs\macromedia\proje\register\arzyabi-register.php on line 23

Warning: mysql_connect() [function.mysql-connect]: php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\xampp\htdocs\macromedia\proje\register\arzyabi-register.php on line 23
Failed to connect to server: php_network_getaddresses: getaddrinfo failed: No such host is known

mnvoh90
یک شنبه 08 دی 1392, 12:14 عصر
سلام. ظاهرا با localhost مشکل داره. مطمئنید از اون DB_HOST استفاده می کنه؟ به نظر میرسه که به لوکال وصل نمیشه و به یه جای دیگه(فکر کنم tcp://maghalat:3306) می خواد وصل شه.

scofield007
یک شنبه 08 دی 1392, 12:18 عصر
سلام. ظاهرا با localhost مشکل داره. مطمئنید از اون DB_HOST استفاده می کنه؟

سلام.ممنون از پاسختون
بله.از localhost استفاده می کنم

scofield007
یک شنبه 08 دی 1392, 12:58 عصر
سلام. ظاهرا با localhost مشکل داره. مطمئنید از اون DB_HOST استفاده می کنه؟ به نظر میرسه که به لوکال وصل نمیشه و به یه جای دیگه(فکر کنم tcp://maghalat:3306) می خواد وصل شه.

نمیدونم.فک نمیکنم به اونجا متصل بشه

scofield007
یک شنبه 08 دی 1392, 13:08 عصر
با تبدیل

require_once('config.php');

به
equire_once('.../login/config.php');
این خطا رو میده

Warning: require_once(.../login/config.php) [function.require-once]: failed to open stream: No such file or directory in C:\xampp\htdocs\macromedia\proje\register\exec-register.php on line 18

Fatal error: require_once() [function.require]: Failed opening required '.../login/config.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\macromedia\proje\register\exec-register.php on line 18

میگه فایل وجود نداره.در صورتی که فایل موجود هست

mnvoh90
یک شنبه 08 دی 1392, 13:54 عصر
با تبدیل

require_once('config.php');

به
equire_once('.../login/config.php');
این خطا رو میده

Warning: require_once(.../login/config.php) [function.require-once]: failed to open stream: No such file or directory in C:\xampp\htdocs\macromedia\proje\register\exec-register.php on line 18

Fatal error: require_once() [function.require]: Failed opening required '.../login/config.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\macromedia\proje\register\exec-register.php on line 18

میگه فایل وجود نداره.در صورتی که فایل موجود هست

تو آدرس فایل سه تا نقطه گذاشتید باید دو تا باشه

scofield007
یک شنبه 08 دی 1392, 14:11 عصر
تو آدرس فایل سه تا نقطه گذاشتید باید دو تا باشه

ممنون.ولی همشو امتخان کردم.خطا میده

mnvoh90
یک شنبه 08 دی 1392, 14:21 عصر
ببین الان این آدرس '.../login/config.php' اشتباهه.
در مورد مشکل اصلی هم اگر سورس وصل شدن به دیتابیس رو بزاری خیلی خوب می شه

scofield007
یک شنبه 08 دی 1392, 16:05 عصر
این 3 فایل درون پوشه register و فایل config داخل پوشه login قرار داره.


<body>

<?php
session_start();

require_once('../login/config.php');

$errmsg_arr = array();
$errflag = false;

$link = mysql_connect('maghalat','root','');
if(!$link)
{
die('Failed to connect to server: ' . mysql_error());
}

$db = mysql_select_db('maghalat');
if(!$db)
{
die("Unable to select database");
}

function clean($str)
{
$str = @trim($str);
if(get_magic_quotes_gpc())
{
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}

$fname = clean($_POST['fname']);
$lname = clean($_POST['lname']);
$login = clean($_POST['login']);
$password = clean($_POST['password']);
$cpassword = clean($_POST['cpassword']);

if($fname == '')
{
$errmsg_arr[] = 'First name missing';
$errflag = true;
}
if($lname == '')
{
$errmsg_arr[] = 'Last name missing';
$errflag = true;
}
if($login == '')
{
$errmsg_arr[] = 'Login ID missing';
$errflag = true;
}
if($password == '')
{
$errmsg_arr[] = 'Password missing';
$errflag = true;
}
if($cpassword == '')
{
$errmsg_arr[] = 'Confirm password missing';
$errflag = true;
}
if( strcmp($password, $cpassword) != 0 )
{
$errmsg_arr[] = 'Passwords do not match';
$errflag = true;
}

if($login != '')
{
$qry = "SELECT * FROM members WHERE login='$login'";
$result = mysql_query($qry);
if($result) {
if(mysql_num_rows($result) > 0)
{
$errmsg_arr[] = 'Login ID already in use';
$errflag = true;
}
@mysql_free_result($result);
}
else {
die("Query failed");
}
}

if($errflag)
{
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: register-form.php");
exit();
}

$qry = "INSERT INTO members(firstname, lastname, login, passwd) VALUES('$fname','$lname','$login','".md5($_POST['password'])."')";
$result = @mysql_query($qry);

if($result)
{
header("location: register-success.php");
exit();
}else
{
die("Query failed");
}
?>
</body>


<body>
<h1 align="center">با موفقیت ثبت نام شدید</h1>
<p align="center"><a href="login-form.php">Click here</a> to login to your account.</p>
</body>


<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ثبت نام در سایت</title>
</head>

<body>

<?php
if( isset($_SESSION['ERRMSG_ARR']) && is_array($_SESSION['ERRMSG_ARR']) && count($_SESSION['ERRMSG_ARR']) >0 )
{
echo '<ul>';
foreach($_SESSION['ERRMSG_ARR'] as $msg)
{
echo '<li>',$msg,'</li>';
}
echo '</ul>';
unset($_SESSION['ERRMSG_ARR']);
}
?>
<form id="loginForm" name="loginForm" method="post" action="exec-register.php">
<table align="right" width="300" border="0" align="center" cellpadding="2" cellspacing="10">
<tr>
<th><input name="fname" type="text"/> </th>
<td><b>:ثبت نام</b></td>
</tr>
<tr>
<th><input name="lname" type="text" /> </th>
<td><b>:نام خانوادگی</b></td>
</tr>
<tr>
<th width="124"><input name="login" type="text" /></th>
<td width="168"><b>:نام کاربری</b></td>
</tr>
<tr>
<th><input name="password" type="password" /></th>
<td><b>:رمز عبور</b></td>
</tr>
<tr>
<th><input name="cpassword" type="password" /> </th>
<td><b>:تایید رمز عبور</b></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="ثبت نام" /></td>
</tr>
</table>
</form>
</body>
</html>


فایل کانفیگ



<body>
<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_DATABASE', 'maghalat');
?>

SadeghPro19
یک شنبه 08 دی 1392, 16:14 عصر
خط 11 و 17 باید به ترتیب با کدهای زیر جایگزین کنید:

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
$db = mysql_select_db(DB_DATABASE);

scofield007
یک شنبه 08 دی 1392, 16:23 عصر
خط 11 و 17 باید به ترتیب با کدهای زیر جایگزین کنید:

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
$db = mysql_select_db(DB_DATABASE);

ممنون.ولی بازم یک خطای جزیی در خط 12 هست و ارور میده(syntax error)

scofield007
یک شنبه 08 دی 1392, 18:40 عصر
یعنی این کدها به حدی سختن که کسی نمیتونه جواب بده؟!!!

SadeghPro19
یک شنبه 08 دی 1392, 18:50 عصر
لطفا متن ارور و کدتون در حال حاضر اینجا قرار بدین تا بتونیم مشکلتون رو حل کنیم.

scofield007
یک شنبه 08 دی 1392, 19:08 عصر
مشکل برطرف شد

با تشکر