-2

我想创建一个比赛。我不擅长 php,但可以看到这可能是唯一的方法。我想使用一个简单的单字段表单创建一个脚本,客户在其中输入代码,当他们单击提交时,它将查看一个文本文件,任何匹配的结果都将返回一个祝贺页面,任何不匹配的结果将返回一个抱歉你还没有赢得这个时间页。这会很简单吗?

我可以对此进行扩展,并在 sql 数据库中包含 13,000 个代码的整个列表,一旦输入代码,它就会耗尽该代码,因此如果再次输入,它将返回抱歉,此代码已被输入/使用?

是否有一种简单的方法可以通过电子邮件发送地址说明已提交某些内容?

编辑:

使用下面的答案,我已经做到了这一点:

    <?php
$hostname = "localhost";
$username = "*****";
$password = "*****";
$code = $_POST[ 'code' ];

  if ( $client_code ) {

    $db = new PDO( 'mysql:host=$hostname;dbname=*****", $username, $password);

    $statement = $db -> prepare( 'SELECT 1 FROM codes WHERE code = ?' );
    $statement -> bindParam( 1, $code );
    $statement -> execute();

    $result = $statement -> fetchAll();

    if ( $result ) {
      header( 'Location: success.php' ); // Redirects to success page
      die();
    }
      header( 'Location: fail.php' ); // Redirects to fail page
      die();
    }

   else {
    header( 'Location: no_code.php' ); // Redirects to no code entered page
    die();
  }

?>

但它不断出现此错误

解析错误:语法错误,第 11 行 mysite/mypahe.php 中的意外 T_STRING

任何人都可以帮忙吗?

4

2 回答 2

1

创建一个名称codes如下的 db 表:

+------------+--------+
| promo_code | status |
+------------+--------+
| s72jasdih  |      0 |
| asd893kla  |      0 |
| Sasd93ja3  |      0 |
+------------+--------+

现在在索引页面中创建一个简单的表单:

<form action="actions.php" method="post">
  <input type="text" name="client_code" />
  <input type="submit" value="Submit" />
</form>

输入代码并按提交后,用户将被重定向到actions.php包含以下内容的页面:

<?php

  $client_code = $_POST[ 'client_code' ];

  if ( $client_code ) {

    $db = new PDO( 'mysql:host=' . $db_host . ';dbname=' . $db_name, $db_user_name, $db_password );

    $statement = $db -> prepare( 'SELECT 1 FROM codes WHERE promo_code = ?' );
    $statement -> bindParam( 1, $clients_code );
    $statement -> execute();

    $result = $statement -> fetchAll();

    if ( $result ) {
      header( 'Location: success.php' ); // Redirects to success page
      die();
    }
      header( 'Location: fail.php' ); // Redirects to fail page
      die();
    }

  } else {
    header( 'Location: no_code.php' ); // Redirects to no code entered page
    die();
  }

?>

这是您必须做的一个快速示例。要使其完全正常工作,请阅读 PHP 手册并开始工作;)

于 2012-10-15T12:57:50.183 回答
0

这是简单的脚本。这是简短的教程

在数据库中有代码会更好。为了选择行并将数据插入数据库表中,可以使用MySQLi函数。

对于电子邮件结果,可以使用mail()函数或PHPMailer类(支持多种邮件协议)

于 2012-10-15T12:49:50.743 回答