Показать сообщение отдельно
  #26 (permalink)  
Старый 07.12.2015, 17:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А я думаете кафедру РНР/JS заканчивал? Хотя учился и в училище, а потом и в институте, но специальности не относятся напрямую к программированию.

Да дело даже не в языке как таковом. У вас ведь сама логика страдает, а за этим огрехи и в коде.

Нужно проверить занятность домена, это первая задача, и пока она не будет выполнена, дальнейшие действия клиента должны игнорироваться, и вообще не разрешаться заказ домена, даже кнопки таковой на клиент не должно быть.

А что у вас? Ну зачем при проверке занятости домена isset($_GET["TLD"]), это какое отношение имеет к имени домена?
А об этом я уже писал strlen($_GET["domain"])>0, вы упорно эту глупость повторяете в коде своем. Ну введу я имя состоящее из одних N пробелов, и длина строки будет больше 0, но разве это имя? Удалять надо крайние пробелы, и если после этого строка не пуста, то проверять на корректность доступных символов, ну не может быть домен и как ",.,.,.....,,,...".

И показывал ведь, что если обращение проверки и прочие идут к одной и той же странице, то обработчики этого должны быть в самом начале кода:

<?php
if($domain = trim($_GET["domain"])) { //Обрезали крайние пробелы, если строка не пустая после этого, далее
//здесь нужно оправлять переменную $domain в функцию (ибо проверять это нужно будет постоянно, до тех пор пока клиент не закажет домен, то есть при каждом приеме данных от него), которая будет проверять корректность ввода
//и уже результат этой проверки и определит дальнейшие действия - или ошибка, или разрешить заказ
//окончание такого блока кода всегда должно заканчиваться выходном - exit, иначе пользователю будет возвращаться вывод страницы.
}

//это я не знаю зачем нужно, если нужно, значит нужно
set_time_limit(0);
require_once("doain.php"); //ошибка в имени, если только не случайность
?>

а далее код самой страницы,

<!DOCTYPE html>
<head>
<title></title>
<meta charset="utf-8">
<style>
.modalDialog
.....
</head>
<body>
<table>
<tr>
<div class="dom-fon">
<form class="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="domain" id="domain">
<table>
<tr>
<td class ="table_name">Введите имя домена:</td>
......
//но бузе РНР кода
if(isset($_GET["domain"]) && strlen($_GET["domain"])>0 && isset($_GET["TLD"]) && is_array($_GET["TLD"]))
{
$target=$_GET["domain"];
.... траля-ля

Понимаете для чего такая конструкция? А для того, что при открытии страницы нет запросов $_GET["domain"] и т.п., и РНР код в начале страницы обрабатывающий запросы клиента, то есть диалог с клиентом после загрузки страницы, не будет исполнятся, клиент просто получит страницу, а при наличии этих запрос будет работать код обслуживающий все диалоги с пользователем.

И я об этом уже не первый раз говорю, вы же "правите", но не понятно что, вы сперва поймите суть работы. А еще лучше сначала обдумать задачу в целом, затем разбить ее на ключевые моменты, которые и определят структуру кода. Структура кода, а сие каждая подзадача будут определять необходимый инструментарий языка (конструкции, функции), а это в купе нужно решать с набором, который нужно будет иметь на клиенте - элементы, методы, фичи всякие (типа панелей и прочих плюшек). А так как проверка данных от клиента, это постоянная и первостепенная задача сервера, и данные нужно проверять в два этапа - сперва занятость, разрешено далее, затем опять занятость и выбрано ли еще обязательное для заказа, и т.д.., то диалог подразумевает постоянную динамику, а для нее window.open ну совсем не лучшее решение.

А уж после этого можно углубляться в мелочи, что будет лучше for или whie, и т.п. Вы же пытаетесь решать задачу не от общего к частному, а наоборот, от мелочей, а об общем даже и представления нет. В общем же ой как далеко до языка программирования, а им может быть какой угодно, хоть Бейсик.

Последний раз редактировалось laimas, 07.12.2015 в 17:56.
Ответить с цитированием