ปัญหาการส่ง message จาก form ที่มีความยาวมากๆ

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

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

ตอบกลับโพส
nungs
phpBBThailand Jr. Member
phpBBThailand Jr. Member
โพสต์: 10
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

ปัญหาการส่ง message จาก form ที่มีความยาวมากๆ

โพสต์ โดย nungs »

รบกวนปรึกษาหน่อยนะครับ คือ ผมมี form หนึ่งที่มีขนาดประมาณ 150 field โดยทั้งหมดผมต้องการส่งเป็น format ที่มีหน้าตาแบบ CSV เข้าไปใน mail ครับ

ปัญหาตอนนี้คือ ผมเอาทุก field มาต่อกันโดยการ + string

$msg = $A1.",".$A2.",".$A3.",".$A4.",".$A5.",".$A6.",".$A7.",".$A8.",".$A9;

ปัญหาที่เกิดคือ ตัวอักษรที่มีการเว้นว่างระหว่างข้อความเช่น ชื่อ และสกุล ... พอมันยาวมากๆ ดูเหมือนมันจะพยายามแทรก Line Feed เข้าไปใน $msg ครับ

ผมทดสอบส่งไปใน email และก็ทำการ copy ออกมาวางใน notepad ปรากฏว่า มันมี line feed ติดมาด้วยครับ ปกติมันจะยาวไปจนหมด(ผมปิด word wrap ไว้)

ดังนั้น message ที่ผมพยายามสร้างมันจึงถูกคั่นด้วย Line Feed พอมีหนทางใดไหมครับที่จะไม่ให้มันแทรก Line Feed ลงไปใน message ที่ผมทำการรวม string เพราะผมจะเอาไว้ add ลงใน excel ง่ายๆ น่ะครับ
mindphp
phpBBThailand VIP Members
phpBBThailand VIP Members
โพสต์: 2269
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

โพสต์ โดย mindphp »

form สร้างไว้ อย่างไร ครับ อาจเป็นปัญหามาจาก form ก็ได้ครับ
สร้างไฟล์ pdf online
ท่องเที่ยว http://www.thailandhotelforums.com/" onclick="window.open(this.href);return false;
สอน php http://www.mindphp.com/" onclick="window.open(this.href);return false;
nungs
phpBBThailand Jr. Member
phpBBThailand Jr. Member
โพสต์: 10
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

โพสต์ โดย nungs »

ขอบคุณมากครับ

<form id="form1" name="form1" method="post" action="sendit.php">

ธรรมดาเลยครับ ไม่มีอะไรพิเศษ ก็ส่ง post มาตามปกติ ตัว field ของผมก็มีทั้ง text field, box field, และก็ radio field ครับ ส่วนตัวรับมาเพื่อส่งต่อก็อย่างที่เห็นครับตามด้านล่างนี้


$msg = $A1.",".$A2.",".$A3.",".$A4.",".$A5.",".$A6.",".$A7.",".$A8.",".$A9.",".$A10.",".$A11.",".$A12.",".$A13.",".$A14.",".$A15.",".$A16.",".$A17.",".$A18.",".$A19.",".$A20.",".$A21.",".$A22.",".$A23.",".$A24.",".$A25.",".$A26.",".$A27.",".$A28.",".$A29.",".$A30.",".$A31.",".$A32.",".$A33.",".$A34.",".$A35.",".$A36.",".$A37.",".$A38.",".$A39.",".$A40.",".$A41.",".$A42.",".$A43.",".$A44.",".$A45.",".$A46.",".$A47.",".$A48.",".$A49.",".$A50.",".$A51.",".$A52.",".$A53.",".$A54.",".$A55.",".$A56.",".$A57.",".$A58.",".$A59.",".$A60.",".$A61.",".$A62.",".$A63.",".$A64.",".$A65.",".$A66.",".$A67.",".$A68.",".$A69.",".$A70.",".$A71.",".$A72.",".$A73.",".$A74.",".$A75.",".$A76.",".$A77.",".$A78.",".$A79.",".$A80.",".$A81.",".$A82.",".$A83.",".$A84.",".$A85.",".$A86.",".$A87.",".$A88.",".$A89.",".$A90.",".$A91.",".$A92.",".$A93.",".$A94.",".$A95.",".$A96.",".$A97.",".$A98.",".$A99.",".$A100.",".$A101.",".$A102.",".$A103.",".$A104.",".$A105.",".$A106.",".$A107.",".$A108.",".$A109.",".$A110.",".$A111.",".$A112.",".$A113.",".$A114.",".$A115.",".$A116.",".$A117.",".$A118.",".$A119.",".$A120.",".$A121.",".$A122.",".$A123.",".$A124.",".$A125.",".$A126.",".$A127.",".$A128.",".$A129.",".$A130.",".$A131.",".$A132.",".$A133.",".$A134.",".$A135.",".$A136.",".$A137.",".$A138.",".$A139.",".$A140.",".$A141.",".$A142.",".$A143.",".$A144.",".$A145.",".$A146.",".$A147.",".$A148.",".$A149.",".$A150.",".$A151.",".$A152.",".$A153.",".$A154.",".$A155.",".$A156.",".$A157;


$To = "[email protected]";
$Subject = "Staff Profile ".$A3;
$Message = $msg;
$Header = "From : ".trim($A20);

$headers = 'From: '.trim($A20). "\r\n" .'X-Mailer: PHP/' . phpversion();

mail($To,$Subject,$Message,$Header);

ตัวอย่างนะครับ เช่น A,B,C,D,E,F........ , ABC DEF,, , , , , ,

พอยาวมากๆ มันจะตัดหลัง ABC แล้วขึ้นบรรทัดใหม่เป็น DEF,,,,, น่ะครับ คือถ้ามีข้อมูลยาวๆเมื่อไรแล้วมีช่องว่างตรงไหน มันก็ขึ้นแทรก Line Feed ลงตรงนั้นน่ะครับ
mindphp
phpBBThailand VIP Members
phpBBThailand VIP Members
โพสต์: 2269
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

โพสต์ โดย mindphp »

form สร้างไว้ อย่างไร ครับ อาจเป็นปัญหามาจาก form ก็ได้ครับ
form เต็มๆ สร้างไว้ แบบไหน ครับ
สร้างไฟล์ pdf online
ท่องเที่ยว http://www.thailandhotelforums.com/" onclick="window.open(this.href);return false;
สอน php http://www.mindphp.com/" onclick="window.open(this.href);return false;
nungs
phpBBThailand Jr. Member
phpBBThailand Jr. Member
โพสต์: 10
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

โพสท์ยังไงก็ไม่ติดครับ จะเอาลงยังไงหรือครับ

โพสต์ โดย nungs »

ผมใช้ tag code .../code ก็ post ไม่ไปครับ คือออยากจะเอา code มาให้ดูนะครับ แต่โพสท์ไม่ไป ถ้าส่งไป yousendit มันก็ต้องมีอีเมล์ เลยไม่รู้จะส่งไปทางไหนดีครั

วิธีแก้ที่ผมทำแล้วใช้ได้ผลคือ ห้ามเว้นช่องว่างครับ เช่น นาย A นามสกุล B ก็ให้ใส่ A-B มันถึงจะไม่ตัดคำครับ คือ ห้ามมีช่องว่างถ้าหากต้องการส่งยาวๆ น่ะคับ แต่มันก็ไม่ควรแก้ด้วยวิธีนี้ น่าจะมีหนทางที่ดีกว่านะครับ
nungs
phpBBThailand Jr. Member
phpBBThailand Jr. Member
โพสต์: 10
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

ประมาณนี้น่ะครับ

โพสต์ โดย nungs »

<td colspan="3">
<label><input type="radio" name="A151" value="None" id="fluencyspoken_24">None</label>
<label><input type="radio" name="A151" value="Greetings" id="fluencyspoken_25">Greetings</label>
<label><input type="radio" name="A151" value="Market-Place" id="fluencyspoken_26">Market Place</label>
<label><input type="radio" name="A151" value="Teaching/Praching" id="fluencyspoken_27">Teaching / Praching</label>
<label><input type="radio" name="A151" value="Technical" id="fluencyspoken_28">Technical</label>
<label><input type="radio" name="A151" value="Fluent" id="fluencyspoken_29">Fluent</label> </td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td align="center" valign="middle">&nbsp;</td>
<td align="center" valign="middle">&nbsp;</td>
</tr>
<tr>
<td><div align="center" class="style6">LANGUAGE #2</div></td>
<td><input name="A152" type="text" id="textfield50" size="50" maxlength="50"></td>
<td align="center" valign="middle">&nbsp;</td>
<td align="center" valign="middle">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td align="center" valign="middle">&nbsp;</td>
<td align="center" valign="middle">&nbsp;</td>
</tr>
<tr>
<td><div align="center" class="style6">Fluency spoken </div></td>
<td colspan="3">
<label><input type="radio" name="A153" value="None" id="fluencyspoken_18">None</label>
<label><input type="radio" name="A153" value="Greetings" id="fluencyspoken_19">Greetings</label>
<label><input type="radio" name="A153" value="Market-Place" id="fluencyspoken_20">Market Place</label>
<label><input type="radio" name="A153" value="Teaching/Praching" id="fluencyspoken_21">Teaching / Praching</label>
<label><input type="radio" name="A153" value="Technical" id="fluencyspoken_22">Technical</label>
<label><input type="radio" name="A153" value="Fluent" id="fluencyspoken_23">Fluent</label> </td>
</tr>
mindphp
phpBBThailand VIP Members
phpBBThailand VIP Members
โพสต์: 2269
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

โพสต์ โดย mindphp »

เอา โค้ด ไปโพสที่นี่
http://www.meelink.com/webboard/index.p ... at&catid=8
แล้ว เอาลิงค์มา บอกครับ ผมค่อนข้างมั่นใจ ว่า มีสาเหตุมาจาก form
การแก้แบบนั้น มันแก้ไม่ตรงจุด เราอย่าไปบังคับ user ให้ทำอะไรที่ผิดธรรมชาติ การใช้งานของเค้า นะครับ เดี๋ยวโปรแกรมเรา จะไม่มีคนใช้ เอานะครับ :-D :-D
สร้างไฟล์ pdf online
ท่องเที่ยว http://www.thailandhotelforums.com/" onclick="window.open(this.href);return false;
สอน php http://www.mindphp.com/" onclick="window.open(this.href);return false;
nungs
phpBBThailand Jr. Member
phpBBThailand Jr. Member
โพสต์: 10
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

ตามนี้ครับ

โพสต์ โดย nungs »

โพสท์เรียบร้อยแล้วครับ ขอช่วยดูหน่อยนะคับ มันก็ง่ายๆ ไม่มีอะไรนะครับ แต่ไม่รู้ว่าทำไม มันตัดคำ

http://www.meelink.com/webboard/data/8/0038-1.html
nungs
phpBBThailand Jr. Member
phpBBThailand Jr. Member
โพสต์: 10
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

ตัว ID ไม่ได้ใช้ไม่มีปัญหาใช่ไหมครับ

โพสต์ โดย nungs »

พอดีเขียนใน Dream Weaver น่ะครับ มันเลย add มาให้ด้วย ก็มีซ้ำๆ กันบ้าง แต่อันใหม่ผมลบเอา ID ทิ้งหมดละครับ แต่นอกนั้นยังเหมือนเดิม
mindphp
phpBBThailand VIP Members
phpBBThailand VIP Members
โพสต์: 2269
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

โพสต์ โดย mindphp »

ลอง echo ค่า ตัวแปลที่รวม แล้ว ดู ครับ แล้ว View source ที่หน้าเว็บ ดู ว่ามันมี บรรทัดใหม่ หรือเปล่า
สร้างไฟล์ pdf online
ท่องเที่ยว http://www.thailandhotelforums.com/" onclick="window.open(this.href);return false;
สอน php http://www.mindphp.com/" onclick="window.open(this.href);return false;
nungs
phpBBThailand Jr. Member
phpBBThailand Jr. Member
โพสต์: 10
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

ผมได้ลองหลายครั้งแล้วครับ

โพสต์ โดย nungs »

ปัญหามันติดตรงที่ว่า ถ้ายาวมากๆ แล้วมี space มันจะตัดคำออกครับ เช่น

a,b,c,d,e,f,g,........,Alun Smith,D,E,G,F,A,O+

อะไรแบบนี้น่ะครับ ถ้ามันยาวมากๆ มันจะตัดคำระหว่าง Alun กับ Smith ออกจากกัน โดยการแทรก Line Feed ลงไป

ถ้าผมทำอีกแบบมันจะไม่ตัดคำนะครับ ตามรูปแบบล่างนี้ (คือไม่ให้มี space นะครับ)

a,b,c,d,e,f,g,........,Alun-Smith,D,E,G,F,A,O+

ผมส่งเข้าเมล์แบบง่ายๆ คือ ส่งเป็นรูปแบบ message น่ะครับ แล้วเวลาผมจะเอาไปใช้ ก็ทำการ copy บรรทัดนั้นไปแปะไว้ใน .CSV เพื่อให้ Excel ทำการ import เพื่อทำรายงานต่อไป ไม่เข้าใจว่าตัว หรือว่าตัว Squirrel Mail มันจัดการ... ไม่แน่ใจเหมือนกันแหะ ผมจะลองไปหาดู option ของ Squirrel Mail อีกทางครับ ถ้าเป็นปัญหาจาก Squirrel Mail รูปแบบนี้ผมคงไม่สามารถใช้ได้ คงต้องให้มัน ส่งมาเป็น text file ไปเลย แต่ทำยังไงหว่า เพราะเข้าใจแค่ให้มัน create text file บน server แต่ไม่รู้ว่าถ้าจะให้มันทำในลักษณะ write ในหน่วยความจำแล้ว attach ออกมาในเมล์เลย โดยไม่ต้อง create text file บน server
nungs
phpBBThailand Jr. Member
phpBBThailand Jr. Member
โพสต์: 10
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

รู้สึกว่าจะเจอตัวปัญหาแล้วหลังจากไปดูคู่มือ PHP

โพสต์ โดย nungs »

คำว่า Wordwarp ก็คือแทรก /n (New line) ผมก็เลยนึกได้ว่า ใน squirrel น่าจะมี option นี้ เพราะมันเป็นอีเมล์ น่าจะช่วยปรับแต่งให้ผู้ใช้อ่านข้อมูลง่ายๆ

พอไปหาดู ก็เจอเลยครับ

การแสดงจดหมาย และการเขียนจดหมาย
Wrap Incoming Text At: 86

ตรงประเด็นเลยครับคือ ต่อให้ส่ง message มาเท่าไรก็ตาม ถ้ายาวกว่า 86 มันจะตัดตรง space ลงโดยอัตโนมัตื

ว่าแต่ว่าถ้าจะให้มันส่งเป็น text file แล้ว attach มากับ email นี่ ต้อง create file บน server ก่อนใช่ไหมครับ หรือว่ามีหนทางให้มัน create ในหน่วยความจำก่อนแล้วส่งมาได้เลย เพราะไม่อยากเปิด permission น่ะครับ

ขอบคุณ คุณ Mindphp มากครับ อยากเรียนกับคุณ MindPHP เรื่อง OOP Idea แต่ก็หาโอกาสไม่ได้สักที ไว้จะหาโอกาสโทรไปหาใหม่ครับ
mindphp
phpBBThailand VIP Members
phpBBThailand VIP Members
โพสต์: 2269
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

โพสต์ โดย mindphp »

ถ้า ต้อง การ แค่ ให้มันส่งเมล
ผมแนะนำให้ เก็บ ลง ฐานข้อมูล ก่อนครับ
แล้วส่งเป็น link ไป แล้ว ให้เค้าคลิกกลับ มา
โดย link file ที่ส่งไป เรา เขียน ให้ gen xls หรือ csv ให้ แบบนี้ น่าจะตรงประเด็นนะครับ
สร้างไฟล์ pdf online
ท่องเที่ยว http://www.thailandhotelforums.com/" onclick="window.open(this.href);return false;
สอน php http://www.mindphp.com/" onclick="window.open(this.href);return false;
nungs
phpBBThailand Jr. Member
phpBBThailand Jr. Member
โพสต์: 10
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

ขอบคุณมากครับ คุณ MindPHP

โพสต์ โดย nungs »

ขอบคุณมากครับ จะลองดูครับ ยังไม่เคยให้มัน Gen ออกเป็น file เลยครับ :P
mindphp
phpBBThailand VIP Members
phpBBThailand VIP Members
โพสต์: 2269
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

โพสต์ โดย mindphp »

ครับ ลองดู ครับ ดีกว่า ต้องให้ user ต้องมา copy ข้อความไปวาง ครับ
ถ้ายังไม่ได้ ลองดูใน บทความนะครับ ผมเคยเขียนแนะนำเรื่องนี้ ไว้ :-D
สร้างไฟล์ pdf online
ท่องเที่ยว http://www.thailandhotelforums.com/" onclick="window.open(this.href);return false;
สอน php http://www.mindphp.com/" onclick="window.open(this.href);return false;
ตอบกลับโพส

ย้อนกลับไปยัง

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

กำลังดูบอร์ดนี้: 225 และ บุคคลทั่วไป 0 ท่าน