Вопросы и Ответы
#92
Отправлено 26 декабря 2010 - 16:12
итак есть в примеру код
<?php
echo "Hello World!";
?>
как сделать чтобы высветилось не "Hello World!" а "Hello (куча пробелов) World!" ?
каким образом можно в echo и print вставлять символы аски таблицы?
Сообщение изменено: MrHappy (26 декабря 2010 - 16:13 )
#94
Отправлено 26 декабря 2010 - 21:37
Суть в том, что надо сделать проверку на логин и пасс, если есть такие в базе, то перекидывает на другую страницу, если нет, то пишет Wrong Username or Password
Код:
<?php
//nastroiki
$username = "root";
$password = "";
$hostname = "localhost";
$db_name = "social";
//soedinenie s BD
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
//vibiraem/sozdaem BD
mysql_select_db("social", $con);
//vstavka zna4enij v BD
$sql="INSERT INTO users (name, surname, sex, date, country, city, login, email, pass)
VALUES
('$_POST[name]','$_POST[surname]','$_POST[sex]', '$_POST[date]', '$_POST[country]', '$_POST[city]', '$_POST[login]', '$_POST[email]', '$_POST[pass]')";
// esli ne vstavilis zna4enija, to pe4ataet ERROR
/* if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added"; */
//compare login & password
$login = $_POST['login'];
$pass = $_POST['pass'];
$sql_2 = mysql_query("select * from users where login ='$login' AND pass='$pass'");
$result = mysql_query($sql_2);
$count=mysql_num_rows($result);
if($count==1){
session_register("login");
session_register("pass");
header("location:reg.php");
}
else {
echo "Wrong Username or Password";
}
//zakrivaem soedinenie s BD
mysql_close($con);
?>
Ошибки:
Warning: mysql_query() expects parameter 1 to be string, resource given in Z:\home\social\www\connect.php on line 35
Warning: mysql_num_rows() expects parameter 1 to be resource, null given in Z:\home\social\www\connect.php on line 37
Сообщение изменено: phpmyadmin (26 декабря 2010 - 21:41 )
#96
Отправлено 27 декабря 2010 - 13:39
Для вставки переменных используй соединение строки.
Используй mysql_free_result (на переменную mysql_query) - в конце скрипта. Не будешь использовать будут траблы с памятью.
Забей на session_register. Делай просто $_SESSION["blabla"] = "blabla"; Когда нужно убрать сессию используй unset
Смысл этой конструкции, проверки пароля и.т.д??
так нормально должно быть
$sql_2 = mysql_query("select * from users where login = '".$_POST['login']."' AND pass = '".$_POST['pass']."'"); if(mysql_num_rows($sql_2) == 1) { session_register("login"); session_register("pass"); header("location:reg.php"); } else { echo "Wrong Username or Password"; } mysql_free_result($sql_2);
и не знаю как другие - никогда не делаю больше одной проверки на соединение с базой.
#101
Отправлено 27 декабря 2010 - 20:44
Меняем на$count=mysql_num_rows($result);
$count=mysql_num_rows($sql_2);
Обезьянка считает, что в этом случае будет выдано ПРАВИЛЬНО число строк.
Она также предупреждает, что это вполне себе "быдлокод", но работает.
Если у тебя всё-равно не работает(а Я лично на локалхосте проверил работоспособность), то ставь ручные значения "юзера" и "пароля". Должно правильно выдавать количество рядов.
Тут нам ЧЁТКО сказали, что твой запрос ищет СТРИНГ, а выдаёт ему ресурс (Resource#4)Warning: mysql_query() expects parameter 1 to be string, resource given in Z:\home\social\www\connect.php on line 35
Тут нам наоборот сказали, что он ищет ресурс, а ему дали НУЛЛ.Warning: mysql_num_rows() expects parameter 1 to be resource, null given in Z:\home\social\www\connect.php on line 37
В общем - ошибки помогают решить 70% проблем с кодом.
Плюс лично от меня, бред делать запрос на запрос О_о
Сообщение изменено: Isamashii Tora (27 декабря 2010 - 20:46 )
#104
Отправлено 01 января 2011 - 22:58
иногда просто забывают проНу там только проверка поэтому фетч не нужен.
Как правило бандерлоги которые не используют эту функцию, потом долго гадают почему сервак так лагает.
mysql_close ();
Сообщение изменено: motorov (01 января 2011 - 22:58 )
#105
Отправлено 02 января 2011 - 15:43
К сожалению, многие кто задают один вопрос, получают на него ответ и исчезают. Как-то даже скучно.
#106
Отправлено 22 января 2011 - 01:17
<?php
include("db.php");
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST")
{
//username and password sent from form
$login = mysql_escape_string($_POST['login']);
$pass = mysql_escape_string($_POST['pass']);
$pass = md5($pass); //Encrypted password
$sql = "SELECT id FROM users WHERE login = '$login' AND pass = '$pass'";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
//if result matched $login and $pass, table row must be 1 row
if($count == 1)
{
header("Location: http://www.google.com");
}
else
{
$error = "Your Login and Password is invalid";
}
}
?>
<form action = "login.php" method = "post">
<label>Username: </label>
<input type = "text" name = "login" /><br />
<label>Password: </label>
<input type = "password" name = "pass" /><br />
<input type = "submit" name = "login">
</form>
#111
Отправлено 23 января 2011 - 20:58
Поставь в скрипте принт основных переменных и сравни мд5 пароля в базе и выдаваемый скриптом.
Мой диагноз - нет запроса к базе, он прогоняет все ифы и выдаёт то, что за пределами скрипта - форму логина.
if (mysql_query($sql,$con))
{
echo 'Success';
}
else
{
echo 'Error: ' . mysql_error();
}
Сообщение изменено: Isamashii Tora (23 января 2011 - 21:04 )
#116
Отправлено 24 января 2011 - 22:14
Не поленился поставить, причина проста: SELECT id FROM users WHERE login = 'Отправить запрос' AND pass = 'dd9279b54eef59ff3fdf4302a628ce7d'
У тебя одинаковое название у кнопки и поля логина. Очевидно, что он не находит результат, а ошибку не выдаёт потому что ты её не "эхо".
Также Я бы упростил до: $pass = md5(mysql_escape_string($_POST['pass']));
Поэтому всегда советую, если вы бьёте себя в грудь кулаком и убеждаете "С БД всё нормально", попробуйте сначала принты сделать всех переменных по-порядку.
Сообщение изменено: Isamashii Tora (24 января 2011 - 22:40 )
#118
Отправлено 25 января 2011 - 19:34
<?php
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "social";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password )
or die ("Could not connect to database");
mysql_select_db($mysql_database, $bd) or die("Opps something went wrong");
?>
Названия одинаковы? Тогда и поля pass совпадают...или ты про что? Вообщем ни в каком случае пока он не пускает меня под правильным логином и пассом
#119
Отправлено 25 января 2011 - 19:42
<form action = "login.php" method = "post">
<label>Username: </label>
<input type = "text" name = "login" /><br />
<label>Password: </label>
<input type = "password" name = "pass" /><br />
<input type = "submit" name = "login">
</form>
ничё не настораживает тут?
The more posts you have, the bigger your penis is.
Читать еще на тему: PHP, Javascript, HTML/CSS, SQL, Ruby, Java, C/C++, Visual Basic, C#
Тематические форумы →
Software & Designing →
Программирование →
Ищу тьютора/репетиторa по проекту Java.Автор темы: Chichi, 21 апр 2020 Java, SQL, Javascript |
|
|||
Тематические форумы →
Software & Designing →
Программирование →
Пишу сайты грамотно на своём движке!Автор темы: alx4ever, 25 окт 2019 PHP |
|
|||
Тематические форумы →
Software & Designing →
Программирование →
Estonian language pack Opencart 2.3Автор темы: libero23, 29 ноя 2017 PHP |
|
|||
Тематические форумы →
Software & Designing →
Программирование →
Ищу Java Developer(a) для работы в Амстердаме. Зарплата 4000 евро чистымиАвтор темы: Oxana09, 07 ноя 2017 Java |
|
|||
Тематические форумы →
Software & Designing →
Программирование →
Ищем в команду разработчикаАвтор темы: Gleb Makarov, 02 ноя 2015 PHP, Javascript |
|