[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка синтаксиса
Godwarlock
<?php
$login = $_POST['login']; // получаем логин
$pass = $_POST['pass']; // получаем пароль
// Изночально $error установим в false

$error = "false";
if(!empty($id)){
if(!empty($login)){
if(!empty($pass)){
include ("connect.php"); // подключение к Базе данных
$connect_DB = mysql_query("SELECT * FROM users WHERE login='".$login."' AND pass='".$pass."'", $db);
if (!$connect_DB || $connect_DB == '') {
$id = "-1";// вывод кода ошибки -1: не удалось подключиться к БД
}else{
$result = mysql_fetch_array($connect_DB); //выполняем запрос
if ($result['id'] == '') {
$id = "-2"; // вывод кода -2: такого пользователя нет
}else{
$id = $result['id'];
$error = "true";
}
}
}
else{
// Обрабатываем ошибку, т.к. нет переменной $pass
$id="-3" // ошибка в переменных
}
}
else{
// Обрабатываем ошибку, т.к. нет переменной $login
$id="-3" // ошибка в переменных
}
}
else{
// Обрабатываем ошибку, т.к. нет переменной $id
$id="-3" // ошибка в переменных
}
// Формируем ответ для флешки
echo "error=".$error."&id=".$id;
?>

Parse error: syntax error, unexpected '}' in T:\home\192.168.0.102\www\vhod.php on line 34
Смотрю 34 линию, но ничего толкового не увидел, что подправить надо?



Спустя 10 минут, 7 секунд (11.01.2012 - 16:03) kovaldm написал(а):
$id="-3"; // ошибка в переменных

Спустя 3 минуты, 38 секунд (11.01.2012 - 16:07) nugle написал(а):
<?php 
$login = $_POST['login'];
// получаем логин
$pass = $_POST['pass'];
// получаем пароль
// Изночально $error установим в false

$error = "false";

if(!empty($id))
{

if(!empty($login))
{

if(!empty($pass))
{
include ("connect.php");
// подключение к Базе данных
$connect_DB = mysql_query("SELECT * FROM users WHERE login='".$login."' AND pass='".$pass."'", $db);

if(!$connect_DB || $connect_DB == '')
{
$id = "-1";
// вывод кода ошибки -1: не удалось подключиться к БД
}
else
{
$result = mysql_fetch_array($connect_DB);
//выполняем запрос

if($result['id'] == '')
{
$id = "-2";
// вывод кода -2: такого пользователя нет
}
else
{
$id = $result['id'];
$error = "true";
}
}
}

else
{
// Обрабатываем ошибку, т.к. нет переменной $pass
$id = "-3";
// ошибка в переменных
}
}

else
{
// Обрабатываем ошибку, т.к. нет переменной $login
$id = "-3";
// ошибка в переменных
}
}


else
{
// Обрабатываем ошибку, т.к. нет переменной $id
$id = "-3";
// ошибка в переменных
}
// Формируем ответ для флешки
echo "error=". $error ."&id=". $id;
?>

Спустя 14 минут, 49 секунд (11.01.2012 - 16:22) YVSIK написал(а):
ответ вроде должен быть очевидным (нет пасса в базе значит один ответ, а если есть другой)
тут же я даже несмог сосчитать сколько вложений ту есть и не стал, зачем так много-то если ответов только два

ну и добавь вывод после каждого ответа чтоб было видно до какого дошло дело
ну пусть хоть так

 {
// Обрабатываем ошибку, т.к. нет переменной $login
$id = "-3";
// ошибка в переменных
echo 'такой то уровень-':
}
если так хочется столько уровней иметь

Спустя 13 минут, 23 секунды (11.01.2012 - 16:35) YVSIK написал(а):
и не гоняй по все таблице запрос достаточно по нужным полям
$connect_DB = mysql_query("SELECT `login`, `pass` FROM `users` WHERE `login`= '".$login."' AND `pass`= '".$pass."'");

вот проверка если нашлось или нет
 if(mysql_num_rows($connect_DB)>0)

дальше пишем

if()
{
// тут про логин
}
elseif
{
// тут про пасс
}
else
{
// туn если прошди проверку то
// Формируем ответ для флешки

echo "error=". $error ."&id=". $id;
}

Спустя 4 минуты, 39 секунд (11.01.2012 - 16:40) nugle написал(а):
Цитата
и не гоняй по все таблице запрос достаточно по нужным полям
$connect_DB = mysql_query("SELECT `login`, `pass` FROM users WHERE `login`= '".$login."' AND `pass`= '".$pass."'");

че за бред?
по-твоему нужно лишнюю нагрузку делать? а если у меня с сотню запросов будет? мне их вначало вынести все?
он правильно делает, если все впорядке, то делает запрос

и раз на то пошло, то не ifelse, а elseif

Спустя 5 минут, 17 секунд (11.01.2012 - 16:45) YVSIK написал(а):
nugle а зачем всю таблицу лопатить ? что может в других полях тоже возможно встретить ещё один пароль или логин , ну тогда лопать весь сервер, а вдруг, или базу........
а тут конечно так и есть
elseif поправил уже blink.gif smile.gif

Спустя 25 минут, 39 секунд (11.01.2012 - 17:11) nugle написал(а):
YVSIK
Допустим, таблица состоит из 1000000 строк, теперь представь. Если каждый просто будет по пустым полям нажимать, то какая нагрузка на сервер будет

Спустя 15 минут, 42 секунды (11.01.2012 - 17:27) YVSIK написал(а):
??? :blink:
а это что тут не так как ты написал?
$connect_DB = mysql_query("SELECT * FROM users 

тут четко виден запрос проверить все поля таблицы, вот в табличе может быть как ты и говоришь 1000 полей и что?
не,) это ты перепутал ;)
и что подразумевается под словом строк? по моему это как индекс записи
, сколько записей в таблице, а поля это сколько записей по каждому столбцу и запросив искать по всей , получается что ты будешь лопатить не только строки но и все поля!

Спустя 7 минут, 11 секунд (11.01.2012 - 17:34) nugle написал(а):
YVSIK
я извиняюсь, не правильно тебя понял smile.gif

Спустя 1 час, 14 минут, 33 секунды (11.01.2012 - 18:48) Godwarlock написал(а):
<?php 
$log_usr= $_POST['log_usr'];
// получаем логин
$pas_usr = $_POST['pas_usr'];
// получаем пароль
// Изночально $error установим в false

$error = "false";
include ("connect.php");
// подключение к Базе данных
$connect_DB = mysql_query("SELECT * FROM users WHERE log_usr='".$log_usr."' AND pas_usr='".$pas_usr."'", $db);

if(!$connect_DB || $connect_DB == '')
{
$id = "-1";
// вывод кода ошибки -1: не удалось подключиться к БД
}
else
{
$result = mysql_fetch_array($connect_DB);
//выполняем запрос

if($result['id'] == '')
{
$id = "-2";
// вывод кода -2: такого пользователя нет
}
else
{
$id = $result['id'];
$error = "true";
}
}
}

else
{
// Обрабатываем ошибку, т.к. нет переменной $pass
$id = "-3";
// ошибка в переменных
}
}

else
{
// Обрабатываем ошибку, т.к. нет переменной $login
$id = "-3";
// ошибка в переменных
}
}


else
{
// Обрабатываем ошибку, т.к. нет переменной $id
$id = "-3";
// ошибка в переменных
}
// Формируем ответ для флешки
echo "error=". $error ."&id=". $id;
?>

Что-то я опять запутался( Удалил
if(!empty($id)){
if(!empty($login)){
if(!empty($pass)){

И теперь выдает ту же ошибку:
Parse error: syntax error, unexpected '}' in T:\home\192.168.0.102\www\vhod.php on line 41

Спустя 1 минута, 57 секунд (11.01.2012 - 18:50) inpost написал(а):
Если у тебя 2 if, то как может быть 10 else? Иногда надо быть внимательным и думать smile.gif

Спустя 3 минуты, 50 секунд (11.01.2012 - 18:54) nugle написал(а):
<?php 
$log_usr= $_POST['log_usr'];
// получаем логин
$pas_usr = $_POST['pas_usr'];
// получаем пароль
// Изночально $error установим в false

$error = "false";
include ("connect.php");
// подключение к Базе данных
$connect_DB = mysql_query("SELECT * FROM users WHERE log_usr='".$log_usr."' AND pas_usr='".$pas_usr."'", $db);

if(!$connect_DB || $connect_DB == '')
{
$id = "-1";
// вывод кода ошибки -1: не удалось подключиться к БД
}
else
{
$result = mysql_fetch_array($connect_DB);
//выполняем запрос

if($result['id'] == '')
{
$id = "-2";
// вывод кода -2: такого пользователя нет
}
else
{
$id = $result['id'];
$error = "true";
}
}

echo "error=". $error ."&id=". $id;
?>

Спустя 1 час, 40 минут, 23 секунды (11.01.2012 - 20:34) YVSIK написал(а):
nugle
запись не верна эта
 {
$result = mysql_fetch_array($connect_DB);
//выполняем запрос

звучать должно так
присваиваем переменной $result значения из массива
= mysql_fetch_array от предыдущего запроса и из переменной($connect_DB);
вот так значение этой свтроенной функции звучит для наглядности
цитата из Ирбис
// Обрабатываем ряд результата запроса и записываем в переменную
$arr = mysql_fetch_assoc($result);
// Выводим массив
var_dump($arr);

и предпочтительней использовать последнюю вместо той то ты прописал (может и взял из запроса ТС но всё-же )
Godwarlock
что до ТС то так вот это проговори в слух и надо не заучить а понять каков алгоритм действий : цитата вот
Цитата
(нет пасса в базе значит один ответ, а если есть другой)

и вот то что надо для понимания что ты хочешь сделать__ в помощь







Спустя 8 минут, 37 секунд (11.01.2012 - 20:43) nugle написал(а):
YVSIK
я брал, даже не вглядываясь в код
ты вод прописал, что лучше использовать mysql_fetch_assoc, а по какой причине не написал...

Спустя 2 минуты, 18 секунд (11.01.2012 - 20:45) Игорь_Vasinsky написал(а):
<?php 
include ("connect.php");

$log_usr= !empty($_POST['log_usr']) ? mysql_real_escape_string($_POST['log_usr']) : false;;
// получаем логин
$pas_usr = !empty($_POST['pas_usr']) ? mysql_real_escape_string($_POST['pas_usr']) : false;
// получаем пароль
// Изночально $error установим в false

$error = 0;

// подключение к Базе данных
$connect_DB = mysql_query("SELECT `log_usr`, `pas_usr` FROM `users` WHERE `log_usr` = '".$log_usr."' AND pas_usr='".$pas_usr."'", $db);

if(!$connect_DB || !$log_usr || !$pas_usr)
{
$id = -1;
// вывод кода ошибки -1: не удалось подключиться к БД
}
else
{
$result = mysql_fetch_assoc($connect_DB);
//выполняем запрос

if(!mysql_num_rows($result['id']))
{
$id = -2;
// вывод кода -2: такого пользователя нет
}
else
{
$id = $result['id'];
$error = true;
}

}

echo "error=". $error ."&id=". $id;
?>


а вообще,не понятный механизм.. считать ошибки?

тогда для чего эти пляски с error - true?false

Спустя 2 минуты, 14 секунд (11.01.2012 - 20:48) YVSIK написал(а):
причин несколько есть, и я ссылку дал в перд посте там все расписано и могУ добавить, каждая имеет свое значение тут подходит эта
а это я понял
Цитата
YVSIK
я брал, даже не вглядываясь в код

и и вот уточнил и для тебя и для ТС

Спустя 2 минуты, 43 секунды (11.01.2012 - 20:50) nugle написал(а):
а если я сделаю так:
mysql_fetch_array($result, MYSQL_ASSOC)
?

Спустя 2 минуты, 36 секунд (11.01.2012 - 20:53) Игорь_Vasinsky написал(а):
ну можешь так. на несколько сиволов больше написал..а зачем?

Спустя 7 минут, 32 секунды (11.01.2012 - 21:00) nugle написал(а):
я написал к тому, что кому как удобнее, дело не в предпочтительности. но сам все равно использую mysql_fetch_assoc)))

Спустя 2 минуты, 59 секунд (11.01.2012 - 21:03) Игорь_Vasinsky написал(а):
ну может и есть какая нить разница в скорости в сторону assoc (всяка мелочная)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.