Как получить ответ после проверки значения в sql

Код для проверки значения в mysql с помощью php и успешного возврата будет перенаправлен на другую страницу. В принципе, я хочу, чтобы код, введенный в поле, проверил в таблице MySQL, если он будет найден, тогда проверьте статус в следующем столбце, и если он будет найден неиспользованным, тогда сделайте его используемым, и пользователь перенаправит на страницу регистрации. Внесены изменения согласно предложениям, получены ошибки на веб-странице.

redeem-code.php:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>

<html>
<head>
  <?php

  $servername = "localhost";
  $username = "root";
  $password = "root";
  $dbname = "redeem_code";
  $rcode = "";
  $status = "";
  $errors   = array();

  $db = mysqli_connect($servername, $username, $password, $dbname);
  // call the redeem() function if redeem_btn is clicked
  if (isset($_POST['redeem_btn'])) {
    $err = array();
  	redeem();
  }

  // Redeem Code
  function redeem(){
  	// call these variables with the global keyword to make them available in function
  	global $db, $errors, $rcode, $status;

  	// receive all input values from the form. Call the e() function
      // defined below to escape form values
  	$rcode    =  e($_POST['rcode']);
  	$status       =  e($_POST['status']);

  	// form validation: ensure that the form is correctly filled
  	if (empty($rcode)) {
  		array_push($errors, "Code is required");
  	}

  	// Redeem Code if there are no errors in the form
  	if (count($errors) == 1) {

    $query = "SELECT * FROM redeem_codes WHERE rcode='$rcode' LIMIT 1";
  	$results = mysqli_query($db, $query);

    if (mysqli_num_rows($results) == 0) {

    	$code_found = mysqli_fetch_assoc($results);
  		if ($code_found['status'] == 'unused') {

      header('location: register.php');

  		}else{
  			echo "Code not found";
  				header('location: index.php');
  		}
    }
      else {
  			echo "error";
  			//array_push($errors, "Invalid Code");
  		}
  	}
  }

  ?>
</head>
<body>
  <?php foreach( $err as $line ) { ?>
        <div style = "error"><?php echo $line; ?></div>
        <?php } ?>
  <div class = "widget">
  <h3>Redeem Code</h3>
<form method = "post" action = "redeem.php" role = "form" class = "contactForm text-left">


<div class = "form-group">
<input type = "text" name = "rcode" class = "form-control" id = "rcode" placeholder = "Enter code" data-rule = "minlen:4" data-msg = "Please enter at least 4 chars" />
<div class = "validation"></div>
</div>

<div class = "text-left"><button type = "submit" class = "btn btn-primary btn-lg" name = "redeem_btn">Redeem</button>
</div>

</form>
</div>
</body>
</html>
if (count($errors) == 1) будет истинным, если есть ошибка является, а не если ошибок нет.
Magnus Eriksson 21.08.2018 07:11

С какой проблемой вы столкнулись? и, как предложил Магнус Эрикссон, используйте if (count ($ errors) == 0)

Javed Sayyed 21.08.2018 07:13

Вам также не хватает } перед последним else { в вашем коде, что должно дать вам ошибку синтаксического анализа.

Magnus Eriksson 21.08.2018 07:16

@Javed: В настоящее время все условия приводят меня к пустой странице с URL-адресом <локальный: 8888 / redeem_function / redeem.php> (при нажатии кнопки отправки без ввода кода / неправильного ввода кода / правильного ввода кода). Я хочу, чтобы код проверял из таблицы MySQL и менял статус на следующий столбец, если он не использовался. и перенаправляем пользователя на registration.html

Umesh Kashyap 21.08.2018 07:36

проверьте, есть ли у вас ошибки, с помощью print_r ($ errors)

Javed Sayyed 21.08.2018 07:46

Пустая страница может быть вызвана ошибками. Проверьте журнал ошибок вашего сервера, чтобы узнать, если вы его получили. Это может быть проблема с синтаксисом, о которой я упоминал ранее. Вы также можете изменить способ отображения ошибок PHP и указать ему, чтобы он отображал все ошибки прямо на экране (это не то, что вы хотите в производственной среде, поскольку он может отображать конфиденциальные данные, но во время разработки вы должны). Вот как показать все ошибки и предупреждения: stackoverflow.com/questions/5438060/…

Magnus Eriksson 21.08.2018 07:47

Итак, вы хотите, чтобы мы написали условный запрос UPDATE, верно? Вы не добавили попытку кодирования для этой части.

mickmackusa 21.08.2018 07:52

Я не вижу поля в вашей html-форме с name = "status". Этот $_POST['status'] должен вызвать проблемы.

mickmackusa 21.08.2018 07:57

Пара указателей; select * бесполезен для отладки (на самом деле никогда не пригодится). И LIMIT без ORDER BY бессмысленно.

Strawberry 21.08.2018 08:18

@mickmackusa "status" находится и проверяется только в таблице MySQL рядом со значением кода и изменяется с "unused" на "used". Если это значение показывает «использовано», то верните / отобразите «Код уже использован».

Umesh Kashyap 21.08.2018 11:29

Получена ошибка: Уведомление: неопределенная переменная: ошибка в /Applications/MAMP/htdocs/connection_check/redeem-code.php в строке 68 Предупреждение: неверный аргумент указан для foreach () в / Applications / MAMP / htdocs / connection_check / redeem-code. php в строке 68

Umesh Kashyap 21.08.2018 12:37

Переместите $err = array(); за пределы блока условий.

mickmackusa 24.08.2018 13:47
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
12
79
0

Другие вопросы по теме