[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: IF и проблема
RutRi
Есть вот такой код:
[php]if (isset($_POST['f_name'])) { $f_name = $_POST['f_name']; $f_name = trim ($f_name);}
if (isset($_POST['f_pass'])) { $f_pass = $_POST['f_pass']; $f_pass = trim ($f_pass);}

// если переменные которые мы будем вводить - пусты, то выводим форму ...
if ($f_name == "" and $f_pass == "")
{
echo ('<div id="text_login">Какой-то текст</div>
<form method="post" action="online.php">
Введите Логин:<br><input type="text" name="f_name" size=35 value=""><br>
Введите Пароль:<br><input type="password" name="f_pass" size=35 value=""><br>
<input type="submit" value=">>>> Войти <<<<"><p></form>') ;

}

// открываем фыйл с данными о логине и пароле ... данные заносим в переменную, каторая будет содержать в себе массив
$file_array = file("etTrgfprfdv1256443ghgf.data"); // открытие файла
if(!$file_array) И продолжение...[php]

Проблема в той части, что выделена, наверное) Вообщем, что получается так, код который в echo, он какбуд-то копируется, в цикле, и повторяется) Если закрыть скрип exit(); То он обрывается как надо, НО все остальные див сайта, которые вне php кода, просто пропадают. Ниже этого exit белый лист) Как это исправить? wacko.gif



Спустя 10 минут, 40 секунд (13.08.2010 - 18:05) Basili4 написал(а):
RutRi
Во первых (судя по коду ты учишься по Попову ) выкинь его курс. Он тебя хорошему не научит.

Скорее всего у тебя всегда выполняется условие ($f_name == "" and $f_pass == "") от сюда несколько форм

можешь вставить в самое наячало скрипта print_r($_POST); будешь видеть содержимое массива $_POST;

PS

if (isset($_POST['f_name'])) { $f_name = $_POST['f_name']; $f_name = trim ($f_name);}

замени на

$f_name = isset($_POST['f_name'])? trim ($_POST['f_name']):'';

и так со всеми переменными.


Спустя 12 минут, 1 секунда (13.08.2010 - 18:17) RutRi написал(а):
получилось так, но все равно несколько форм=(

<?php



// переприсваеваем переменные, которые пришли из формы и удалеям из них пробелы (переменная trim)
$f_name = isset($_POST['f_name'])? trim ($_POST['f_name']):'';
$f_pass = isset($_POST['f_pass'])? trim ($_POST['f_pass']):'';

// если переменные которые мы будем вводить - пусты, то выводим форму ...
if ($f_name == "" and $f_pass == "")
{
echo ' <div id="text_login">какой-то текст</div>
<form method="post" action="online.php">
Введите Логин:<br><input type="text" name="f_name" size=35 value=""><br>
Введите Пароль:<br><input type="password" name="f_pass" size=35 value=""><br>
<input type="submit" value=">>>> Войти <<<<"><p></form>';
}


// открываем фыйл с данными о логине и пароле ... данные заносим в переменную, каторая будет содержать в себе массив
$file_array = file("etTrgfprfdv1256443ghgf.data"); // открытие файла
if(!$file_array)
{
echo("Внутренняя ошибка, обратитесь к администратору");
}
else // если файл открылся, то считываем данные из массива ...
{
for($i=0; $i < count($file_array); $i++)
{
if ($i == 0) // если это первая строка - то это логин
{
$name = $file_array[$i]; // присваиваем данные со строки в переменную
$name = trim ($name); // удаляем пробелы
}
if ($i == 1) // если это вторая строка - то это пароль
{
$pass = $file_array[$i]; // присваиваем данные со строки в переменную
$pass = trim ($pass); // удаляем пробелы
}
}
}

// проверка совпадения логинов и паролей ...
if ($f_name == $name and $f_pass == $pass)
{
echo '
<a href="/index.php" rel="popuprel" class="popup2">Я РОБОТ</a> <br>
<a href="#" rel="popuprel" class="popup">Я ЧЕЛОВЕК</a>

<div class="zakaz" id="popuprel">
<div id="intabdiv">
<form method="post" action="sendformee.php">

Тут форма)


<input type="submit" value="Отправить" >
</div>

</form>

</div>

<div id="fade"></div> ' ;
}
else{
echo ' <div id="text_login">тут текст</div><br>
Неверный пароль или логин! <a href="/online.php">Повторите попытку</a>!<br>';
}


?>

Если не ошибаюсь, то то что щас жырным выделено, он выводит, там сверху, как второе) Тоесть этот и тот обьединяются почему-то

Спустя 2 минуты, 14 секунд (13.08.2010 - 18:19) Lenarfate написал(а):
я бы посмотрел, но ты код для начала в форматтер засунь

Спустя 2 минуты, 49 секунд (13.08.2010 - 18:22) RutRi написал(а):

<?php



// переприсваеваем переменные, которые пришли из формы и удалеям из них пробелы (переменная trim)
$f_name = isset($_POST['f_name'])? trim ($_POST['f_name']):'';
$f_pass = isset($_POST['f_pass'])? trim ($_POST['f_pass']):'';

// если переменные которые мы будем вводить - пусты, то выводим форму ...
if ($f_name == "" and $f_pass == "")
{
echo ' <div id="text_login">какой-то текст</div>
<form method="post" action="online.php">
Введите Логин:<br><input type="text" name="f_name" size=35 value=""><br>
Введите Пароль:<br><input type="password" name="f_pass" size=35 value=""><br>
<input type="submit" value=">>>> Войти <<<<"><p></form>'
;
}


// открываем фыйл с данными о логине и пароле ... данные заносим в переменную, каторая будет содержать в себе массив
$file_array = file("etTrgfprfdv1256443ghgf.data"); // открытие файла
if(!$file_array)
{
echo("Внутренняя ошибка, обратитесь к администратору");
}
else // если файл открылся, то считываем данные из массива ...
{
for($i=0; $i < count($file_array); $i++)
{
if ($i == 0) // если это первая строка - то это логин
{
$name = $file_array[$i]; // присваиваем данные со строки в переменную
$name = trim ($name); // удаляем пробелы
}
if ($i == 1) // если это вторая строка - то это пароль
{
$pass = $file_array[$i]; // присваиваем данные со строки в переменную
$pass = trim ($pass); // удаляем пробелы
}
}
}


// проверка совпадения логинов и паролей ...
if ($f_name == $name and $f_pass == $pass)
{
echo '
<a href="/index.php" rel="popuprel" class="popup2">Я РОБОТ</a> <br>
<a href="#" rel="popuprel" class="popup">Я ЧЕЛОВЕК</a>

<div class="zakaz" id="popuprel">
<div id="intabdiv">
<form method="post" action="sendformee.php">

Тут форма)


<input type="submit" value="Отправить" >
</div>

</form>

</div>

<div id="fade"></div> '
;
}
else{
echo ' <div id="text_login">тут текст</div><br>
Неверный пароль или логин! <a href="/online.php">Повторите попытку</a>!<br>'
;
}

?>


Я впринципе понял, почему так. Там нужно как-то две функции в одну перевести, самую верхнюю с формой и самую нижнюю, где неверный пароль) просто открываешь, пароль не введен, и логин тоже, значит не равны переменным получаемым) последняя echo) Только вот как(

Можно как нибудь прописать тут
 // проверка совпадения логинов и паролей ...	
if ($f_name == $name and $f_pass == $pass)
{
echo '
<a href="/index.php" rel="popuprel" class="popup2">Я РОБОТ</a> <br>
<a
href="#" rel="popuprel" class="popup">Я ЧЕЛОВЕК</a>

<div
class="zakaz" id="popuprel">
<div
id="intabdiv">
<form
method="post" action="sendformee.php">

Тут форма)


<input type="submit" value="Отправить" >
</div>

</form>

</div>

<div
id="fade"></div> ' ;
}
else{
echo ' <div id="text_login">тут текст</div><br>
Неверный пароль или логин! <a href="/online.php">Повторите попытку</a>!<br>';
}

?>
Что если имя и пас равны переменным(что уже прописано) и имя и пас не равны 0, то выполняется все то дальше)

Спустя 15 минут, 23 секунды (13.08.2010 - 18:37) Lenarfate написал(а):
зайди лучше и почитай.http://irbis-team.com/15/7

а у тебя, извини, не в обиду, жуткий говнокод. даже я,когда начинал, не писал так

Спустя 4 минуты, 56 секунд (13.08.2010 - 18:42) RutRi написал(а):
Я буду страться писать лучше и понятнее, я же только учусь, притом код на половину не мой) Щас проста в стадии разборка чужих кодов, для понимания, как это обычно делают, видимо мне оч. левый код попался)

Спустя 2 минуты, 32 секунды (13.08.2010 - 18:45) Lenarfate написал(а):
я заметил smile.gif

Спустя 11 минут, 45 секунд (13.08.2010 - 18:57) RutRi написал(а):
А как сделать в if четыре условия, да так, чтобы если одно из условий не верно, то сразу было бы ложь) if ("Значение1==значение22 и значение2==значение23 и значение1!=0 и значение2!=0") {верно} else {ложь} хотя не, не так, что-то я туплю с логикой. Щас сек)

Спустя 7 минут, 32 секунды (13.08.2010 - 19:04) Lenarfate написал(а):
ты уже ответил на свой вопрос. и = &&

Спустя 2 минуты, 56 секунд (13.08.2010 - 19:07) RutRi написал(а):
if (name==0 and pass==0) то (Выводит ФОРМУ);
if(name==$name and pass==$pass) то (выводит текст) else то ОШИБКУ;


В результате получаем ФОРМУ и ОШИБКУ, как сделать, чтобы получали только форму, если name и pass равны нулю, а если равны переменным, то получали текст, если не равны, то ошибку ? Но при этом незя использовать exit()

Спустя 8 минут, 19 секунд (13.08.2010 - 19:15) Basili4 написал(а):
код твой пока разберать не буду времени нет
могу дать совет ни храни пароли в текстовых файлах в на крайний случай нужно в файлах харни только в исполняемых
$file_array = file("etTrgfprfdv1256443ghgf.data"); // открытие файла

вот этот файл можно будет прочитать а соответсвенно и узнать все твои пароли и явки.

Спустя 19 секунд (13.08.2010 - 19:16) Lenarfate написал(а):
if (empty(name) and empty(pass)) то (Выводит ФОРМУ);
elseif(name==$name and pass==$pass) то (выводит текст) else то ОШИБКУ;

Спустя 19 часов, 24 минуты, 32 секунды (14.08.2010 - 14:40) RutRi написал(а):
Спасибо)
Ещё вопрос:
Дана кнопка, и есть проверка нажатия кнопки, Нужно вставить модальное окно, чтобы само появлялось


<?php
$file_array = file("etTrgfprfdv1256443ghgf.data");

// открытие файла





//Проверяем, нажата ли кнопка Заказ, переприсваеваем переменные, которые пришли из формы и удаляем из них пробелы

if(@$_POST['go'] != '')
{
if(isset($_POST['f_name']))
{
$f_name = $_POST['f_name'];
$f_name = trim ($_name);
}
if(isset($_POST['f_pass']));
{
$f_pass = $_POST['f_pass'];
$f_pass = trim($f_pass);
}
//Подсоединяем файл с пасом, и задаем переменные строкам
if(!$file_array)
{
echo("Внутренняя ошибка, обратитесь к администратору");
}
else
{
for($i = 0; $i < count($file_array); $i++)
{

if ($i == 0)
// если это первая строка - то это логин
{
$name = $file_array[$i];
$name = trim ($name);
}

if ($i == 1)
// если это вторая строка - то это пароль
{
$pass = $file_array[$i];
$pass = trim ($pass);

} }}
if($f_name === $name and $f_pass === $pass)
{
ТУТ ДОЛЖНно быть модальное окно, и появиться должно само, если переменные верны)
}
echo {
'Неправильные Логин или Пароль, пожалуйста повторите попытку';
}


}



?>


Быстрый ответ:

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