ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingใครเก่ง php ช่วยทีครับ มันขึ้นแบบนี้มานะครับ
หน้า: 1 [2] 3   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ใครเก่ง php ช่วยทีครับ มันขึ้นแบบนี้มานะครับ  (อ่าน 9295 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,518



ดูรายละเอียด เว็บไซต์
« ตอบ #20 เมื่อ: 05 กันยายน 2007, 20:47:34 »

กำ name_insert email_insert messages_insert

ไม่ตรงสักอันเลยอะ แก้ให้ตรงกันสิครับ =__="
บันทึกการเข้า

kennn
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 149
ออฟไลน์ ออฟไลน์

กระทู้: 1,199



ดูรายละเอียด
« ตอบ #21 เมื่อ: 05 กันยายน 2007, 21:07:07 »

เอาไปลองใช้ดู

อ้างถึง
<table width="555" border="0" align="center" cellpadding="0" cellspacing="0">
            <tr>
              <td><form action="insert.php" method="POST">
                <table cellspacing="1" cellpadding="3" width="80%" align="center" bgcolor="#ffffff" border="1">
                  <tbody>
                    <tr>
                      <td valign="top" width="34%" bgcolor="#ffff99"><span class="style122">&#3594;&#3639;&#3656;&#3629;-&#3626;&#3585;&#3640;&#3621;</span></td>
                      <td width="66%" bgcolor="#ffff99"><span class="style122">
                        <label>
                        <input type="text" NAME="fullname" />
                        </label>
                      </span></td>
                    </tr>
                    <tr>
                      <td valign="top" bgcolor="#ffffcc"><span class="style122">&#3607;&#3637;&#3656;&#3629;&#3618;&#3641;&#3656;&#3629;&#3637;&#3648;&#3617;&#3621;&#3660;&#3586;&#3629;&#3591;&#3588;&#3640;&#3603;</span></td>
                      <td bgcolor="#ffffcc"><span class="style122">
                        <label>
                        <input type="text" NAME="email" />
                        </label>
                      </span></td>
                    </tr>
                    <tr>
                      <td valign="top" bgcolor="#ffff99"><span class="style122">&#3586;&#3657;&#3629;&#3588;&#3623;&#3634;&#3617;</span></td>
                      <td bgcolor="#ffff99"><span class="style122">
                        <label>
                        <textarea name="detail" rows="5" cols="25"></textarea>
                        </label>
                      </span></td>
                    </tr>
                    <tr>
                      <td valign="top" bgcolor="#ffffcc">&nbsp;</td>
                      <td bgcolor="#ffffcc"><span class="style122">
                        <label>
                        <input type="submit" value="&#3626;&#3656;&#3591;&#3586;&#3657;&#3629;&#3588;&#3623;&#3634;&#3617;" name="Submit" />
                        <input type="reset" value="&#3621;&#3610;&#3586;&#3657;&#3629;&#3588;&#3623;&#3634;&#3617;" name="Submit2" />
                        </label>
                      </span></td>
                    </tr>
                  </tbody>
                </table>
                              </form>
                </td>
            </tr>
          </table>

บันทึกการเข้า

kob191
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 1,109



ดูรายละเอียด
« ตอบ #22 เมื่อ: 05 กันยายน 2007, 22:44:41 »

ส่งได้แล้วครับพวกพี่ๆๆนี่เก่งจริงๆๆขอบคุณมากครับ แต่ว่าลองไปดูใน my admin ในดาต้าเบส มันมีปัญหากับภาษาไทยที่ผมกรอกข้อมูลไปครับไม่ทราบแก้ยังไงดีครับ
บันทึกการเข้า

kennn
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 149
ออฟไลน์ ออฟไลน์

กระทู้: 1,199



ดูรายละเอียด
« ตอบ #23 เมื่อ: 06 กันยายน 2007, 10:03:29 »

ลองเพิ่มส่วนนี้เข้าไปก่อนการ Query ทุกครั้งดูครับ

mysql_query("SET NAMES 'tis-620'")
mysql_query("SET character_set_results='tis-620'")

ตัวอย่าง

$username = root;
$password = password;
$host=hostname;
$db=mydb;
mysql_connect($host,$username,$password);
mysql_select_db($db);
//เพิ่มส่วนนี้เข้าไปครับ
mysql_query("SET NAMES 'tis-620'")
mysql_query("SET character_set_results='tis620'");

//ถ้าใช้แค่ 2 ส่วนบนแล้วยังมีปัญหาลองเพิ่มด้านล่างนี้เข้าไปอีกนะครับ
mysql_query("SET character_set_client='tis620'");
mysql_query("SET character_set_connection='tis620'");
mysql_query("collation_connection='tis620_thai_ci'");
mysql_query("collation_database='tis620_thai_ci");
mysql_query("collation_server='tis620_thai_ci'");

แล้วก้อเพิ่มส่วนหัวของทุกหน้าตามนี้
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=tis-620">

บันทึกการเข้า

kob191
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 1,109



ดูรายละเอียด
« ตอบ #24 เมื่อ: 07 กันยายน 2007, 00:47:58 »

ลองเพิ่มส่วนนี้เข้าไปก่อนการ Query ทุกครั้งดูครับ

mysql_query("SET NAMES 'tis-620'")
mysql_query("SET character_set_results='tis-620'")

ตัวอย่าง

$username = root;
$password = password;
$host=hostname;
$db=mydb;
mysql_connect($host,$username,$password);
mysql_select_db($db);
//เพิ่มส่วนนี้เข้าไปครับ
mysql_query("SET NAMES 'tis-620'")
mysql_query("SET character_set_results='tis620'");

//ถ้าใช้แค่ 2 ส่วนบนแล้วยังมีปัญหาลองเพิ่มด้านล่างนี้เข้าไปอีกนะครับ
mysql_query("SET character_set_client='tis620'");
mysql_query("SET character_set_connection='tis620'");
mysql_query("collation_connection='tis620_thai_ci'");
mysql_query("collation_database='tis620_thai_ci");
mysql_query("collation_server='tis620_thai_ci'");

แล้วก้อเพิ่มส่วนหัวของทุกหน้าตามนี้
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=tis-620">



ได้แล้วครับขอบคุณมากนะครับและขอบคุณทุกๆท่านที่ได้ตอบคำถามมา
บันทึกการเข้า

kob191
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 1,109



ดูรายละเอียด
« ตอบ #25 เมื่อ: 07 กันยายน 2007, 01:15:02 »

 Kiss  ตอนนี้ข้อมูลที่กรอกใน ฟอร์มได้บันทึกไว้ใน database แล้วครับ แต่ผมจะมี สคริปไว้ดูข้อมูลที่บันทึกใน db คือ list.php  ซึ่งเมื่อผมเช็คดู  www.ปกปิด.com/list.php    มันก็ไม่มี eror แต่มีแต่ตารางนะครับส่วนข้อมูลไม่มีไม่ทราบว่าผมผิดตรงส่วนไหนเปล่าครับช่วยที

code list.php


<?php
          require('config.inc.php');
        require('th_func.php');
        $sql="select fullname,email,detail,posted from tb_contact where enable='1' order by posted";
        $result=mysql_query($sql,$link);
print "<title>List all record in tb_contact</title>\n";
print "<body bgcolor=\"#FFFFFF\">\n";
print "<div align=\"center\">\n";
print "<table width=\"600\" border=\"0\">\n";
print "<tr>\n";
print "<td bgcolor=\"#CCCCCC\">\n";
print "<div align=\"center\">\n";
print "<font face=\"CordiaUPC\" size=\"4\">";
print "All information</font>";
print "</div>\n";
print "</td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td>\n";
print "<hr size=\"1\">\n";
print "</td>\n";
print "</tr>\n";


while ($object=mysql_fetch_object ($result)){
print "<tr bgcolor=\"#FFCCFF\">\n";

print "<td><font face=\"MS Sans Serif\" size=\"1\">\n";
        print "Huh? <a href=\"mailto:$object-
>email\">$object->fullname</a> ";
      print "Huh?Huh?Huh??? ". thaidate($object->posted) . "
น.</font></td>\n";
      print "</tr>\n";
      print "<tr>\n";
      print "<td bgcolor=\"#FFFFCC\">\n";
      print "<font face=\"MS Sans Serif\" size=\"1\">
$object->detail</font>";
        print "</td>\n";
      print "</tr>\n";
      print "<tr valign=\"top\">\n";
      print "<td>\n";
      print "<hr size=\"1\">\n";
      print "</td>\n";
      print "</tr>\n";
}

print "<tr>\n";
print "<td bgcolor=\"#CCCCFF\">";
print "<font size=\"2\" face=\"Times New Roman\">End of
tb_contact</font>";
print "</td>\n";
print "</tr>\n";
print "</table>\n";
print "<br>\n";
print "</div><br>\n";
print "</table>\n";

mysql_close($link);

?>

บันทึกการเข้า

kennn
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 149
ออฟไลน์ ออฟไลน์

กระทู้: 1,199



ดูรายละเอียด
« ตอบ #26 เมื่อ: 07 กันยายน 2007, 09:56:20 »

ตอนแรกก้ออยากจะบอกหรอกครับว่า พอคุณใส่ข้อมูลเข้าได้แล้ว มันก้อจะมีปัญหาต่อ แต่ผมคิดแล้วว่าอธิบายไปคงยาวแน่ๆ ก้อเลยรอให้คุณมาถามต่อดีกว่า(ในที่สุดก้อมาถามจิงๆ เฮ้อออ)

เรื่องของเรื่องที่ยังไม่บอกไปเพราะว่า ผมไม่รู้รูปแบบการทำงานของ Script คุณ ที่มันไม่แสดงเพราะว่า(ดูในสคริปของคุณตามเลยนะครับ) ค่า enable ในฐานข้อมูลมันเป็น 0 ทุกแถวเลย แต่ในไฟล์ list.php มันบังคับว่า enable ต้อง = 1

อ้างถึง
$sql="select fullname,email,detail,posted from tb_contact where enable='1' order by posted";

ฉะนั้นข้อมูลต้องไม่แสดงแน่นอน ลองใส่ค่า enable='0' สิครับขึ้นแน่นอน แต่ทั้งนี้ทั้งนั้นถ้าปรับให้มันเป็น 0 เลยมันก้ออาจจะผิดวัตถุประสงค์ของสคริปตัวนี้

สคริปตัวนี้ผมก้อไม่รู้ว่ามันมีส่วนของ admin หรือไม่(น่าจะมีละนะ) ถ้ามีก้อแปลว่ามันต้องมีส่วน เปิด/ปิด ค่าการแสดงข้อมูลในแต่ละแถว ก้อคือ ถ้าให้ข้อมูลแสดงก็จะได้ค่า enable='1' ไม่ให้แสดงก้อเท่ากับ enable='0'

เพราะฉะนั้น(ลองดู ปรับตามนี้) ในไฟล์ insert.php ควรจะมีการใส่ค่า enable เพิ่มด้วย ตามด้านล่าง

อ้างถึง
<title>Insert Data in contact_Us</title>
<p>Insert Comment</P>

<?php
       require('config.inc.php');
      $today=date("Y-m-d H:i:s");
      $sql="insert into tb_contact
(fullname,email,detail,posted,ip_address,enable) values ('$fullname','$email','$detail','$today','$REMOTE_ADDR','1')";
       $result=mysql_query($sql, $link);
      mysql_close($link);
      echo "Insert into Contact_Us Database
Complete!<br>\n";
       echo "Go back <a href=\"/\">Home</a><br>\n";
?>

ลองเอาปรับใช้ดูนะครับ

ปล.ยาวมัยละ


บันทึกการเข้า

kob191
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 1,109



ดูรายละเอียด
« ตอบ #27 เมื่อ: 07 กันยายน 2007, 23:03:07 »

สุดยอดเลยท่านขอบคุณมากครับจากที่ไม่เคยรู้ php มาเลยตอนนี้ก็มีเพิ่มขึ้นมาบ้างแล้วจะศึกษาต่อไปครับชาติไทยมีคนดีเยอะเท่าแต่ว่าจะแสดงออกมาแบบใด อะเกี่ยวกันเปล่านี่



ตอนแรกก้ออยากจะบอกหรอกครับว่า พอคุณใส่ข้อมูลเข้าได้แล้ว มันก้อจะมีปัญหาต่อ แต่ผมคิดแล้วว่าอธิบายไปคงยาวแน่ๆ ก้อเลยรอให้คุณมาถามต่อดีกว่า(ในที่สุดก้อมาถามจิงๆ เฮ้อออ)

เรื่องของเรื่องที่ยังไม่บอกไปเพราะว่า ผมไม่รู้รูปแบบการทำงานของ Script คุณ ที่มันไม่แสดงเพราะว่า(ดูในสคริปของคุณตามเลยนะครับ) ค่า enable ในฐานข้อมูลมันเป็น 0 ทุกแถวเลย แต่ในไฟล์ list.php มันบังคับว่า enable ต้อง = 1

อ้างถึง
$sql="select fullname,email,detail,posted from tb_contact where enable='1' order by posted";

ฉะนั้นข้อมูลต้องไม่แสดงแน่นอน ลองใส่ค่า enable='0' สิครับขึ้นแน่นอน แต่ทั้งนี้ทั้งนั้นถ้าปรับให้มันเป็น 0 เลยมันก้ออาจจะผิดวัตถุประสงค์ของสคริปตัวนี้

สคริปตัวนี้ผมก้อไม่รู้ว่ามันมีส่วนของ admin หรือไม่(น่าจะมีละนะ) ถ้ามีก้อแปลว่ามันต้องมีส่วน เปิด/ปิด ค่าการแสดงข้อมูลในแต่ละแถว ก้อคือ ถ้าให้ข้อมูลแสดงก็จะได้ค่า enable='1' ไม่ให้แสดงก้อเท่ากับ enable='0'

เพราะฉะนั้น(ลองดู ปรับตามนี้) ในไฟล์ insert.php ควรจะมีการใส่ค่า enable เพิ่มด้วย ตามด้านล่าง

อ้างถึง
<title>Insert Data in contact_Us</title>
<p>Insert Comment</P>

<?php
       require('config.inc.php');
      $today=date("Y-m-d H:i:s");
      $sql="insert into tb_contact
(fullname,email,detail,posted,ip_address,enable) values ('$fullname','$email','$detail','$today','$REMOTE_ADDR','1')";
       $result=mysql_query($sql, $link);
      mysql_close($link);
      echo "Insert into Contact_Us Database
Complete!<br>\n";
       echo "Go back <a href=\"/\">Home</a><br>\n";
?>

ลองเอาปรับใช้ดูนะครับ

ปล.ยาวมัยละ



บันทึกการเข้า

kob191
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 1,109



ดูรายละเอียด
« ตอบ #28 เมื่อ: 09 กันยายน 2007, 14:39:24 »

ตอนนี้กำลังทำระบบ member แต่เกิดปัญหาคือ เมื่อ กรอกข้อมูลแล้วมันไม่เข้าไปใน database ใครพอจะช่วยหน่อยได้เปล่าครับ

tb_member  ชื่อ table ในdatabase ครับ

Create Table tb_member
id int(7)   NOT NULL   auto_increment,
user            varchar(40) ,
passwd        varchar(40) ,
email           varchar(45) ,
msg             mediumtext,
hacker          varchar(40)
lastlog          varchar(28),
dtnow           varchar(28),
PRIMARY KEY (id)
)CHARACTER SET tis620



code sigupform.php
<HTML><HEAD>
<TITLE> Signup member</TITLE>
</HEAD>
<Body onLoad="document.a.username.focus();">
<Form action="signup.php" method=post name=a>
<center><br><br>
<TABLE border=1 cellpadding=0 cellspacing=0 bordercolor=white width=45%
<tr><td bordercolor=#660066>
<Table cellspacing=1 bgcolor=#CCFFFF width=100%>
<tr><td colspan=2 bgcolor=#00CCFF><b> <img src=member.gif> ::Register
</b></td></tr>
<tr><td align=right> Username:</td>
<td><input type="text" name="username" size=12> ภาษาอังกฤษและตัวเลข <=
12 ตัว</td></tr>

<tr><td align=right> Password:</td>
<td><input type="password" name="passwd1" size=25></td></tr>
<tr><td align=right>Password Again:</td>
<td><input type="password" name="passwd2" size=25></td></tr>

<tr><td align=right> Email:</td>
<td><input type="text" name="email" size=25></td></tr>

<tr><td align=right>ชื่อ นามสกุล /Addres<br>comment:</td>
<td><textarea name="msg" cols=25 rows=4></textarea></td></tr>

<tr><td colspan=2 align=center><br>
<input type="submit" name="Submit" value="Submit">&nbsp;</td></tr>
</Table>
</td></tr></TABLE>
</form>
<a href=index.html>กลับสู่หน้าหลัก</a>
</body> </html>


code signup.php

<?php     
error_reporting(E_ALL ^ E_NOTICE);
session_start();

$cook_nm = 'ปกปิด';
$cook_pw = 'ปกปิด';
$cook_time= 3600*24*2;

$dbhost = "localhost";
$dbname = "ปกปิด";
$dbuser = "ปกปิด";
$dbpass = "ปกปิด";

$username= $_post['username'];
$passwd1=$_post['passwd1'];

if(trim($_post['code'])!=($_session['ses_code'])){
   echo "<b>รหัส code ไม่ถูกต้อง!</b>";
   echo "<hr> <a href=signupform.php>สมัครใหม่</b>";
exit;
    }
if((!empty($username)) and (!empty($passwd1) )) {
 $username = trim($_post['username']);
 $passwd1 =trim($_post['passwd1']);
 $passwd2 =trim($_post['passwd2']);
 $email =trim($_post['email']);
 $msg =trim($_post['msg']);

 if ( strlen($username)<4){
    echo "<b>username ต้อง 4 ตัวขึ้นไป!</b>";
     echo "<hr><a href=signupform.php>สมัครใหม่</b>";
    exit;
}

if($passwd1 !=$passwd2) {
   echo "<b>รหัสผ่าน2ช่องไม่เหมือนกัน!</b>";
   echo "<hr><a href=signupform.php>สมัครใหม่</b>";
    exit;
}
mysql_connect($dbhost,$dbuser,$dbpass) or die("connect mysql ไม่ได้ ");
mysql_select_db($dbname);
mysql_query("set NAMES tis620 ");

$sql = "SELECT user from tb_member WHERE user='$username'";
$dbquery = mysql_query($sql);
$result = mysql_fetch_array($dbquery);
if($result){
   #header("Location: sigupfail.php");
   echo "<b>มี user $username อยู่แล้ว ห้าม add ซ้ำ!</b>";
   echo "<hr><a href=signupform.php>สมัครใหม่</b>";
   die;
}
$encpwd = md5($passwd1);

$sql = "INSERT into tb_member(user,passwd,email,msg,dtnow)
       values ('$username','$encpwd','$email','$msg','$now')";
$result = mysql_db_query($dbname,$sql);
if(!$result){
   echo("Error in SQL ".mysql_error());
} else {

   setcookie($cook_nm,$username,time()+$cook_time);
    setcookie($cook_pw,$encpwd,time()+$cook_time);

   $subj="ตอบรับการสมัครสมาชิก";
   $from= "admin@ปกปิด.com";
   $msg = "เรียน คุณ $username \n\n".
    "ขอแจ้งให้ท่านทราบว่า การสมัครสมาชิกเรียบร้อยแล้ว\n\n".
    "Username: $username \nPassword: $passwd1 \n\n".
    "สามารถ login เข้าแก้ไขค่าต่างๆได้ที่ htt://www.ปกปิด.com/login \n\n".
    "ขอบพระคุณ ที่ใช้บริการ\nwww.ปกปิด.com";

    mail($email,$subj,$msg,"From:$from");

    echo "<center>การสมัครเรียบร้อยแล้ว $username , $email";
    echo "<hr><a href=./>Login</b>";
    }//if !$result
    }else{

    echo "<center>กรุณากรอกข้อมูลให้ครบถ้วน</b>";
    echo "<hr><a href=signupform.php>สมัครใหม่</b>";
}//if!empty
?>




« แก้ไขครั้งสุดท้าย: 09 กันยายน 2007, 14:43:32 โดย kob191 » บันทึกการเข้า

kob191
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 1,109



ดูรายละเอียด
« ตอบ #29 เมื่อ: 09 กันยายน 2007, 17:11:38 »

น่าจะชื่อ database แต่หาไม่เจอใครช่วยที
บันทึกการเข้า

kennn
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 149
ออฟไลน์ ออฟไลน์

กระทู้: 1,199



ดูรายละเอียด
« ตอบ #30 เมื่อ: 09 กันยายน 2007, 20:17:53 »

ให้ดูที่ไฟล์ Signup.php นะครับ ตรงช่วงการรับค่าจาก Form มานะครับ

อ้างถึง
$username= $_post['username'];
$passwd1=$_post['passwd1'];

if(trim($_post['code'])!=($_session['ses_code'])){
   echo "<b>รหัส code ไม่ถูกต้อง!</b>";
   echo "<hr> <a href=signupform.php>สมัครใหม่</b>";
exit;
    }
if((!empty($username)) and (!empty($passwd1) )) {
 $username = trim($_post['username']);
 $passwd1 =trim($_post['passwd1']);
 $passwd2 =trim($_post['passwd2']);
 $email =trim($_post['email']);
 $msg =trim($_post['msg']);

ตัวแดงๆที่ผมไฮไลท์ไว้นะครับที่ผิด ที่ถูกต้องเป็น $_POST ตัวใหญ่หมด $_POST ตัวนี้เป็นตัวรับค่าตัวแปรจาก Form แบบ post พอใช้รูปแบบไม่ถูกต้อง ค่าต่างๆเลยเป็นค่าว่าง ข้อมูลก้อเลยไม่สามารถเข้าไปอยู่ใน DB ได้ครับ ถ้าคุณใช้ Dreamweaver คุณจะเห็นโค้ด $_POST เป็นสีฟ้าเลยครับ

หลักการตรวจสอบว่าทำไมข้อมูลไม่เข้า DB คุณต้องดูตัวแปรที่รับค่ามาทุกตัวครับ(หรือสุ่มเอาก้อได้) เช่น $username , $passwd1  ดูว่าตัวแปรพวกนี้ค่ามันหายไปช่วงไหนก่อน INSERT ลง DB โดยใช้วิธีการ echo ตัวแปรนั้นๆ แบบนี้ครับ

อ้างถึง
$username= $_post['username'];
$passwd1=$_post['passwd1'];

echo $username."<br>; 

if(trim($_post['code'])!=($_session['ses_code'])){
   echo "<b>รหัส code ไม่ถูกต้อง!</b>";
   echo "<hr> <a href=signupform.php>สมัครใหม่</b>";
exit;
    }
if((!empty($username)) and (!empty($passwd1) )) {
 $username = trim($_post['username']);
 $passwd1 =trim($_post['passwd1']);
 $passwd2 =trim($_post['passwd2']);
 $email =trim($_post['email']);
 $msg =trim($_post['msg']);

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

และ .. พอดีผมไปเห็นโค้ดในไฟล์ formsignup.php ดูโค้ด Table นะครับ มันทำให้ source ที่ออกมาไม่สมบูรณ์ เพราะว่าไม่ได้ปิดเครื่องหมาย Tag ไว้  และก้อ Tag ปิด center ก้อไม่มีครับ

อ้างถึง
code sigupform.php
<HTML><HEAD>
<TITLE> Signup member</TITLE>
</HEAD>
<Body onLoad="document.a.username.focus();">
<Form action="signup.php" method=post name=a>
<center><br><br>
<TABLE border=1 cellpadding=0 cellspacing=0 bordercolor=white width=45% >
<tr><td bordercolor=#660066>
<Table cellspacing=1 bgcolor=#CCFFFF width=100%>
<tr><td colspan=2 bgcolor=#00CCFF><b> <img src=member.gif> ::Register
</b></td></tr>
<tr><td align=right> Username:</td>
<td><input type="text" name="username" size=12> ภาษาอังกฤษและตัวเลข <=
12 ตัว</td></tr>

<tr><td align=right> Password:</td>
<td><input type="password" name="passwd1" size=25></td></tr>
<tr><td align=right>Password Again:</td>
<td><input type="password" name="passwd2" size=25></td></tr>

<tr><td align=right> Email:</td>
<td><input type="text" name="email" size=25></td></tr>

<tr><td align=right>ชื่อ นามสกุล /Addres<br>comment:</td>
<td><textarea name="msg" cols=25 rows=4></textarea></td></tr>

<tr><td colspan=2 align=center><br>
<input type="submit" name="Submit" value="Submit">&nbsp;</td></tr>
</Table>
</td></tr></TABLE></CENTER>
</form>
<a href=index.html>กลับสู่หน้าหลัก</a>
</body> </html>

ใช้ Dreamweaver Edit จะทำให้เกิดข้อผิดพลาดน้อยลงได้ครับ
บันทึกการเข้า

kob191
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 1,109



ดูรายละเอียด
« ตอบ #31 เมื่อ: 10 กันยายน 2007, 02:06:49 »

ระบบเมล์แจ้งรหัสผ่าน กรณีสมาชิกเกิดลืม  มีปัญหากรอกข้อมูลแล้วไม่ไป database

code forgotpw.php เป็น from ส่งข้อมูล

<form action="sendpw.php" method="post">
            <tbody>
              <tr>
                <td align="left"><strong>Username&nbsp;:</strong>&nbsp;&nbsp;<br />
                  &nbsp;&nbsp;
                  <input title="text" name="username" size="15" /></td>
              </tr>
              <tr>
                <td align="ledt"><strong>Password&nbsp;:</strong>&nbsp;&nbsp;<br />
                  &nbsp;&nbsp;
                  <input type="password" size="15" value="" name="password" /></td>
              </tr>
              <tr>
                <td align="middle"><input type="submit" value="Log in" name="submit" /></td>
              </tr>
            </tbody>
          </form>


code sendpw.php

<?php
require("func.inc.php");

$dbhost = "localhost";
$dbname = "ปกปิด";
$dbuser = "ปกปิด";
$dbpass = "ปกปิด";

if(!empty($username)){
   $username = trim($_POST['username']);
   mysql_connect($dbhost,$dbuser,$dbpass) or die("connect mysql ไม่ได้");
   mysql_select_db($dbname);
   mysql_query("set NAMES tis620 ");

   $sql = "SELECT user,email From tb_member WHERE user='$username'";
   $dbquery = mysql_query($sql);
   $result = mysql_fetch_array($dbquery);
   if (!$result) {
      #header("Localtion:./file.php");
      echo "login ID ผิด ไม่สามารถส่ง password ได้!";
      exit;
   }

   $to=$result['email'];
   $newpw = passwdgen(6);
   $encpwd = md5($newpw);

   $sql = "UPDAT tb_member SET passwd='$encpwd' WHERE user='$username'";
   $result= mysql_db_query($dbname,$sql);
   if(!$result){
      echo("Error in SQL ".mysql_error() );
   }else{

      $subj="แจ้งรหัสผ่านสำหรับสมาชิก";
      $from="ระบบอัตโนมัติ www.ปกปิด.com<admin@ปกปิด.com>";
      $msg="เรียน $username \n\n".
       "นี่คือเมล์จากระบบแจ้งรหัสผ่านอัตโนมัติ \nรหัสผ่านของท่านขณะนี้คือ $newpw".
       "\n\nขอบพระคุณ ที่ใช้บริการ\nwww.ปกปิด.com";

      $header = "Return-Path: $from\r\n";
      $header.= "X-Sender:$from\n";
      $header.= "From:$from\n";
      $header.=  "X-Mailer:PHP4.0\n";
      $header.= "MIME-Version: 1.0\n";

      if(mail($to,$subj,$msg,$header)) {
         echo "ส่งรหัสผ่านให้ท่านแล้ว ที่ $to \n".
            "***หากไม่ได้รับ ลองเช็คเมล์ในกล่อง Junk หรือBulk***";
      }else{echo "ส่งรหัสผ่านไม่ได้";}
   }//จบ else if !$result
}//จบ if(!empty($username))
?>

<hr><a href=./>index.html</a>


code func.inc.php   ฟังก์ชั่นสำหรับสร้างรหัสผ่านสุ่ม
<?
function passwdgen($len) {
   $code= "abcdefghijkmnopqrstuvwxyz123456789";
   srand((double)microtime()*1000000);
   for($i=0;$i<$len;$i++) {
      $password.=$code[rand()%strlen($code)];
    }
   return $password;
}
?>


รบกวนคุณ kennn ช่วยดูให้หน่อยนะครับ ผิดตรงไหนมันไม่ส่งข้อมูลไปที่ email ของuser

« แก้ไขครั้งสุดท้าย: 10 กันยายน 2007, 02:08:53 โดย kob191 » บันทึกการเข้า

kennn
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 149
ออฟไลน์ ออฟไลน์

กระทู้: 1,199



ดูรายละเอียด
« ตอบ #32 เมื่อ: 10 กันยายน 2007, 11:51:43 »

Format ผิดครับ

อ้างถึง
   $to=$result['email'];
   $newpw = passwdgen(6);
   $encpwd = md5($newpw);

   $sql = "UPDATE tb_member SET passwd='$encpwd' WHERE user='$username'";
   $result= mysql_db_query($dbname,$sql);

ตกตัว E ไป
บันทึกการเข้า

kob191
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 1,109



ดูรายละเอียด
« ตอบ #33 เมื่อ: 10 กันยายน 2007, 14:33:44 »

Format ผิดครับ

อ้างถึง
   $to=$result['email'];
   $newpw = passwdgen(6);
   $encpwd = md5($newpw);

   $sql = "UPDATE tb_member SET passwd='$encpwd' WHERE user='$username'";
   $result= mysql_db_query($dbname,$sql);


เติมแล้วก็ไม่หายครับงงจัง  Cry

ตกตัว E ไป

บันทึกการเข้า

payu
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 125
ออฟไลน์ ออฟไลน์

กระทู้: 1,887



ดูรายละเอียด
« ตอบ #34 เมื่อ: 10 กันยายน 2007, 15:32:40 »

      $header = "Return-Path: $from\r\n";
      $header.= "X-Sender:$from\n";
      $header.= "From:$from\n";
      $header.=  "X-Mailer:PHP4.0\n";
      $header.= "MIME-Version: 1.0\n";


1. mail header ต้องปิดท้ายด้วย \r\n เสมอครับ ทุกบรรทัด
2. ถ้ายังไม่ได้คงต้องเช็ค "From" ครับ ว่าเป็น valid email ที่สามารถส่งได้บน mail server ที่เราใช้ส่ง (เนื่องจากมีการ relay spam เยอะ server ส่วนใหญ่จะอนุญาตให้ email เฉพาะที่มีบน server ส่งเมล์ออกได้เท่านั้น)
3. ถ้ายังไม่ได้อีก คงต้องตรวจสอบ mail server setting ครับ ถ้าเป็น windows server ต้องเช็ค 'SMTP' กับ 'sendmail_from' ในไฟล์ php.ini ครับ (หรืออาจจะ override ในโปรแกรมโดยคำสั่ง ini_set() ได้ครับ


บันทึกการเข้า

kob191
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 1,109



ดูรายละเอียด
« ตอบ #35 เมื่อ: 10 กันยายน 2007, 17:09:44 »

      $header = "Return-Path: $from\r\n";
      $header.= "X-Sender:$from\n";
      $header.= "From:$from\n";
      $header.=  "X-Mailer:PHP4.0\n";
      $header.= "MIME-Version: 1.0\n";


1. mail header ต้องปิดท้ายด้วย \r\n เสมอครับ ทุกบรรทัด
2. ถ้ายังไม่ได้คงต้องเช็ค "From" ครับ ว่าเป็น valid email ที่สามารถส่งได้บน mail server ที่เราใช้ส่ง (เนื่องจากมีการ relay spam เยอะ server ส่วนใหญ่จะอนุญาตให้ email เฉพาะที่มีบน server ส่งเมล์ออกได้เท่านั้น)
3. ถ้ายังไม่ได้อีก คงต้องตรวจสอบ mail server setting ครับ ถ้าเป็น windows server ต้องเช็ค 'SMTP' กับ 'sendmail_from' ในไฟล์ php.ini ครับ (หรืออาจจะ override ในโปรแกรมโดยคำสั่ง ini_set() ได้ครับ

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

บันทึกการเข้า

payu
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 125
ออฟไลน์ ออฟไลน์

กระทู้: 1,887



ดูรายละเอียด
« ตอบ #36 เมื่อ: 10 กันยายน 2007, 17:13:59 »


1.ลอง comment บรรทัด
//$from="ระบบอัตโนมัติ www.ปกปิด.com<admin@ปกปิด.com>";

ออกดูก่อนครับว่าเป็นปัญหาที่ from email รึป่าว ...

2. ลอง comment $header ทั้งหมดออกเลย แล้วส่งดู
3. ลอง hard code $to เป็น email เราดูว่าส่งหาตัวเองได้หรือไม่

ลองแบบนี้จะได้เข้าใกล้ปัญหาให้ตรงจุดครับ



บันทึกการเข้า

kob191
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 1,109



ดูรายละเอียด
« ตอบ #37 เมื่อ: 10 กันยายน 2007, 18:49:07 »


1.ลอง comment บรรทัด
//$from="ระบบอัตโนมัติ www.ปกปิด.com<admin@ปกปิด.com>";

ออกดูก่อนครับว่าเป็นปัญหาที่ from email รึป่าว ...

2. ลอง comment $header ทั้งหมดออกเลย แล้วส่งดู
3. ลอง hard code $to เป็น email เราดูว่าส่งหาตัวเองได้หรือไม่

ลองแบบนี้จะได้เข้าใกล้ปัญหาให้ตรงจุดครับ


ลองหมดทุกข้อแล้วครับยังไม่ได้เลย  Cry




บันทึกการเข้า

payu
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 125
ออฟไลน์ ออฟไลน์

กระทู้: 1,887



ดูรายละเอียด
« ตอบ #38 เมื่อ: 10 กันยายน 2007, 19:37:57 »

คือว่าผมได้ลองเอา code ส่วนที่ส่ง email มาลองรันดู ปรากฎว่ามันทำงานได้ปกติครับ
โดยผมได้ลองแก้อย่างที่ลองให้แก้ดน่ะูครับ ...

ตอนนี้มี 2 ทางครับ
1. ถ้ามั่นใจว่า code ส่วน database ไม่มีปัญหา แล้วหน้าที่สมัครก็สามารถส่ง mail ได้ งั้นคงต้องลองเทียบ code ส่วนที่ส่งเมล์ระหว่าง 2 หน้านี้ครับว่าต่างกันยังไง ถ้าใช้เหมือนกันเลยจะส่งได้มั้ย
2. ลองเอา code

โค๊ด:
error_reporting(E_ALL);

ใส่ไว้บนสุดของหน้า แล้วเอา error มา post ครับ จะได้ช่วยดู

อ้อ .. function mysql_db_query() เค้าไม่แนะนำให้ใช้แล้วครับ ให้ใช้ mysql_query() แทน

« แก้ไขครั้งสุดท้าย: 10 กันยายน 2007, 20:03:44 โดย payu » บันทึกการเข้า

EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,518



ดูรายละเอียด เว็บไซต์
« ตอบ #39 เมื่อ: 10 กันยายน 2007, 20:28:45 »

อย่างว่า ถ้ามีลองปรับโค้ดที่จะจุดแล้วจับ error ก็คงหายาก

การที่หลายคนลง apache ไว้ หลักๆ คือเทสได้ทันใจ
ขนาดนี้โฮสเป็นกิ๊ก ก็ยังต่องพึ่ง apache ตัวนิดๆ ในเครื่องของเราเสมอ

สรุปคือลำบากที่จะแก้ผ่านบอร์ดถ้าไม่ได้ access โดยตรง

อ้างถึง
ระบบเมล์แจ้งรหัสผ่าน กรณีสมาชิกเกิดลืม  มีปัญหากรอกข้อมูลแล้วไม่ไป database

หมายถึงหน้าเพจขึ้น แต่ DB ไม่อัพใช่ปะครับ

ผมนึกว่าเพจไม่ขึ้น เพราะหลายคนตกม้าตายกะ register global อะ

ต้องมาเช็ครับค่าที่ $_GET $_POST แทน  Tongue
บันทึกการเข้า

หน้า: 1 [2] 3   ขึ้นบน
พิมพ์