رفتن به مطلب

مشکل با صفحه عضویت در php


پست های پیشنهاد شده

با عرض سلام و خسته نباشید . من با استفاده از php یک فرم ساده برای عضویت درست کرده ام . اما خوب این عضویت مشکلاتی رو داره . بعد از عضو شدن ریدایرکت صورت نمیگیره فکر کنم و با این ارور مواجه شدم


Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\chapter4\submit.php on line 26
Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\chapter4\submit.php:26) in D:\xampp\htdocs\chapter4\submit.php on line 35

این تمام کدهای مربوط به صفحه signup.php


<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
$host="localhost";
$host_username="root";
$host_password="";
$db_name="db_firstweb";
$db_link=mysql_connect($host, $host_username, $host_password) or die(mysql_errno());
mysql_select_db($db_name, $db_link) or die(mysql_errno());
$tbl_name="tbl_login";
$username=$_POST["username"];
$pwd1=$_POST["password1"];
$pwd2=$_POST["password2"];
//Write sql code here
$successfull=FALSE;
if(strlen($username)>0 && strlen($pwd1)>0 && strlen($pwd2)>0){
if($pwd1==$pwd2){
$sql="select * from $tbl_name where username=$username";

$result= mysql_query($sql,$db_link);
$count=mysql_num_rows($result);
if($count == 0){
$sql="insert into $tbl_name(username,password) values('$username','$pwd1')";
mysql_query($sql,$db_link);
$successfull=true; ///Make sure User data submit successfully...
}
}
}
if($successfull==TRUE){
header("location: login_success.php");
}else{
header("location: signup.php");
}
//
mysql_close($db_link);
?>

کسی میتونه تشخیص بده مشکل از چیه ؟

من حتی از فرمی که قبل کامل شده بود استفاده کردم که اونم که هیچ مشکلی نداشت روی سیستم من با این مشکل روبه روی میشد . بنظر این فرم فقط با سیستم من این مشکل رو داره

لینک به ارسال

الان که روی هاستینگ امتحان کردم فهمیدم این خطا فقط مختص لوکال هاسته . یکی میتونه بگه چرا روی لوکال هاست این خطا و میده و چیکار باید کنم ؟


Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\chapter4\submit.php on line 26
Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\chapter4\submit.php:26) in D:\xampp\htdocs\chapter4\submit.php on line 35

لینک به ارسال

سلام

با noteoad++ باز کنید و از منوی Encoding روی utf-8 without BOM تنظیم کنید ببینید حل میشه یا نه.

لینک به ارسال

سلام

با noteoad++ باز کنید و از منوی Encoding روی utf-8 without BOM تنظیم کنید ببینید حل میشه یا نه.

خطاهای داده شده


Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\chapter4\submit.php on line 21
Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\chapter4\submit.php:21) in D:\xampp\htdocs\chapter4\submit.php on line 30

لینک به ارسال

از توابع mysql استفاده نکنید منسوخ شده.

خطا هم احتمال داره از ورودی هاتون باشه

لینک به ارسال

از توابع mysql استفاده نکنید منسوخ شده.

خطا هم احتمال داره از ورودی هاتون باشه

یعنی چی از ورودی ها باشه؟

لینک به ارسال

کد خودتونو به صورت زیر تغییر بدید

			    $sql="select * from $tbl_name where username='$username'";

$result= mysql_query($sql,$db_link);
if ($result==false)
{
die(mysql_error());
}
$count=mysql_num_rows($result);

توجه داشته باشید وقتی میخواهید یک مقدار رشته string رو درون کوئری قرار بدید باید داخل کوت قرار بگیره

لینک به ارسال

من فکر میکنم ممکنه مشکل از متغییر های اتصال به دیتابیس (نام کاربری و پسورد) مشکل داشته باشه :


$host_username="root";
$host_password="";

یه نام کاربری جدید با یه پسورد ایجاد و تست کنید ...

لینک به ارسال

من فکر میکنم ممکنه مشکل از متغییر های اتصال به دیتابیس (نام کاربری و پسورد) مشکل داشته باشه :


$host_username="root";
$host_password="";

یه نام کاربری جدید با یه پسورد ایجاد و تست کنید ...

برای عضویت این فرم فقط اون خطا رو میده اما برای سایر کارها خطایی نمیده . میشه وارد شد . تو صفحه ها رفت از سشن هم استفاده کردم که اون هم درسته و کار میکنه اما وقتی عضو میشم اون خطا رو میده

لینک به ارسال

برای ثبت کاربر جدید نیازی به این موارد نیست ، خود وردپرس یه سری توابع داره ، این یه نمونش : http://www.sutanaryan.com/wordpress-custom-registration-without-using-a-plugin/

برای لوگین هم : http://www.sutanaryan.com/wordpress-custom-login-page-without-using-a-plugin-the-right-way/

لینک به ارسال

کد خودتونو به صورت زیر تغییر بدید

			 $sql="select * from $tbl_name where username='$username'";

$result= mysql_query($sql,$db_link);
if ($result==false)
{
die(mysql_error());
}
$count=mysql_num_rows($result);

توجه داشته باشید وقتی میخواهید یک مقدار رشته string رو درون کوئری قرار بدید باید داخل کوت قرار بگیره

مشکل فقط همون کوت بود که اونو قرار دادم ردست شد . خودم اصلا دقت نکرده بودم . اما یه سوال دیگه ؟


if ($result==false)
{
die(mysql_error());
}

این رو چرا اضافه کنم به کدهام ؟

برای ثبت کاربر جدید نیازی به این موارد نیست ، خود وردپرس یه سری توابع داره ، این یه نمونش : http://www.sutanarya...using-a-plugin/

برای لوگین هم : http://www.sutanarya...-the-right-way/

ممنون جالب بودن . اما من اصلا کاری به وردپرس نداشتم و فرمی خودم با php نوشتم و کاملا بیربط به وردپرس هستند

لینک به ارسال

اگه کوئری شما به هر دلیلی مشکل داشته باشه یا در حین اجرا خطایی پیش بیاد تابع mysql_query مقدار false برمیگردونه که باعث ایجاد خطا و اشکال در تابع mysql_num_rows میشه برای جلوگیری از این حالت از کد زیر استفاده شده

if ($result==false)
{
die(mysql_error());
}

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...