PHP“输入代码以赢取”解决方案读取简单的.txt文件

时间:2012-10-15 12:43:05

标签: php

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

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

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

编辑:

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

    <?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

有人可以帮忙吗?

2 个答案:

答案 0 :(得分: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手册并开始工作;)

答案 1 :(得分:0)

这是简单的脚本。这是short tutorial

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

对于通过电子邮件发送结果,可以使用mail()功能,或PHPMailer类(支持多种邮件协议)