Проблема с системой входа в систему PHP - mysql_num_rows недействителен - PullRequest
1 голос
/ 17 марта 2012

ОБНОВЛЕНИЕ: изменено несколько SQL-запросов, и теперь оно переносится на панель управления.Хотя он показывает эти ошибки.

Предупреждение: session_start () [function.session-start]: не удается отправить cookie сессии - заголовки уже отправлены (вывод начался с / home / lewism / public_html / admin /rent / login_success.php: 10) в /home/lewism/public_html/admin/rent/login_success.php в строке 74

Предупреждение: session_start () [function.session-start]: невозможно отправить ограничитель кэша сеанса- заголовки уже отправлены (вывод начался с /home/lewism/public_html/admin/rent/login_success.php:10) в /home/lewism/public_html/admin/rent/login_success.php в строке 74

Предупреждение: Невозможно изменить информацию заголовка - заголовки уже отправлены (вывод начался с /home/lewism/public_html/admin/rent/login_success.php:10) в /home/lewism/public_html/admin/rent/login_success.php в строке 76

~ Привет, ребята,

Просто используя скрипт входа на phpeasysteps.com, и при попытке входа в систему выдается следующая ошибка. Любые предложения

Предупреждение: mysql_num_rows(): поставляетсяАргумент не является допустимым ресурсом результатов MySQL в /home/lewism/public_html/admin/rent/checklogin.php в строке 27 Неправильное имя пользователя или пароль

Ниже приведен код для checklogin.php

<?php
$host="localhost"; // Host name 
$username="lewism_lewis"; // Mysql username 
$password="teamgreen"; // Mysql password 
$db_name="lewism_car"; // Database name 
$tbl_name="Customers"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form 
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword'];

// To protect MySQL injection
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword"); 
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
?>

Спасибо, ребята,

Ais

Ответы [ 2 ]

1 голос
/ 17 марта 2012

Попробуйте сделать

$result = mysql_query($sql) or die(mysql_error());
                           ^^^^^^^^^^^^^^^^^^^^^^--- add this

Поскольку $ result не является допустимым дескриптором для mysql_num_rows, выясните, почему запрос не удался.

Кроме того, я предлагаю вам НЕ брать примеры кода для PHP. большинство из них, включая размещенные вами материалы, ужасно устарели или явно ошибочны. По крайней мере, этот использует mysql_real_escape_string, но он все еще использует полосы-черты и session_register.

И то, и другое устарело, и теперь в последней версии PHP материал magic_quotes, который удаляет "отменяет", фактически полностью удален.

0 голосов
/ 17 марта 2012

Помните, что header () должна быть вызвана перед тем, как отправляется либо обычными тегами HTML, пустыми строками в файле, либо из PHP. Это очень распространенная ошибка при чтении кода с помощью include () или require (), функции, или другая функция доступа к файлу, и имеют пробелы или пустые строки, которые выводятся до вызова header (). Та же проблема существует при использовании одного файла PHP / HTML.

источник

...