2013-07-17 48 views
1

其實我正在使用XML的Flash網頁。我想用XML創建一個單獨的頁面,它使用PHP將數據插入到MySQL數據庫中,但是我被卡住了......並且我的XML-PHP知識不足以完成此任務。PHP的XML請求MySQL

這是XML文件:

<?xml version="1.0" encoding="utf-8"?> 
<data> 
<title>Sing up</title> 
<request field1="user" field2="email" field3="password" field4="other">reg.php</request> 
<description><![CDATA[Please sing up!]]></description> 
</data> 

的REG PHP文件:

 <?php 

     function Reg() 
     { 
      if (isset($_POST['reg'])==true) { 
        require_once('db_conf.php'); 
       $user = $_POST['username']; 
       $pass = sha1(strtoupper($user.':'.$_POST['password'])); 
       $email = $_POST['email']; 

       $con = mysql_connect($dbhost, $dbuser, $dbpassword); 

       if (!$con) 
       { 
        die('Could not connect!'); 
       } else { 
        mysql_select_db("$logondb", $con); 

        $sql="INSERT INTO accounts (username, sha_pass_hash, email) VALUES ('$user','$pass','$email')"; 

        if (!mysql_query($sql,$con)) 
        { 
         die('Error creating account.'); 
        } 

        echo $succesmsg; 

        mysql_close($con); 

       } 


      } else { 
?> 

和PHP的conf數據庫:

<?php 
$dbhost = 'localhost'; 

$dbuser = 'user'; 

$dbpassword = 'password'; 

// Accounts Database 
$logondb = 'accounts'; 

$errormsg="Error creating account.."; 

$succesmsg="Account created!"; 
?> 
+1

不是一個答案,但你可能只是想谷歌「SQL注入」在你把這個生活之前。 – Mels

+0

此外,你忘了解釋你如何被卡住。你遇到什麼問題? – Mels

+0

還有一條評論,然後我忘記了:你一定忘了粘貼你的PHP腳本的一部分,else塊和你的'Reg()'函數沒有關閉,並且沒有任何代碼實際上是_calls_功能。 – Mels

回答

0

我想使用PDO,而不是建議 - 這是一個更一般的方法。然後,你應該使用數據綁定,以減少對SQL注入漏洞...

這應該帶你一步:

<?php 

     function Reg() 
     { 
      if (isset($_POST['reg'])==true) { 
       require_once('./db_conf.php'); 
       $user = $_POST['username']; 
       $pass = sha1(strtoupper($user.':'.$_POST['password'])); 
       $email = $_POST['email']; 

       $dsn = "mysql:host=$dbhost;dbname=$logondb"; 
       $pdo = new PDO($dsn,$dbuser,$dbpassword); 

       if (!$pdo) 
       { 
        die('Could not connect!'); 
       } else { 
        $sql = "INSERT INTO accounts (username, sha_pass_hash,email) VALUES (:user,:pass,:email)"; 
        $stmt = $pdo->prepare($sql); 
        $res = $stmt->execute(array("user"=>$user , "pass"=>$pass , "email" => $email)); 
        if (!$res) { 
         echo "Error :((<pre>"; 
         var_dump($stmt->errorInfo()); 
         echo "</pre>"; 
        } else 
        { 
         echo $succesmsg; 
        } 


       } 
      } else { 
       echo "reg was not set - terminating...!"; 
      } 

     } 

     Reg(); // execute it! 

?> 
+0

感謝您的所有意見! MBass你得到了解決方案! TY! – Oregon

+0

太棒了,我很高興它幫助:) – MBaas