I have this form element in my php page, and i want to echo out the error message underneath the form element.
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>" >
Name: <input type="text" name="username"><br>
<span><?php echo nameErr; ?></span>
password: <input type="password" name="password"><br>
<span><?php echo passErr; ?></span>
Gender:<input type="radio" name="gender" value="male">Male
<input type="radio" name="gender" value="female">Female
<span><?php echo genderErr; ?></span>
</form>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(empty($_POST['username'])) {
$nameErr = 'name can't be empty';
else{
$username = $_POST['username'];
}
if(empty($_POST['password'])) {
$passErr = 'Password can't be empty ';
else{
$password = $_POST['password'];
}
if(empty($_POST['gender'])) {
$genderErr = 'Gender cant be empty';
}else{
$gender = $_POST['gender'];
}
}
}
?>
The major problem is that when i the page is ran, it show error messages that variable $nameErr is not defined, $passErr is not defined, and $genderErr is not defined, My question is that how can i actually notified users of error messages where necessary and it should be close to the form element too.
Содержание
- Как скопировать текст из диалоговых окон и сообщений об ошибках в Windows 10
- Скопируйте сообщения об ошибках
- Как скопировать текст из командной строки в Windows 7 и Windows 10
- Копирование в Windows 7
- Копирование в Windows 10
- Универсальные способы копирования
- Как Копировать Выделить или Вставить в командной строке
- Как скопировать текст из диалоговых окон Windows 10 средствами системы
- Как скопировать текст в интерфейсе приложений Windows и сторонних программ
- 1. Textify
- 2. Abbyy Screenshot Reader
- 3. QTranslate
- Как скопировать текст диалогового окна в Windows 10, 8.1
- Учебник. Копирование текста диалогового окна в буфер обмена в Windows 10 и 8.1
- Решение 1. Используйте встроенную функцию Windows
- Решение 2. Используйте сторонний инструмент
Как скопировать текст из диалоговых окон и сообщений об ошибках в Windows 10
Windows 10 показывает сообщения об ошибках и предупреждения для всех видов событий.
Помимо этих сообщений, вы также получаете другие сообщения, которые дают общую, расплывчатую информацию о событии.
Для всех сообщений об ошибках, отображаемых в Windows 10, еще не добавлена функция, позволяющая копировать текст из диалоговых окон и сообщений об ошибках. Это то, что было бы полезно, если вам нужно устранить неполадку с сообщением об ошибке.
Вместо этого вы должны вручную напечатать все сообщение об ошибке в предпочитаемой вами поисковой системе, что может быть утомительным.
Textify – это бесплатное приложение для Windows, которое позволяет копировать текст из диалоговых окон и сообщений об ошибках.
Скопируйте сообщения об ошибках
Когда вы сталкиваетесь с ошибкой или диалоговым окном, из которого вы хотите скопировать текст, нажмите на ярлык, который вы настроили для Textify, и убедитесь, что указатель мыши расположен над текстом, который вы хотите скопировать.
Хорошей идеей будет сначала нажать на текст, а затем нажать на ярлык.
Это добавит текст в редактируемое текстовое поле, из которого вы сможете его скопировать.
В наших кратких тестах это работало для предупреждений об ошибках / сообщениях, таких как сообщение с вопросом о том, хотите ли вы сохранить изменения, внесенные в файл, перед его закрытием, оно работало с некоторыми кнопками приложения и работало с полями приложения, такими как группа. имена для настроек в приложении панели управления.
Там, где это не сработало, было приглашение UAC, которое вы получаете, когда запускаете редактор реестра или когда вы открываете командную строку с правами администратора.
Это приложение отлично подходит, если у вас есть другие приложения или процессы Windows, выдающие ошибки, но если вы получаете много BSOD, это, очевидно, не будет полезным.
Единственным недостатком является то, что вам обычно нужно щелкнуть фрагмент текста, который вы хотите скопировать, прежде чем использовать ярлык приложения для его копирования.
В некоторых случаях простое нажатие на текст может выполнить действие, например, щелкнув название приложения в списке приложений в меню «Пуск», оно запустится.
Источник
Как скопировать текст из командной строки в Windows 7 и Windows 10
Не редко при работе с командной строкой возникает необходимость скопировать текст. Например, для того чтобы сохранить какие-то результаты или показать вывод команды более опытному пользователю.
В этой инструкции мы расскажем, как скопировать текст из командной строки в операционных системах Windows 7 и Windows 10.
Копирование в Windows 7
В операционной системе Windows 7 в командной строке не работают привычные клавиши копирования, такие как CTRL-C. Здесь используется немного другой подход к решению данной задачи.
Для того чтобы скопировать текст из командной строки в Windows 7 его нужно сначала пометить. Для этого кликните правой кнопкой мышки по любому месту в командной строке и в появившемся меню выберите вариант «Пометить».
После этого выделите текст, который нужно скопировать, с помощью мышки. В данном случае выделение будет происходить с помощью прямоугольника, как в графических редакторах.
Когда нужный текст будет выделен, кликните по нему правой кнопкой мышки (ПКМ). При этом выделение будет отменено, а текст скопирован в буфер обмена.
Теперь скопированный текст можно вставить в любой текстовый редактор, например, в Блокнот.
Для этого можно использовать комбинацию клавиш CTRL-V или через меню «Правка – Вставить».
Копирование в Windows 10
В операционной системе Windows 10 копирование текста из командной строки значительно упростилось. Теперь здесь работают стандартные клавиши для копирования текста – CTRL-C. Также в командной строке Windows 10 улучшилось выделение текста, теперь оно здесь работает точно также как и в любом текстовом редакторе.
Для того чтобы скопировать текст из командной строки Windows 10 просто выделите его мышкой, так как это делается в текстовых редакторах. При необходимости можно выделить сразу весь текст при помощи комбинации CTRL-A.
После выделения текста его можно скопировать, просто нажав комбинацию клавиш CTRL-C. Также текст можно копировать кликом правой кнопкой мышки.
После копирования текста его можно вставить в любой текстовый редактор.
Это можно сделать с помощью комбинации клавиш CTRL-V или через меню «Правка – Вставить».
Универсальные способы копирования
Также существуют универсальные способы копирования текста из командной строки. Это способы чуть сложнее, чем описанные выше, но они работают как в Windows 7, так и в Windows 10. Кроме этого данные способы могут быть значительно удобней и в некоторых ситуациях экономят немало времени.
Первый вариант – скопировать вывод команды сразу в буфер обмена. Для этого после команды, которую вы выполняете, нужно добавить вертикальную линию и команду CLIP. Внизу показано несколько примеров, как это делается.
ipconfig /all | clip getmac | clip
При выполнении команды с добавлением «| clip» результат сразу копируется в буфер обмена, без вывода на экран.
Второй вариант – сохранить вывод команды в текстовый файл. В этом случае после выполняемой команды нужно добавить два знака «больше» и указать путь к текстовому файлу. Внизу показано несколько примеров, как это делается.
ipconfig /all >> d:file.txt getmac >> d:file.txt
При выполнении команды с добавлением «>>» результат сразу сохраняется в указаный файл, без вывода на экран.
Обратите внимание, при сохранении вывода в текстовый файл вы можете получить ошибку «Отказано в доступе». Это означает, что у командной строки нет прав на сохранение файлов в данном каталоге. Чтобы решить эту проблему запустите CMD от имени администратора либо выберите другую папку для сохранения файла.
Также нужно отметить, что текстовые файлы, которые создает командная строка, сохраняются с кодировкой IBM CP866. Поэтому вы не сможете прочитать их с помощью стандартной программы «Блокнот». Для открытия этих файлов понадобится более продвинутый редактор, например Akelpad или Notepad++.
Как Копировать Выделить или Вставить в командной строке
Источник
Как скопировать текст из диалоговых окон Windows 10 средствами системы
И ногда у пользователей возникает необходимость скопировать текст из диалогового окна или уведомления, показываемого системой или программами. Это может быть сообщение об ошибке, предупреждение или просто подтверждение какой-либо операции, не важно, загвоздка в том, что его нельзя выделить и скопировать как текст в обычном документе. Некоторые юзеры прибегают к сторонним инструментам вроде Screenshot Reader.
Но скопировать текст системных окошек можно средствами самой Windows.
Единственный минус этого трюка в том, что вместе с информативным текстом будут скопированы теги, заголовок и надписи на кнопках. Например, содержимое окошка, выданного системой при ошибке запуска редактора реестра будет выглядеть так:
[Window Title]
regdit
[Content]
Не удается найти regdit. Проверьте, правильно ли указано имя и повторите попытку.
Примерно половина текста здесь лишняя, но что вам мешает удалить все ненужное в текстовом редакторе!?
Это все же лучше, чем использовать сторонние приложения, которые к тому же еще нередко переносят текст в его исходном виде, без удаления форматирования.
Способ работает с большинством типов системных и программных уведомлений, но есть и исключения. Так, скопировать содержимое диалоговых окон универсальных приложений нажатием Ctrl + C не получится.
Источник
Как скопировать текст в интерфейсе приложений Windows и сторонних программ
Как скопировать текст в системных и программных уведомлениях Windows? Как скопировать надписи в интерфейсе приложений операционной системы и сторонних программ? Получая уведомления об ошибках или сталкиваясь с незнакомыми пунктами меню и настроек в плохо русифицированных программах и таковых вообще без поддержки русского языка, мы, чтобы получить в Интернете разъяснение, обычно переписываем текст и вводим его поисковик.
Можно ли как-то автоматизировать этот процесс, если приходится часто сталкиваться с непонятными уведомлениями или исследовать софт без поддержки русского?
Есть как минимум три способа для реализации поставленной задачи.
1. Textify
Бесплатная портативная утилита Textify являет собой узкопрофильный кустарный инструмент, предназначенный именно для копирования надписей в диалоговых окнах Windows и программ.
Скачать Textify можно на её сайте:
Применяем выбранную комбинацию кнопкой «Apply» в окне утилиты.
2. Abbyy Screenshot Reader
Официальный веб-ресурс здесь:
Затем извлекаем из буфера распознанный текст и вставляем куда надо.
3. QTranslate
Бесплатный аналог предыдущей программе – программа-переводчик QTranslate, она поставляется со встроенной технологией OCR для перевода текста с источников, не поддерживающих копирование.
Сайт загрузки программы:
Эта программа также работает из системного трея, где на её значке можно вызвать контекстное меню и выбрать функцию распознавания текста на экране. При желании в настройках QTranslate для запуска этой функции можно назначить свои горячие клавиши, по умолчанию они отсутствуют.
После запуска функции блоком на экране указываем область распознавания текста и жмём кнопку копирования в появившейся надстройке.
Текст будет скопирован в буфер.
Источник
Как скопировать текст диалогового окна в Windows 10, 8.1
Если у вас есть, например, сообщение об ошибке или всплывающее окно в Windows 10 или 8.1, и вы устали писать вручную текст, который вы получаете в этом сообщении, вы увидите в этом руководстве, как мы можем скопировать текст с помощью всего несколько кнопок на клавиатуре прямо в блокнот или текстовый документ по вашему выбору.

В Windows 10 и Windows 8.1 у вас есть отличная возможность скопировать любое сообщение, которое появляется на экране, используя всего две кнопки на клавиатуре, а затем вставить сообщение прямо к вашему контактному лицу службы поддержки для систем Microsoft, чтобы он помог вам с вашей проблемой.
Учебник. Копирование текста диалогового окна в буфер обмена в Windows 10 и 8.1
Решение 1. Используйте встроенную функцию Windows
[Название окна]
Библиотека времени выполнения Microsoft Visual C ++
[Содержание]
Ошибка выполнения!
Программа c: P…
R6034
Приложение предприняло попытку неправильно загрузить библиотеку времени выполнения C.
Обратитесь в службу поддержки приложения для получения дополнительной информации.
Решение 2. Используйте сторонний инструмент
Если вы хотите скопировать более сложные тексты диалоговых окон или другие системные сообщения, и вы не можете этого сделать, вы всегда можете рассмотреть специальный инструмент. SysExporter от Nirsoft – великолепный портативный инструмент, который может помочь вам в этом. Это также позволит вам копировать текст в представлениях списка, древовидных представлениях, списках, списках, текстовых полях. Это также позволит вам перетаскивать определенные слова и предложения из диалоговых окон, очень полезная функция для конкретных ошибок. Мы упоминали, что SysExtractor является портативным и полностью бесплатным?
Теперь вы можете увидеть, как легко скопировать текст из диалогового окна, просто нажав несколько кнопок. Для любых мнений по этому вопросу, не стесняйтесь, напишите нам ниже.
Источник
#performance-testing #loadrunner #alm #vugen #microfocus
#тестирование производительности #loadrunner #alm #vugen #микрофокус
Вопрос:
Я новичок в loadrunner. Я знаю часть обработки ошибок. Но недавно я столкнулся с ситуацией, в которой я использую параметр, уникальный для каждой настройки итерации. Эти данные являются избыточными по своей природе, т. Е. я не могу использовать их снова.
Теперь в моем скрипте появляется ошибка там, где ее не должно быть. Вероятно, в момент сбоя приложения. Поэтому я хочу печатать этот параметр всякий раз, когда он выходит из строя в любом месте скрипта.
Есть идеи, как этого добиться? Заранее спасибо.
Комментарии:
1. смотрите lr_output_message() в сочетании с lr_eval_string()
2. @JamesPulley Чтобы использовать это решение, мы должны знать, где может произойти сбой моего скрипта. но я не знаю, где происходит сбой моего скрипта.
3. В VUGEN просто включите уровень журнала [f5]
4. @JamesPulley Можете ли вы поделиться какой-либо статьей об этом или как это сделать. ?
5. PCODE: (1) Проверка ожидаемого результата (2) если ожидаемый результат не выполняется, то lr_output_message(lr_eval_string(«Данные в точке сбоя были {my_parameter}»));
Я видел похожие вопросы к этому, но никто из них действительно не обратился к трекбеку.
Если у меня такой класс,
class Stop_if_no_then():
def __init__(self, value one, operator, value_two, then, line_or_label, line_number):
self._firstvalue = value_one
self._secondvalue = value_two
self._operator = operator
self._gohere = line_or_label
self._then = then
self._line_number = line_number
def execute(self, OtherClass):
"code comparing the first two values and making changes etc"
То, что я хочу, чтобы мой метод выполнения мог быть выполнен, — если self._then не равен строке «THEN» (в allcaps), тогда я хочу, чтобы он создавал настраиваемое сообщение об ошибке и завершал всю программу, а также не показывая трассировку.
Если ошибка встречается, единственное, что нужно распечатать, будет выглядеть примерно так (я использую 3 в качестве примера, форматирование — это не проблема).
`Syntax Error (Line 3): No -THEN- present in the statement.`
Я не очень придирчивый к тому, что это объект класса исключения, поэтому в этом аспекте нет проблемы. Поскольку я буду использовать это в цикле while, просто, если elif просто повторяет сообщение снова и снова (потому что, очевидно, я не закрываю цикл). Я видел sys.exit(), но также печатает гигантский блок красного текста, если я не использую его правильно. Я не хочу улавливать исключение в моем цикле, потому что в том же модуле есть другие классы, в которых мне нужно реализовать что-то вроде этого.
Ответ 1
Вы можете использовать try:, а затем except Exception as inst:
Что вам нужно сделать, это дать вам сообщение об ошибке в переменной inst, и вы можете распечатать аргументы об ошибке с помощью inst.args. Попробуйте распечатать его и посмотреть, что произойдет, и любой элемент в inst.args — тот, который вы ищете.
EDIT Вот пример, который я попробовал с питонами IDLE:
>>> try:
open("epik.sjj")
except Exception as inst:
d = inst
>>> d
FileNotFoundError(2, 'No such file or directory')
>>> d.args
(2, 'No such file or directory')
>>> d.args[1]
'No such file or directory'
>>>
EDIT 2: для закрытия программы вы всегда можете raise и ошибки, или вы можете использовать sys.exit()
Ответ 2
Вы можете отключить трассировку, ограничив ее глубину.
Python 2.x
import sys
sys.tracebacklimit = 0
Python 3.x
В Python 3.5.2 и 3.6.1 установка tracebacklimit на 0, похоже, не имеет предполагаемого эффекта. Это известный bug. Обратите внимание, что -1 тоже не работает. Однако установка его на None работает, по крайней мере, на данный момент.
>>> import sys
>>> sys.tracebacklimit = 0
>>> raise Exception
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
Exception
>>> sys.tracebacklimit = -1
>>> raise Exception
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
Exception
>>> sys.tracebacklimit = None
>>> raise Exception
Exception
Тем не менее, к лучшему или худшему, если возникают несколько исключений, все они могут быть напечатаны. Например:
socket.gaierror: [Errno -2] Name or service not known
During handling of the above exception, another exception occurred:
urllib.error.URLError: <urlopen error [Errno -2] Name or service not known>
Ответ 3
В общем случае, если вы хотите поймать любое исключение, кроме SystemExit, и выйти с сообщением о исключении без трассировки, определите функцию main, как показано ниже:
>>> import sys
>>> def main():
... try:
... # Run your program from here.
... raise RandomException # For testing
... except (Exception, KeyboardInterrupt) as exc:
... sys.exit(exc)
...
>>> main()
name 'RandomException' is not defined
$ echo $?
1
Обратите внимание, что в случае создания нескольких исключений выводится только одно сообщение.
Этот ответ предназначен для улучшения одного из The-IT.
Ответ 4
Если вы хотите избавиться от какой-либо трассировки для таможенных исключений и иметь номер строки,
вы можете сделать этот трюк
import sys
import inspect
class NoTraceBackWithLineNumber(Exception):
def __init__(self, msg):
try:
ln = sys.exc_info()[-1].tb_lineno
except AttributeError:
ln = inspect.currentframe().f_back.f_lineno
self.args = "{0.__name__} (line {1}): {2}".format(type(self), ln, msg),
sys.exit(self)
class MyNewError(NoTraceBackWithLineNumber):
pass
raise MyNewError("Now TraceBack Is Gone")
Дает этот результат и сделает ключевое слово raise бесполезным
MyNewError (line 16): Now TraceBack Is Gone
Ответ 5
Самый чистый способ, который я знаю, — использовать sys.excepthook.
Вы реализуете функцию трех аргументов, которая принимает type, value и traceback и делает все, что угодно (скажем, только печатает значение) и назначает эту функцию sys.excepthook.
Вот пример:
import sys
def excepthook(type, value, traceback):
print(value)
sys.excepthook = excepthook
raise ValueError('hello')
Это доступно как для python 2, так и для python 3.
Как распечатать сообщение об ошибке, если введено не число?
Интересно, как напечатать сообщение об ошибке, если пользовательский ввод не является числом.
Console.WriteLine("Water amount in ml:");
int waterAmount = Convert.ToInt32(Console.ReadLine());
Большинство ответов из других сообщений не работают, потому что waterAmountэто Int32, а не строка. Кроме того, извините, если мой английский слабый, это не мой родной язык
2020-07-18 14:59
4
ответа
Решение
Вы можете попробовать использовать C# TryParse()функции. Они пытаются преобразовать значения, но в случае неудачи возвращают false, а не ошибку.
Я бы посоветовал попробовать этот код:
Console.WriteLine("Water amount in ml:");
string input = Console.ReadLine();
if (Int32.TryParse(input, out var value))
// Do something here. The converted int is stored in "value".
else
Console.WriteLine("Please enter a number");
2020-07-18 15:04
Я вижу, вы не приняли другие ответы. Возможно, вы хотите заставить пользователя повторить попытку после того, как он не ввел число. Вы можете сделать это с помощью цикла while или проще, используя ключевое слово goto. Вы просто помещаете тег перед тем, как что-то происходит (в моем случае это waterAmountInput), и, если на входе было не число, вы пишете сообщение об ошибке и снова переходите к началу. Вот код:
int waterAmount;
waterAmountInput:
Console.Write("Water amount in ml: ");
try
{
waterAmount = Convert.ToInt32(Console.ReadLine());
}
catch
{
Console.WriteLine("The water amount needs to be a number!");
goto waterAmountInput;
}
2020-07-18 15:49
Вы должны использовать TryParse функция:
Console.WriteLine("Water amount in ml:");
int waterAmount = 0;
if (int.TryParse(Console.ReadLine(), waterAmount)) {
} else {
Console.WriteLine("Error Message");
}
2020-07-18 15:04
Вам нужно будет использовать TryParseпрежде чем предположить, что это число. ПослеConsole.WriteLine вы можете захватить и проанализировать ввод, и если TryParse возвращается false, вы можете отобразить сообщение об ошибке.
Примечание: если преобразование прошло успешно, числовое значение доступно в waterAmt локальная переменная.
Console.WriteLine("Water amount in ml:");
var input = Console.ReadLine();
if(!int.TryParse(input, out int waterAmt))
Console.WriteLine("Input is not a number");
2020-07-18 15:05
Другие вопросы по тегам
c#
.net


























