ช่วยด้วยคับ เขียนโค๊ตเสร็จพอ ทดสอบแล้ว error Notice: Undefined variable

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderator: mindphp, ผู้ดูแลกระดาน

reet2506
PHP Newbie
PHP Newbie
โพสต์: 4
ลงทะเบียนเมื่อ: 03/08/2011 10:42 pm

ช่วยด้วยคับ เขียนโค๊ตเสร็จพอ ทดสอบแล้ว error Notice: Undefined variable

โพสต์ที่ยังไม่ได้อ่าน โดย reet2506 »

โค้ด: เลือกทั้งหมด

<?php 
$host = "localhost";
$user = "root"; 
$passwd = "reetreet"; 
$dbname = "register";
$tbl_name="members"
mysql_connect($host,$user,$passwd) or die("ติดต่อ Host ไม่ได้");
mysql_select_db($dbname) or die("ติดต่อฐานข้อมูลไม่ได้");
$sql = "insert into `userinfo` ( `logname` , `pw` ,  `name` , `address` , `age` , `gender` , `ads`, `hobby` , `hobby2` , `hobby3` , `hobby4` , `email` )
 values ('$logname', '$psswd', '$name', '$address', '$age', '$gender', '$Uknow', '$hobby1', '$hobby2', '$hobby3', '$hobby4', '$email' )";
mysql_query("set NAMES tis620");
$sqlquery=mysql_db_query($dbname, $sql); 
$checkadd = "select * from `userinfo` where logname='$logname' ";
$result = mysql_db_query($dbname, $checkadd);
$num=mysql_num_rows($result);
      if ($num==1)
      {
          print"<br>เพิ่มข้อมูลผู้ใช้ลงในฐานข้อมูลเรียบร้อยแล้ว ";
      }elseif($num>=1)
              {
              print"<br>ชื่อผู้ใช้งานซ้ำ กรุณาใช้ชื่ออื่น ";
              }else
                  {
                  print"ระบบขัดข้อง หรือ มีข้อผิดพลาด !!!";
                  };
mysql_close();
  ?>

พอตอน run


Notice: Undefined variable: logname in C:\xampp\htdocs\ProjectPHP\AddData.php on line 9

Notice: Undefined variable: psswd in C:\xampp\htdocs\ProjectPHP\AddData.php on line 9

Notice: Undefined variable: name in C:\xampp\htdocs\ProjectPHP\AddData.php on line 9

Notice: Undefined variable: address in C:\xampp\htdocs\ProjectPHP\AddData.php on line 9

Notice: Undefined variable: age in C:\xampp\htdocs\ProjectPHP\AddData.php on line 9

Notice: Undefined variable: gender in C:\xampp\htdocs\ProjectPHP\AddData.php on line 9

Notice: Undefined variable: Uknow in C:\xampp\htdocs\ProjectPHP\AddData.php on line 9

Notice: Undefined variable: hobby1 in C:\xampp\htdocs\ProjectPHP\AddData.php on line 9

Notice: Undefined variable: hobby2 in C:\xampp\htdocs\ProjectPHP\AddData.php on line 9

Notice: Undefined variable: hobby3 in C:\xampp\htdocs\ProjectPHP\AddData.php on line 9

Notice: Undefined variable: hobby4 in C:\xampp\htdocs\ProjectPHP\AddData.php on line 9

Notice: Undefined variable: email in C:\xampp\htdocs\ProjectPHP\AddData.php on line 9

Deprecated: Function mysql_db_query() is deprecated in C:\xampp\htdocs\ProjectPHP\AddData.php on line 11

Deprecated: mysql_db_query() [function.mysql-db-query]: This function is deprecated; use mysql_query() instead in C:\xampp\htdocs\ProjectPHP\AddData.php on line 11

Notice: Undefined variable: logname in C:\xampp\htdocs\ProjectPHP\AddData.php on line 12

Deprecated: Function mysql_db_query() is deprecated in C:\xampp\htdocs\ProjectPHP\AddData.php on line 13

Deprecated: mysql_db_query() [function.mysql-db-query]: This function is deprecated; use mysql_query() instead in C:\xampp\htdocs\ProjectPHP\AddData.php on line 13
ระบบขัดข้อง หรือ มีข้อผิดพลาด !!!
แก้ไขล่าสุดโดย mindphp เมื่อ 03/08/2011 11:04 pm, แก้ไขไปแล้ว 2 ครั้ง.
เหตุผล: ครอบโค้ด [code] Code ของท่าน [/code] ชื่อกระทู้ไม่สื่อถึงปัญหา
reet2506
PHP Newbie
PHP Newbie
โพสต์: 4
ลงทะเบียนเมื่อ: 03/08/2011 10:42 pm

Re: ช่วยด้วยคับ เขียนโค๊ตเสร็จพอ ทดสอบแล้วerror

โพสต์ที่ยังไม่ได้อ่าน โดย reet2506 »

ช่วยดูไห้ที่นะคับ
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41336
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: ช่วยด้วยคับ เขียนโค๊ตเสร็จพอ ทดสอบแล้ว error Notice: Undefined variable

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ตัวแปล $logname และอื่นๆ ตามที่ Notice -ขึ้นมา ไม่ได้กำหนดค่าก่อนใช้งานครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
touleg
PHP Super Member
PHP Super Member
โพสต์: 480
ลงทะเบียนเมื่อ: 25/01/2010 11:57 pm
ติดต่อ:

Re: ช่วยด้วยคับ เขียนโค๊ตเสร็จพอ ทดสอบแล้ว error Notice: Undefined variable

โพสต์ที่ยังไม่ได้อ่าน โดย touleg »

ตัวแปรพวกนี้ไม่มีค่าครับ มันยังไม่ได้รับค่าเลย อยู่ดีๆเอามาใช้เลยมันก็เลยไม่รู้จะเอาค่าจากไหนมาใช้

โค้ด: เลือกทั้งหมด

'$logname', '$psswd', '$name', '$address', '$age', '$gender', '$Uknow', '$hobby1', '$hobby2', '$hobby3', '$hobby4', '$email'
ดูจากโค้ดแล้วน่าจะเป็นโค้ดที่รับค่ามาจากแบบฟอร์มที่กรอกเข้ามา แล้วส่งมาที่หน้านี้

ก่อนอื่นก็ให้เก็บค่าที่ส่งมาก่อนจะเอามาใช้นะครับ เช่น

โค้ด: เลือกทั้งหมด

$logname = $_POST['logname'];
reet2506
PHP Newbie
PHP Newbie
โพสต์: 4
ลงทะเบียนเมื่อ: 03/08/2011 10:42 pm

Re: ช่วยด้วยคับ เขียนโค๊ตเสร็จพอ ทดสอบแล้ว error Notice: Undefined variable

โพสต์ที่ยังไม่ได้อ่าน โดย reet2506 »

นี้คิอฟอร์มของมันอะ

โค้ด: เลือกทั้งหมด

<?php require_once('Connections/ProjectPHP.php'); ?>
<?php
mysql_select_db($database_ProjectPHP, $ProjectPHP);
$query_Recordset1 = "SELECT * FROM register";
$Recordset1 = mysql_query($query_Recordset1, $ProjectPHP) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?><!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>Untitled Document</title>
<style type="text/css">
<!--
#apDiv1 {
	position:absolute;
	left:0px;
	top:1px;
	width:800px;
	height:336px;
	z-index:1;
}
#apDiv2 {
	position:absolute;
	left:1px;
	top:339px;
	width:254px;
	height:601px;
	z-index:2;
}
#apDiv3 {
	position:absolute;
	left:1px;
	top:14px;
	width:794px;
	height:19px;
	z-index:3;
}
#apDiv4 {
	position:absolute;
	left:258px;
	top:338px;
	width:587px;
	height:602px;
	z-index:4;
}
-->
</style>
</head>

<body>
<div id="apDiv4">
<form id="formregis" name="formregis" method="post" action="AddData.php"  >
    <table width="585" height="257" border="0">
      <tr>
        <td width="103">ชื่อล๊อกอิน</td>
        <td width="267"><label for="textfield"></label>
        <input type="text" name="logname" id="logname" /></td>
        <td width="66"><div align="left">เพศ</div></td>
        <td width="131"><p>
          <label>
            <input type="radio" name="gender" value="male" />
            ชาย</label>
          <label>
<input type="radio" name="gender" value="female" /> 
หญิง</label>
<br />
          <label></label>
<br />
        </p></td>
      </tr>
      <tr>
        <td height="40">รหัสผ่าน</td>
        <td><label for="textfield"></label>
        <input type="password" name="psswd" id="psswd" /></td>
        <td>อายุ</td>
        <td><label for="select"></label>
          <select name="age" id="age">
            <option value="9-18" selected="selected">9-18 ปี</option>
            <option value="19-25">19-25 ปี</option>
            <option value="26-45">26-45 ปี</option>
          </select>
</td>
      </tr>
      <tr>
        <td>ชื่อ-นามสกุล</td>
        <td><label for="textfield"></label>
        <input type="text" name="name" id="name" /></td>
        <td>งานอดิเรก</td>
        <td><input type="checkbox" name="hobby1" value="sport" id="hobby1" />
        <label for="checkbox">เล่นกีฬา<br />
        <input type="checkbox" name="hobby2" value="reading" id="hobby2" />
        อ่านหนังสือ<br />
        <input type="checkbox" name="hobby3" value="game" id="hobby3" />
        เกมส์</label></td>
      </tr>
      <tr>
        <td>ที่อยู่</td>
        <td><label for="textarea"></label>
        <textarea name="address" cols="30" rows="5" id="address"></textarea></td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>e-mail</td>
        <td>&nbsp;</td>
        <td><input type="submit" name="Submit" value="ส่งข้อมูล" /></td>
        <td><input name="Reset" type="reset" id="Reset" value="ล้างข้อมูล" /></td>
      </tr>
    </table>
    <div align="left"></div>
</form>
</div>
<dd>
<div id="apDiv1"><img src="picture/head.jpg" width="846" height="350" /></div>
<div id="apDiv2"><img src="picture/left.jpg" width="254" height="535" /></div>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>
แก้ไขล่าสุดโดย mindphp เมื่อ 05/08/2011 2:37 pm, แก้ไขไปแล้ว 1 ครั้ง.
เหตุผล: ครอบโค้ด [code] Code ของท่าน [/code]
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41336
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: ช่วยด้วยคับ เขียนโค๊ตเสร็จพอ ทดสอบแล้ว error Notice: Undefined variable

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ตามนี้เลยครับ
touleg เขียน:ตัวแปรพวกนี้ไม่มีค่าครับ มันยังไม่ได้รับค่าเลย อยู่ดีๆเอามาใช้เลยมันก็เลยไม่รู้จะเอาค่าจากไหนมาใช้

โค้ด: เลือกทั้งหมด

'$logname', '$psswd', '$name', '$address', '$age', '$gender', '$Uknow', '$hobby1', '$hobby2', '$hobby3', '$hobby4', '$email'
ดูจากโค้ดแล้วน่าจะเป็นโค้ดที่รับค่ามาจากแบบฟอร์มที่กรอกเข้ามา แล้วส่งมาที่หน้านี้

ก่อนอื่นก็ให้เก็บค่าที่ส่งมาก่อนจะเอามาใช้นะครับ เช่น

โค้ด: เลือกทั้งหมด

$logname = $_POST['logname'];
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
reet2506
PHP Newbie
PHP Newbie
โพสต์: 4
ลงทะเบียนเมื่อ: 03/08/2011 10:42 pm

Re: ช่วยด้วยคับ เขียนโค๊ตเสร็จพอ ทดสอบแล้ว error Notice: Undefined variable

โพสต์ที่ยังไม่ได้อ่าน โดย reet2506 »

mindphp เขียน:ตามนี้เลยครับ
touleg เขียน:ตัวแปรพวกนี้ไม่มีค่าครับ มันยังไม่ได้รับค่าเลย อยู่ดีๆเอามาใช้เลยมันก็เลยไม่รู้จะเอาค่าจากไหนมาใช้

โค้ด: เลือกทั้งหมด

'$logname', '$psswd', '$name', '$address', '$age', '$gender', '$Uknow', '$hobby1', '$hobby2', '$hobby3', '$hobby4', '$email'
ดูจากโค้ดแล้วน่าจะเป็นโค้ดที่รับค่ามาจากแบบฟอร์มที่กรอกเข้ามา แล้วส่งมาที่หน้านี้

ก่อนอื่นก็ให้เก็บค่าที่ส่งมาก่อนจะเอามาใช้นะครับ เช่น

โค้ด: เลือกทั้งหมด

$logname = $_POST['logname'];

เอาโคตไปใส่ตรงหน้าใหนหรอ
touleg
PHP Super Member
PHP Super Member
โพสต์: 480
ลงทะเบียนเมื่อ: 25/01/2010 11:57 pm
ติดต่อ:

Re: ช่วยด้วยคับ เขียนโค๊ตเสร็จพอ ทดสอบแล้ว error Notice: Undefined variable

โพสต์ที่ยังไม่ได้อ่าน โดย touleg »

ผมจะจำลองโค้ดให้ดูนะครับเวลาส่งค่าผ่านฟอร์ม ที่เหลือเอาไปประยุกต์ใช้เองนะครับ

ตัวอย่างโค้ดหน้าฟอร์ม (form.html)

โค้ด: เลือกทั้งหมด

<form action="getvalue.php" method="post">
ชื่อ <input type="text" name="fname" /><br />
<input type="submit" value="Submit" />
</form>
getvalue.php รับค่าจากฟอร์มที่ส่งมาให้

โค้ด: เลือกทั้งหมด

<?php
//รับค่ามาจากฟอร์มก่อน
$name = $_POST['fname'];
echo $name;  //ทดสอบแสดงผลค่าที่ได้ จากตัวแปร $name
?>
ให้สังเกตที่

โค้ด: เลือกทั้งหมด

<form action="getvalue.php" method="post">
และ
<input type="text" name="fname" />
จะเห็นว่า form มี method เป็น post
และ input มีชื่อว่า fname

ดังนั้นเวลาเขียน php มารับค่าจะต้องพิจารณาด้วยว่าค่าที่ส่งมาเป็นแบบไหน
แบบ post หรือ get
- ถ้าเป็นแบบ post เวลารับค่าก็ต้องใช้

โค้ด: เลือกทั้งหมด

$_POST['ชื่อ input']
 

- ถ้าเป็นแบบ get เวลารับค่าก็ต้องใช้

โค้ด: เลือกทั้งหมด

$_GET['ชื่อ input'];
 
เวลารับค่ามาก็ให้สร้างตัวแปรมาเก็บค่าด้วยเช่น

โค้ด: เลือกทั้งหมด

$name = $_POST['fname'];
 
แล้วค่อยเอาตัวแปรไปใช้งาน

แต่ถ้าอยากใช้งานโดยไม่ต้องรับค่าแบบนี้ คือใช้แบบเคยทำมาคือเอาชื่อ input มาเป็นตัวแปรเลย
แบบนั้นต้องไปเปิดการใช้งาน register_global ก่อน แต่ไม่ค่อยมีใครเค้าทำกันหรอก มันไม่ปลอดภัยกับค่าตัวแปร แนะนำให้ทำแบบที่อธิบายนะครับ ให้ใช้ $_POST หรือ $_GET เสมอเวลารับค่่ามาจาก form หรือจาก url ก็แล้วแต่

ไม่รู้จะเข้าใจหรือป่าวนะ
ภาพประจำตัวสมาชิก
dexjanghan
PHP Sr. Member
PHP Sr. Member
โพสต์: 68
ลงทะเบียนเมื่อ: 02/03/2011 5:36 pm

Re: ช่วยด้วยคับ เขียนโค๊ตเสร็จพอ ทดสอบแล้ว error Notice: Undefined variable

โพสต์ที่ยังไม่ได้อ่าน โดย dexjanghan »

ใส่แบบนี้แล้วกันนะคับ ตัวอย่าง

โค้ด: เลือกทั้งหมด

include("../connecdb.php");
$cont_id 			= $_GET['cont_id'];
$categ_id 		= $_GET['categ_id'];
$cont_name		= $_GET['cont_name'];
$cont_desct		= $_GET['cont_desct'];
$content			= $_GET['content'];
$sql = "select * from content where cont_id=$cont_id"; //ตรงนี้จะเป็นข้อกำหนดให้ดึงข้อมูลตามที่เรากำหนด
$dbquery = mysql_db_query($dbname, $sql);
$result = mysql_fetch_array($dbquery);
			$cont_id = $result[cont_id];
			$categ_id = $result[categ_id];
			$cont_name = $result[cont_name];
			$cont_desct = $result[cont_desct];
			$content= $result[content];
// ปิดการติดต่อฐานข้อมูล
?>
//แล้วทำการแสดงผลนะคับ
มื่อใหม่หัดใช้ PHP แต่คล่อง Joomla ซะมากกว่า
แวะเวียนเว็บโหลๆhttp://www.dexjanghan.com
roteee
PHP Jr. Member
PHP Jr. Member
โพสต์: 11
ลงทะเบียนเมื่อ: 25/09/2011 12:19 pm

Re: ช่วยด้วยคับ เขียนโค๊ตเสร็จพอ ทดสอบแล้ว error Notice: Undefined variable

โพสต์ที่ยังไม่ได้อ่าน โดย roteee »

Notice: Undefined variable: logname in C:\xampp\htdocs\ProjectPHP\AddData.php on line 9
หมายความว่า ตัวแปรชื่อ logname ไม่เคยถูกกำหนดค่าให้ แล้วอยู่ๆ มีการเรียกใช้งาน
Deprecated: Function mysql_db_query() is deprecated in C:\xampp\htdocs\ProjectPHP\AddData.php on line 11
หมายความว่า Function mysql_db_query() เขาเลิกใช้กันแล้ว (ให้เลี่ยงใช้ mysql_select_db() และ mysql_query() แทน)

ซึ่งถ้าอ่านจากคำตอบของท่านต่างๆ ถ้าเข้าใจก็จะแก้ปัญหาได้

แต่ผมขอ re-write code เล็กน้อย เพื่อเป็นอีกหนึ่งแนวคิดครับ :)

โค้ด: เลือกทั้งหมด

<?php
	$host    = 'localhost';
	$user    = 'root'; 
	$passwd  = 'reetreet'; 
	$dbName  = 'register';
	$tblName = 'members';
	
	// การรับค่าจาก HTML FORM เขียนแบบสั้น จะได้ชื่อตัวแปรที่จะเอาไปใช้งาน เป็นชื่อเดียวกับชื่อของ FIELD ใน HTML FORM 
	if (isset($_POST)) foreach ($_POST as $k => $v) {
		${$k} = addslashes(stripcslashes(trim($v)));
	}
	
	// ไม่งั้นก็ต้องรับค่าเป็นรายตัวไป เช่น
	$logname = $_POST['logname'];
	$psswd   = $_POST['psswd'];
	$name    = $_POST['name'];
	// ...
	// ... ทำจนครบ 
	
	mysql_connect($host, $user, $passwd) or die("ติดต่อ Host ไม่ได้");
	mysql_select_db($dbName) or die("ติดต่อฐานข้อมูลไม่ได้");
	mysql_query('SET NAMES tis620'); // สมัยนี้ควรใช้ UTF8 แล้วน้ะ

	$checkDupSql = "SELECT * FROM `userinfo` WHERE `logname`=\"$logname\" LIMIT 1";
	$resultSet   = mysql_query($checkDupSql);
	$num         = mysql_num_rows($resultSet);
	if ($num > 0) {
		echo '<br />ชื่อผู้ใช้งานซ้ำ กรุณาใช้ชื่ออื่น ';
	} else {
		$sql = "INSERT INTO `userinfo` (" 
		     . "  `logname`, `pw`, `name`, `address`, `age`, " 
		     . "  `gender`, `ads`, `hobby`, `hobby2`, `hobby3`, `hobby4`, `email`" 
		     . ") VALUES (" 
		     . "  \"$logname\", \"$psswd\", \"$name\", \"$address\", \"$age\", " 
		     . "  \"$gender\", \"$Uknow\", \"$hobby1\", \"$hobby2\", \"$hobby3\", " 
		     . "  \"$hobby4\", \"$email\" )";
	
		// $sqlquery = mysql_db_query($dbname, $sql);
		$result = @mysql_query($sql);	// มี mysql_select_db($dbname) แล้วก็ไม่ต้องใช้ mysql_db_query()

		if ($result) {
			echo '<br />เพิ่มข้อมูลผู้ใช้ลงในฐานข้อมูลเรียบร้อยแล้ว ';
		} else {
			echo '<br />ระบบขัดข้อง หรือ มีข้อผิดพลาด และ MySQL กล่าวว่า: ' . mysql_error();
		}
	}
	mysql_close();
?>
Note: เห็นมีประกาศตัวแปร $tblName = 'members'; แต่ใน code เห็น hardcode ชื่อตาราง "`userinfo`" จุดนี้ระวังด้วยน้ะครับ มือกับใจไม่ตรงกันหรือเปล่า :)
<?php ?> เสมอ แบบนี้ <? ?> มันเอาท์แล้ว
เขียน code ให้อ่านง่ายๆ มีชัยไปกว่าครึ่ง
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: Bing [Bot], Google Adsense [Bot] และบุคลทั่วไป 57