2013-07-17 35 views
-1

這是我如何從數據庫中下載下載類別,然後利用這個機會點擊其中的3個,例如,如果我把它們中的2個點擊並點擊它們,點擊最後一個,但進入html代碼並寫入value =「Hello」,然後將其寫入數據庫,即使我沒有在數據庫中輸入單詞。得到一個錯誤,然後我再去代碼

問題是,我該怎麼辦呢只能是那些在我這裏寫的:

$godkendteKategorier = array("Frontend", "Backend", "Design"); 
     $kategorier = explode(",", $_POST["kategori"]); 
     foreach($kategorier as $kategori) 
     { 
      if(!in_array($kategori, $godkendteKategorier)) 
      { 
       echo "error"; 
      } 
     } 

應該是這樣的,它只會勇往直前,如果這些結合在一起的一切,我之前寫的代碼,但如果有其他錯誤,它不應該進入代碼的第二部分!

<?php 
if(isset($_POST["opret"])) 
{ 
if($_POST["title"] == "") 
{ 
    echo "Husk at skrive title!"; 
} 
elseif($_POST["tekst"] == "") 
{ 
    echo "Husk at skrive tekst!"; 
} 
elseif($_POST["kategori"] == "") 
{ 
    echo "Husk at angive kategori!"; 
} 
elseif($_POST["point"] == "") 
{ 
    echo "Husk at angive point!"; 
} 
else 
{ 

    //find out if there are errors here!! 
    $godkendteKategorier = array("Frontend", "Backend", "Design"); 
    $kategorier = explode(",", $_POST["kategori"]); 
    foreach($kategorier as $kategori) 
    { 
     if(!in_array($kategori, $godkendteKategorier)) 
     { 
      echo "error!"; 
     } 
    } 


$arr = array(60, 40, 20, 10); 
$point = implode($_POST["point"]); 

    if(in_array($point, $arr)) 
    { 
     if ($stmt = $this->mysqli->prepare('UPDATE `bruger` SET `point`= `point` - ? WHERE `id`=?')) { 
      $stmt->bind_param('ii', $point, $id); 
      $point = implode($_POST["point"]); 
      $id = $_SESSION["id"]; 
      $stmt->execute(); 
      $stmt->close(); 
     } 

     $str = $_POST["title"]; 
     $from = array("=", "+", "&",'"', "'", " ", "æ", "Æ", "ø", "Ø", "å", "Å"); 
     $to = array("-", "", "og", "", "", "-", "ae", "Ae", "oe", "Oe", "aa", "Aa"); 
     $alias = strtolower(str_replace($from, $to, $str)); 

     if ($stmt = $this->mysqli->prepare('INSERT INTO artikler (title, tekst, kategori, url, skrevet_af, emne, dato) VALUES (?, ?, ?, ?, ?, ?, ?)')) { 

      /* Bind parametre */ 
      $stmt->bind_param('sssssii', $title, $tekst, $kategori, $url, $skrevet_af, $emne, $dato); 

      /* Sæt værdier på parametrene */ 
      $title = $_POST['title']; 
      $tekst = $_POST["tekst"]; 
      $kategori = implode(",",$_POST["kategori"]); 
      $url = $alias; 
      $skrevet_af = $_SESSION["navn"] . " " . $_SESSION["efternavn"]; 
      $emne = implode($_POST["point"]); 
      $dato = date('Y-m-d H:i:s'); 

      /* Eksekver forespørgslen */ 
      $stmt->execute(); 

      echo "ok"; 

      $stmt->close(); 

     } 
     } 
    else 
    { 
     echo "error"; 
    } 
} 
} 
?> 

和我有嘗試:

<?php 
if(isset($_POST["opret"])) 
{ 
if($_POST["title"] == "") 
{ 
    echo "Husk at skrive title!"; 
} 
elseif($_POST["tekst"] == "") 
{ 
    echo "Husk at skrive tekst!"; 
} 
elseif($_POST["kategori"] == "") 
{ 
    echo "Husk at angive kategori!"; 
} 
elseif($_POST["point"] == "") 
{ 
    echo "Husk at angive point!"; 
} 
elseif(count(array_diff(explode(",", $_POST["kategori"]), array("Frontend", "Backend", "Design")))) 
{ 
    echo "error"; 
} 
else 
{ 
$arr = array(60, 40, 20, 10); 
$point = implode($_POST["point"]); 

    if(in_array($point, $arr)) 
    { 
     if ($stmt = $this->mysqli->prepare('UPDATE `bruger` SET `point`= `point` - ? WHERE `id`=?')) { 
      $stmt->bind_param('ii', $point, $id); 
      $point = implode($_POST["point"]); 
      $id = $_SESSION["id"]; 
      $stmt->execute(); 
      $stmt->close(); 
     } 



$str = $_POST["title"]; 
    $from = array("=", "+", "&",'"', "'", " ", "æ", "Æ", "ø", "Ø", "å", "Å"); 
    $to = array("-", "", "og", "", "", "-", "ae", "Ae", "oe", "Oe", "aa", "Aa"); 
    $alias = strtolower(str_replace($from, $to, $str)); 

    if ($stmt = $this->mysqli->prepare('INSERT INTO artikler (title, tekst, kategori, url, skrevet_af, emne, dato) VALUES (?, ?, ?, ?, ?, ?, ?)')) { 

     /* Bind parametre */ 
     $stmt->bind_param('sssssis', $title, $tekst, $kategori, $url, $skrevet_af, $emne, $dato); 

     /* Sæt værdier på parametrene */ 
     $title = $_POST['title']; 
     $tekst = $_POST["tekst"]; 
     $kategori = implode(",",$_POST["ka 

tegori"]); 
      $url = $alias; 
      $skrevet_af = $_SESSION["navn"] . " " . $_SESSION["efternavn"]; 
      $emne = implode($_POST["point"]); 
      $dato = date('Y-m-d H:i:s'); 

      /* Eksekver forespørgslen */ 
      $stmt->execute(); 

      ?> 
      <script language="javascript" type="text/javascript"> 
       window.location.href = "/indhold/"; 
      </script> 
      <?php 

      $stmt->close(); 

     } else { 
      /* Der er opstået en fejl */ 
      echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error; 
     } 
     } 
    else 
    { 
     echo "Du skal ikke snyd!"; 
    } 
} 
} 
?> 

回答

0

我不明白你想達到什麼樣的,但是你可以用die('error!')而不是echo('error!')停止腳本的exexution。

+0

代碼的前面部分是我知道的第一個代碼示例,在繼續執行代碼之前,我必須先提出一個錯誤。 –

0

我不是100%確定我完全理解你正在嘗試做什麼,但是我需要的是一個控制變量。只要創建一些var設置爲true,並將其設置爲false,如果你的任何檢查結果錯誤。另一種方法是在每次錯過的支票上拋出異常,然後嘗試抓住它們。最後一個是更好的方法,因爲它爲您提供了更好的調試信息,並且更加靈活。

0

從第23行刪除行到第32行,並將此代碼放在第20行。

elseif(count(array_diff(explode(",", $_POST["kategori"]), array("Frontend", "Backend", "Design")))) 
{ 
    echo "error"; 
} 
+0

t可能無法正常工作:(我嘗試點擊它:( –

相關問題