Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > เทพ ช่วยตรวจ code ให้ผมหน่อยครับ แบบว่าผมไม่รู้ว่าผิดตรงไหนนั้งหามาหลาย ชม.เเล้วครับ



 

เทพ ช่วยตรวจ code ให้ผมหน่อยครับ แบบว่าผมไม่รู้ว่าผิดตรงไหนนั้งหามาหลาย ชม.เเล้วครับ

 



Topic : 071595



โพสกระทู้ ( 94 )
บทความ ( 0 )



สถานะออฟไลน์




เรื่องมีอยู่ว่า ผมทำเว็บบอด formโฟสหัวข้อใหม่อยู่โดยใช้เทคนิก ajax พอทำเสร็จเเล้ว มันไม่ส่งข้อมูลตอบกลับ ไม่เพื่มข้อมูล หรือข้อมูลที่ส่งไปส่งไม่ถึงไฟร์เพื่มข้อมูลลงsql หรือไงไม่รู้อะครับ ช่วยดูให้หน่อยครับ ผมต้องใช้ด่วนใกล้ส่งโปรเจคเเล้ว

codeพวกนี้เป็นcodeที่ผมทำครับ

cdoeหน้าฟอมร์ส่งข้อมูลครับ

Code (PHP)
<?php
   session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="th">
<head>
	<title>Manga, Doujin, Novel online | hanes</title>
	
<meta http-equiv="content-language" content="th" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="description" content="ชุมชุนมังกะออนไลน์ โดจิน นิยาย" />
<meta name="keywords" content="hanes, มังกะออนไลน์, manga online, doujin, novel" />
	<!-- CSS AND JS API -->	
	<link rel="stylesheet" href="../stylesheet/reset.css" type="text/css" media="all" />
	<link rel="stylesheet" href="../stylesheet/neko_style.css" type="text/css" />
	<link rel="stylesheet" href="../stylesheet/neko_index.css" type="text/css" />
	<link rel="stylesheet" href="../stylesheet/my_webboard.css" type="text/css" />

	<link rel="stylesheet" href="../stylesheet/awesome.css" type="text/css" />
	<!--[if lte IE 8]>
		<script src="js/html5.js" type="text/javascript"></script>
	<![endif]-->
</head>

<body>
<!-- START MENU -->


<section class="box curve box_shadow">
<div class="hader">&nbsp;</div>

  <div class="clear">&nbsp;</div>
    
<div class="post_box">
	<nav>
		<ul>
			<li><a href="index.php" title="Home">Home</a></li>
			<li><a href="#" title="Manga">Manga</a></li>
			<li><a href="#" title="Doujin">Doujin</a></li>
			<li><a href="#" title="Novel">Novel</a></li>
			<li><a href="board/" title="Webboard">Webboard</a></li>
		</ul>
	</nav>
<!--START CHACK_LOGIN&OUT-->
<div class="user_panel">
<?php
    //ถ้ามีตัวแปรเซสชั่น $_COOKIE["User"] แสดงว่าล็อกอินเรียบร้อยแล้ว
    if (!isset($_SESSION["username"])) {
      /* ใส่เนื้อหาอื่นๆที่ให้ดูได้เฉพาะผู้ที่ล็อกอินแล้ว */
	echo '<li><a href="../login.php" class=" awesome small" title="login">Login</a> | <a href="../login.php" class=" awesome small" title="login">Register</a></li>';
    }
    else { //ยังไม่ได้ล็อกอิน
	  	echo '<li class="li_login"><font class="font_user">You are&nbsp;&nbsp;[</font>'.$_SESSION["username"].'<font class="font_user">]</font>&nbsp;&nbsp;<a href="../logout.php" class=" awesome small" title="login">Logout</a></li>';
    }
?>
</div>
<!--END CHACK_LOGIN&OUT-->

	<div class="clear">&nbsp;</div>
</section>

<!-- END MENU -->
  <script type="text/javascript" src="../myajax.js"></script>
  <script language="javascript">
    //ฟังก์ชั่นที่ใช้ส่งชื่อและรหัสผ่านในฟอร์มไปยังเซิร์ฟเวอร์ด้วยเทคนิค AJAX
    function sendData() {
    	var stitle = document.getElementById("title").value;
    	var stext = document.getElementById("text").value;
      
      if (stitle == "" || stext == "") {
        alert("คุณยังไม่ได้พิมพ์หัวข้อหรือข้อความ");
        return;
      }

      /* ใช้ฟังก์ชั่น postDataReturnText ของเฟรมเวิร์ค MyAJAX ส่งข้อมูลไปยังเพจ test_topic.php */
      postDataReturnText("add_topic.php", "title=" + stitle + "&text=" + stext, sendDataCallback);
      
      //ใช้ตัวแปร promptDiv อ้างอิงไปยังกรอบแสดงสถานะ
      var promptDiv = document.getElementById("promptDiv");
      promptDiv.style.color = "black";
      promptDiv.innerHTML = "กำลังบันทึกข้อมูล.............";
    }
/* ฟังก์ชั่นที่จะถูกเรียกกลับ (callback) หลังจากได้รับ response จากเพจ chack_login.php แล้ว */
    function sendDataCallback(data) {
      //แยกสตริงที่เซิร์ฟเวอร์ส่งกลับมาโดยใช้ | เป็นตัวแยก
      var respArray = data.split('|');
      //เก็บสตริงส่วนแรกไว้ในตัวแปร respStatus ซึ่งจะบอกสถานะว่าสำเร็จหรือไม่
      var respStatus = respArray[0].toLowerCase();
      //เก็บสตริงส่วนที่สองไว้ในตัวแปร respMessage ซึ่งจะเป็นชื่อไฟล์ในกรณีสำเร็จ หรือเป็นข้อความแจ้งข้อผิดพลาดในกรณีไม่สำเร็จ
      var respMessage = respArray[1];

      //ใช้ตัวแปร promptDiv อ้างอิงไปยังกรอบแสดงสถานะ
      var promptDiv = document.getElementById("promptDiv");

      switch (respStatus) {
        case "success":
          promptDiv.style.color = "green";
          promptDiv.innerHTML = "Successful";
          //ตั้งเวลา 2 วินาทีให้เรียกฟังก์ชั่น redirectTo โดยส่งค่าของ respMessage ไปเป็นอาร์กิวเมนต์
          setTimeout("redirectTo('index.php')", 2000);
          break;
        case "error":
          promptDiv.style.color = "red";
          promptDiv.innerHTML = respMessage;
          break;
      }
    }

    //ฟังก์ชั่นที่ใช้สั่งให้บราวเซอร์เรียกไปยังเพจที่ระบุ (Redirection)
    function redirectTo(targetPage) {
      window.location = targetPage;
    }

    /* ฟังก์ชั่นสำหรับจัดการอีเวนต์ onkeyup (ปล่อยปุ่มหลังจากกด) ที่เกิดกับออบเจ็ค document ฟังก์ชั่นนี้ช่วยให้ผู้ใช้สามารถกด Enter แทนการคลิกปุ่ม "เข้าระบบ" ไม่ว่าขณะนั้นโฟกัสจะอยู่ตำแหน่งใดในเพจก็ตาม */
    function keyup(e) {
      //บราวเซอร์บางตัว เช่น IE จะไม่ส่ง event object ซึ่งเก็บรายละเอียดต่างๆของอีเวนต์ที่เกิดขึ้นมาให้ (อาร์กิวเมนต์ e จะไม่มีค่า)
      if (!e) {
        e = window.event;
      }
      //ถ้าปุ่มที่ปล่อยคือ Enter ให้เรียกฟังก์ชั่น sendData
      if (e.keyCode == 13) {
        sendData();
      }
    }

    //ผูกฟังก์ชั่น keyup ไว้กับอีเวนต์ onkeyup ของออบเจ็ค document
    document.onkeyup = keyup;
  </script>
<section class="post_topic box_shadow curve update_box">
<?php
    //ถ้ามีตัวแปรเซสชั่น $_SESSION["username"] แสดงว่าล็อกอินเรียบร้อยแล้ว
    if (isset($_SESSION["username"])) {
				echo '<br/>';
				echo '<h1>NEW TOPIC</h1>';
				echo '<div class="clear">&nbsp;</div>';
				echo '<br/>';
				echo '<table class="my_table" width="100%">';
				echo '<form id="form_topic" name="form_topic" method="post" action="add_topic.php">';
				echo '<tr>';
				echo '<td class="alt">หัวข้อ</td>';
				echo '<td><input type=text id="title" name="title" size=51 maxlength=100 style="width: 450px;" />&nbsp;&nbsp;<span id="promptDiv"></span></td>';
				echo '</tr>';
				echo '<tr>';
				echo '<td class="alt">รายละเอียด</td>';
				echo '<td><textarea id="text" name="text" style="width: 670px; height: 200px;"></textarea></td>';
				echo '</tr>';
				echo '<tr>';
				echo '<td class="alt">โดย</td>';
				echo '<td>'.$_SESSION["username"].'</td>';
				echo '</tr>';
				echo '</form>';
				echo '</table>';
				echo '<div class="last3"><a onClick="sendData();" class="large awesome">ADD TOPIC</a></div>';
      /* ใส่เนื้อหาอื่นๆที่ให้ดูได้เฉพาะผู้ที่ล็อกอินแล้ว */
    }
    else { //ยังไม่ได้ล็อกอิน
      echo '<div class="p_post_topic"><h4>คุณไม่สิทธิ post เนื่องจากยังไม่ได้ล็อกอิน<br>';
      echo 'กรุณา <a href="../login.php" class=" awesome small" title="login">Login</a> ก่อน</h4></div>';
    }
?>
</section>



<!-- START FOOTER -->
<section class="box curve box_shadow">
				<div class="left">
					<b>About</b> | <b>FAQ</b> | <b>Contact</b><br /><small>Powered by Kissover</small>
				</div>
				<div class="right">
					HANES.COM Since 2011<br/><small>Best view in 1280*700 and more. Good view in Google Chrome,Mozilla Firefox</small>
				</div>
			<div class="clear">&nbsp;</div>
</section>
<!-- END FOOTER -->

</body>
</html>



code ไฟร์ myajax.js

Code (PHP)
/**************************************************
***** ใช้เมธอด GET ดึงข้อมูลแบบ Text ********************
***************************************************/
function getDataReturnText(url, callback) {
  var objRequest = false;

  if (window.XMLHttpRequest) {
    objRequest = new XMLHttpRequest();
  }
  else if (window.ActiveXObject) {
    objRequest = new ActiveXObject("Microsoft.XMLHTTP");
  }

  if (objRequest) {
    objRequest.open("GET", url);
    objRequest.onreadystatechange = handleResponse;
    objRequest.send(null);
  }

  //ฟังก์ชั่น handleResponse เป็น Inner Function
  function handleResponse() {
    if (objRequest.readyState == 4 && objRequest.status == 200) {
      callback(objRequest.responseText);

      delete objRequest;
      objRequest = null;
    }
  } //จบฟังก์ชั่น handleResponse ที่เป็น Inner Function
} //จบฟังก์ชั่น getDataReturnText


/**************************************************
***** ใช้เมธอด GET ดึงข้อมูลแบบ XML *********************
***************************************************/
function getDataReturnXML(url, callback) {
  var objRequest = false;

  if (window.XMLHttpRequest) {
    objRequest = new XMLHttpRequest();
  }
  else if (window.ActiveXObject) {
    objRequest = new ActiveXObject("Microsoft.XMLHTTP");
  }

  if (objRequest) {
    objRequest.open("GET", url);
    objRequest.onreadystatechange = handleResponse;
    objRequest.send(null);
  }

  //ฟังก์ชั่น handleResponse เป็น Inner Function
  function handleResponse() {
    if (objRequest.readyState == 4 && objRequest.status == 200) {
      callback(objRequest.responseXML);

      delete objRequest;
      objRequest = null;
    }
  } //จบฟังก์ชั่น handleResponse ที่เป็น Inner Function
} //จบฟังก์ชั่น getDataReturnXML


/**************************************************
***** ใช้เมธอด POST ส่งข้อมูล และรับผลลัพธ์แบบ Text กลับมา ****
***************************************************/
function postDataReturnText(url, data, callback) {
  var objRequest = false;

  if (window.XMLHttpRequest) {
    objRequest = new XMLHttpRequest();
  }
  else if (window.ActiveXObject) {
    objRequest = new ActiveXObject("Microsoft.XMLHTTP");
  }

  if (objRequest) {
    objRequest.open("POST", url);
    objRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    objRequest.onreadystatechange = handleResponse;
    objRequest.send(data);
  }

  //ฟังก์ชั่น handleResponse เป็น Inner Function
  function handleResponse() {
    if (objRequest.readyState == 4 && objRequest.status == 200) {
      callback(objRequest.responseText);

      delete objRequest;
      objRequest = null;
    }
  } //จบฟังก์ชั่น handleResponse ที่เป็น Inner Function
} //จบฟังก์ชั่น postDataReturnText


/**************************************************
***** ใช้เมธอด POST ส่งข้อมูล และรับผลลัพธ์แบบ XML กลับมา *****
***************************************************/
function postDataReturnXML(url, data, callback) {
  var objRequest = false;

  if (window.XMLHttpRequest) {
    objRequest = new XMLHttpRequest();
  }
  else if (window.ActiveXObject) {
    objRequest = new ActiveXObject("Microsoft.XMLHTTP");
  }

  if (objRequest) {
    objRequest.open("POST", url);
    objRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    objRequest.onreadystatechange = handleResponse;
    objRequest.send(data);
  }

  //ฟังก์ชั่น handleResponse เป็น Inner Function
  function handleResponse() {
    if (objRequest.readyState == 4 && objRequest.status == 200) {
      callback(objRequest.responseXML);

      delete objRequest;
      objRequest = null;
    }
  } //จบฟังก์ชั่น handleResponse ที่เป็น Inner Function
} //จบฟังก์ชั่น postDataReturnXML



เเล้วก็code ไฟร์ เพื่มข้อมูลลงฐานข้อมูลครับ

Code (PHP)
<?
  header('Content-Type: text/html; charset=utf-8');
  
session_start();  //เริ่มต้นเซสชั่น

$Title_topic=$_POST['title'];
$Text_topic=$_POST['text'];
$User_topic=$_SESSION["username"];
$ip = $_SERVER['REMOTE_ADDR'];
$datetime=date("y-m-d h:i:s");

  /* ถ่วงเวลา 2 วินาที เพื่อไม่ให้ผลลัพธ์ถูกส่งกลับไปยังบราวเซอร์ทันที*/
  sleep(2);
  
  authenticateUser(); 
  
  function authenticateUser() {
    //เชื่อมต่อและเลือกฐานข้อมูลที่จะทำงานด้วย
    $cn = connectDB("localhost", "root", "426226", "webproject");
    if (!$cn) {
      sendResponse("error", "เกิดปัญหาในการติดต่อฐานข้อมูล");
      return;
    }
	
	$sql="insert into topic (Title_topic,User_topic,Ip_topic,Date_topic,Text_topic)values
		('$Title_topic','$User_topic','$ip','$datetime','$Text_topic')";
	$query=mysql_query($cn, $sql);
	mysqli_close($cn);
	
	
	if($query){
		sendResponse("success", "index.php");
}else{
		sendResponse("error", "Fail");
}


  /* ฟังก์ชั่นที่ใช้เชื่อมต่อ MySQL และเลือกฐานข้อมูลที่ต้องการใช้งาน ถ้าฟังก์ชั่นทำงานสำเร็จจะส่งคืนการเชื่อมต่อ (link identifier) กลับไปให้ แต่ถ้าไม่สำเร็จจะคืนค่า false */
  function connectDB($host, $user, $pass, $db_name) {
    $cn = mysqli_connect($host, $user, $pass);
    if (!$cn) return false;

    $query = mysqli_select_db($cn, $db_name);
    if (!$query) return false;

    return $cn;
  }

  //ฟังก์ชั่นที่ใช้ส่งผลลัพธ์กลับไปยังบราวเซอร์
  function sendResponse($status, $message) {
    echo $status . "|" . $message;
  }

?>


ช่วนผมหน่อยครับ ขอบคุณครับ



Tag : Action Script, Ajax, CakePHP









ประวัติการแก้ไข
2012-01-09 17:27:41
2012-01-09 17:30:37
2012-01-09 17:50:24
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-01-09 17:15:33 By : kissover View : 1105 Reply : 3
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Debug ด้วยสายตามันยากน่ะครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-01-09 17:53:19 By : webmaster
 


 

No. 2



โพสกระทู้ ( 94 )
บทความ ( 0 )



สถานะออฟไลน์


ได้เเล้วครับ

แก้ code ไฟร์ เพื่มข้อมูลลงฐานข้อมูลเป็นแบบนี้เเล้วได้เลยครับ

Code (PHP)
<?
   session_start();
date_default_timezone_set('Asia/Bangkok')

$Title_topic=$_POST['title'];
$User_topic=$_SESSION["username"];
$ip = $_SERVER['REMOTE_ADDR'];
$datetime=date("y-m-d h:i:s");
$Text_topic=$_POST['text'];

include('../config.php');
$sql="insert into topic (Title_topic,User_topic,Ip_topic,Date_topic,Text_topic)values
('$Title_topic','$User_topic','$ip','$datetime','$Text_topic')";
$query=mysql_query($sql);
	if($query){
		sendResponse("success", "index.php");
}else{
		sendResponse("error", "Fail");
}

  function sendResponse($status, $message) {
    echo $status . "|" . $message;
  }


?>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-01-09 18:22:32 By : kissover
 

 

No. 3



โพสกระทู้ ( 94 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : webmaster เมื่อวันที่ 2012-01-09 17:53:19
รายละเอียดของการตอบ ::
ขอบคุณ mr.win ด้วยครับ ตามมาดูทู้ที่ผมตั้งทุกทู้เลย ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-01-09 18:23:35 By : kissover
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เทพ ช่วยตรวจ code ให้ผมหน่อยครับ แบบว่าผมไม่รู้ว่าผิดตรงไหนนั้งหามาหลาย ชม.เเล้วครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่