2012-10-15 26 views
-2

我想創建一個比賽。我不擅長PHP,但可以看到這可能是唯一的方法來做到這一點。我想創建一個腳本,使用一個簡單的字段形式,客戶輸入一個代碼,當他們點擊提交時,它會查看一個文本文件,任何匹配結果將返回一個祝賀頁面,任何不匹配都會返回一個對不起你沒有贏得這個時間頁面。這會很簡單嗎?PHP「輸入要贏取的代碼」解讀一個簡單的.txt文件

我可以擴大這個,並在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(); 
    } 

?> 

但它一直與此錯誤標記了

解析錯誤:語法錯誤,在mysite的意外T_STRING/mypahe.php on line 11

任何人都可以幫忙嗎?

+4

而不是文本文件,您應該執行數據庫操作。它更容易。您可以在數據庫中比較值。然後,只需使用if else語句。如果陳述是真實的(所以如果有一行代碼在其中),你可以鏈接贏得價格,否則將失去價格。它相當容易。如果代碼是從0到1(所以我是二進制字段),如果語句是1,則創建一個計數標記並添加。而且php有自己的電子郵件功能,所以是的,這是可能的。 – Dorvalla

+0

你如何生成這些代碼?他們有特定的算法,或者他們是隨機的 – Baba

+0

爲什麼人們低估這個問題?這對我來說似乎完全有效。 –

回答

0

它是簡單的腳本。這裏是short tutorial

讓數據庫中的代碼更好。爲了選擇行並將數據插入數據庫表MySQLi可以使用函數。

收發郵件的效果,可以使用mail()功能,或PHPMailer類(支持多種郵件協議)

+0

謝謝,我會看看鏈接 – user1747102

1

創建一個名爲codes像這樣一個數據庫表:

+------------+--------+ 
| 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手冊並開始工作;)

+0

謝謝,非常感謝,我會給這個bash – user1747102

+0

嗨,我編輯了我的我不斷得到一個錯誤 – user1747102

+0

你的問題是錯誤說的是:'$ db = new PDO('mysql:host = $ hostname; dbname = *****「,$ username,$ password) ;''你用單引號'''打開,但是用雙引號''' – Peon