Top.Mail.Ru
\n\n
\n \n

\n

\n \n
\n","author":{"@type":"Person","name":"ypikandro","url":"https://otvet.mail.ru/profile/ypikandro"},"dateCreated":"2022-03-10T00:42:42+03:00","datePublished":"2022-03-10T00:42:42+03:00","answerCount":4,"upvoteCount":0,"acceptedAnswer":{"@type":"Answer","text":"Если форма отправляется через ajax запрос, то можно выдавать сообщение о результате \n$.ajax({\nmethod: \"POST\", // метод HTTP, используемый для запроса\nurl: \"about.php\", // строка, содержащая URL адрес, на который отправляется запрос\ndata: { // данные, которые будут отправлены на сервер\ndata: data,\ndata1: data1\n},\nsuccess: function ( msg ) { // функции обратного вызова, которые вызываются если AJAX запрос выполнится успешно \nalert(msg ); // выдаем ответ от сервера\n}\n});\nИ используй MySql а не текстовый файл, на дворе же 21 век","dateCreated":"2022-03-10T11:55:56+03:00","datePublished":"2022-03-10T11:55:56+03:00","upvoteCount":0,"author":{"@type":"Person","name":"evk_it_servis_k","url":"https://otvet.mail.ru/profile/evk_it_servis_k"},"url":""},"suggestedAnswer":[{"@type":"Answer","text":"
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Не выводит сообщения никакие!

Все работает правильно, а именно, если создаешь пользователя с тем же именем, то его не записывает в файл. Но не выводит сообщения по типу: "Пользователь был зарегистрирован", которые находятся в return
В чем проблема?

КОД:

<? if ((isset($_POST['text'])) || (isset($_POST['pass']))): ?>
<script type="Data/javascript">
alert('<?=save(($_POST['text']), ($_POST['pass']))?>');

</script>
<? endif; ?>



<form method="post">

<p><label>Ваше логин: <input name="text" type="text" size="10"></label></p>
<p><label>Ваше пароль: <input name="pass" type="password" size="10"></label></p>
<input name="ok" type="submit" value="Зарегистрировать аккаунт!!!" />
</form>


<?
function save($data, $data2, $fileName = "Data.txt", $separator = "\n") {
$data = trim($data);
$data2 = trim($data2);
$data2 = md5($data2);

if (empty($data) && empty($data2))
return "Ничего не было введено!";

if (in_array($data, explode($separator, file_get_contents($fileName))))
return "Такой логин уже есть!!!";

$result = file_put_contents($fileName, $data .$separator, FILE_APPEND);
$result2 = file_put_contents($fileName, $data2 .$separator, FILE_APPEND);

if ($result === FALSE)
return "Ошибка регистрации." ;
else
return "Вы были успешно зарегистрированны!";
}
?>

По дате
По рейтингу
Аватар пользователя
Оракул

<script type="text/javascript">

Аватар пользователя
Мыслитель

Если форма отправляется через ajax запрос, то можно выдавать сообщение о результате

$.ajax({
method: "POST", // метод HTTP, используемый для запроса
url: "about.php", // строка, содержащая URL адрес, на который отправляется запрос
data: { // данные, которые будут отправлены на сервер
data: data,
data1: data1
},
success: function ( msg ) { // функции обратного вызова, которые вызываются если AJAX запрос выполнится успешно
alert(msg ); // выдаем ответ от сервера
}
});

И используй MySql а не текстовый файл, на дворе же 21 век

Аватар пользователя
Знаток

зачем придумывать велосипед, когда всё уже придумано, и намного лучше. Мой совет: основы php понятны - хорошо. Изучай основы ООП. Рекомендую этот плэйлист:
https://www.youtube.com/playlist?list=PLqQ1VsG-wgxfUc8pKsv7MBSbp5Q3zFLi4
Будет понятно ООП приступай к изучению самого лучшего фреймворка Laravel. Видеоуроков на nnmclub точка to полно, желательно от webformyself, на ютубе тоже, например, https://www.youtube.com/playlist?list=PLd2_Os8Cj3t8StX6GztbdMIUXmgPuingB

Аватар пользователя
Мастер

return не выводит данные на экран, а только является результатом выполнения функции.

либо вызывай функцию так:
echo save(параметры);

либо используй echo вместо return, например:
echo 'Вы были успешно зарегистрированы!'; // с одной "н"

хотя с твоей логикой написания, чтобы ничего не сломать, придется делать так:
return print('Вы были успешно зарегистрированы!');