php
2014-10-28 17 views 0 likes 
0

我想做一个关键的赠品脚本,只要有人在输入中输入他的邮件就把钥匙给走。我来了很远,但现在我有1个问题,当它发送邮件我应该给你的密钥,但它不,它只是发送文本“你的代码是:”php的关键赠品脚本不工作

它发送密钥在“$消息“,只要它发送它应该运行函数dispres并从数据库中获取密钥。

有人可以看到问题是什么?

<?php 
    //fill in mail 

    echo " 
    <form method='post' action=" . $_SERVER['PHP_SELF'] . "> 
     Email: <input name='email'></input><br> 
     <input type='submit' value='Get your key' name='submit'> </input><br><br> 
    </form>"; 

     if(empty($_POST["email"])) 
     { 
      echo "Please enter an email adress."; 
     } 
     else{ 

      //mail key to input mail 
      $to  = $_POST["email"]; 
      $subject = 'TEST'; 
      $message = 'Your code is:' . dispres(); 
      $headers = 'niks'; 

      mail($to, $subject, $message); 

      echo "Your code has been sent to your email: " . $_POST["email"] . " \r"; 
      echo dispres(); 
     } 



    function dispres(){ 

    //database connect 
    $db_host = 'localhost'; 
    $db_user = 'root'; 
    $db_pwd = 'password'; 

    $database = 'keys'; 
    $table = 'keytest'; 

    if (!mysql_connect($db_host, $db_user, $db_pwd)) 
     die("Can't connect to database"); 

    if (!mysql_select_db($database)) 
     die("Can't select database"); 


    //grab random key from database 

    $result = mysql_query("SELECT * FROM {$table} order by RAND() LIMIT 1"); 

    $row = mysql_fetch_row($result); 

    $result = implode('|',$row); 


    echo $result; 






    //delete key from database 

    //mysqli_query("DELETE FROM keytest WHERE name='$cell1'"); 

    //remember ip adress for 1 use only 
    } 
    ?> 
+0

应该有一个'$返回结果;'在dispres的end()函数。 – Niko 2014-10-28 09:09:30

+0

修复它,但现在我得到了邮件中的其他键,然后显示在网站上。这是什么? – kaaai3 2014-10-28 09:16:00

+0

只需调用dispres()一次(= 1个键)并将该键存储在一个变量中,即'$ key = dispres();'...'$ message ='您的代码是:'。 $ key;'...'echo $ key;'。 – Niko 2014-10-28 09:24:30

回答

0
  1. 添加return语句的dispres()函数。
  2. 只调用一次dispres()来获得每个用户只有一个密钥。
if (empty($_POST["email"])) { 
    echo "Please enter an email adress."; 
} else { 
    // get key from database 
    $key = dispres(); 

    //mail key to input mail 
    $to  = $_POST["email"]; 
    $subject = 'TEST'; 
    $message = 'Your code is:' . $key; 
    $headers = 'niks'; 

    mail($to, $subject, $message); 

    echo "Your code has been sent to your email: " . $_POST["email"] . " \r"; 
    echo $key; 
} 

function dispres() { 
    // ... 

    // replace: 
    // echo $result; 
    // by: 
    return $result; 
} 
+0

谢谢你解决我的问题。 – kaaai3 2014-10-28 09:37:06

相关问题