Intereting Posts
Нужно обновить мою базу данных одного пользователя, чтобы позволить нескольким пользователям, как изменить схему базы данных? ZendDebugger не может открыть libssl.so.0.9.8 в Mint 12 Неопределенные переменные ошибки с MySQL Не удается отобразить французские акценты в php mail как узнать, являются ли поля файла csv табуляцией или запятыми Как я могу создать динамический Javascript? У меня есть png, закодированный base64, как написать образ в файл на PHP? Отправить форму без обновления страницы ajax, php, javascript? писать в текстовый файл из HTML-формы с помощью PHP Почему этот вызов PHP для json_encode бесшумно терпит неудачу – неспособность обрабатывать одиночные кавычки? Доктрина «Многие-ко-многим» – саморегуляция и взаимность Объединить два изображения в php Как получить пользовательские параметры программно в Magento Laravel migrations / db: семя супер медленное Android не удается правильно подключиться к базе данных MySQL

Нажатие текстового тега для генерации нового хэша

$num = rand(0, 10000); $hash = password_hash($num, PASSWORD_BCRYPT, array( 'cost' => 6 )); 

Выше – хеш

 <p class="reg-code">Hash: <span><?php echo $hash; ?></span><i class="fa fa-refresh" aria-hidden="true" id="refresh-code"></i></p> 

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

Я не уверен, как это сделать, например, как функция на PHP или что.

Это должно быть. Потому что он не меняет состояние сервера. Просто верните новое значение.

 $('.fa-refresh').click(function(){ $.get( "./path/to/hashscript.php", function( data ) { $( ".reg-code > span" ).html( "Hash:" + data ); }); }); 

и файл hashscript.php должен содержать

 echo md5(uniqid(rand(), TRUE)); 

Ajax позволяет отправлять запрос на другую страницу без обновления. Проверьте эту часть jQuery Выполните асинхронный запрос HTTP (Ajax)

В вашем случае вы настроены следующим образом (1-й, включите jQuery в начало страницы):

 <p class="reg-code">Hash: <span></span> <i class="fa fa-refresh" aria-hidden="true" id="refresh-code"></i></p> 

Обратите внимание, что <span>, который будет обрабатывать ответ, пуст (но может показывать исходный хеш в начале. Его содержимое будет заменено так или иначе, когда вы нажмете ссылку), когда мы начнем, и что есть идентификатор, прикрепленный к обновленной ссылке

Затем вы используете jQuery:

 $(document).ready( function() { $("#refresh-code").click(function(){ // click on element with ID 'refresh-code' $.ajax({ // method default is 'GET' url: "hash.exe.php", // the PHP page that will generate new hash success: function(html){ // if no PHP error 'html' is the response $(".reg-code > span").html(html); // we append the html in the span }, error: function (request, status, error) { // we handle error alert(request.responseText); } }); }); }); 

PHP (hash.exe.php) будет выглядеть так (оставив процесс обработанным как есть, добавлен ответ echo'd):

 <?php error_reporting(E_ALL); ini_set('display_errors', 1); $num = rand(0, 10000); $hash = password_hash($num, PASSWORD_BCRYPT, array( 'cost' => 6 )); echo"$hash"; // this 'invisible' HTML output is echo'd back to the page who initiated it ?> 

Пример объединения всех FIDDLE

Это называется Ajax:

 <p class="reg-code"> Hash: <span id="hash"><?php echo $hash; ?></span> <i id="click" class="fa fa-refresh" aria-hidden="true" id="refresh-code"></i> </p> $('#click').click(function(){ $.post( "./path/to/hashscript.php", function( data ) { $( "#hash" ).html( data ); }); }); 

Вы используете события JavaScript для запроса сервера и обновления элементов страницы с ответом. Ваш PHP-скрипт должен повторить $hash .

 echo password_hash($num, PASSWORD_BCRYPT, ['cost' => 6]);