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 > ขอแนวทางโค้ดแก้ไขข้อมูลสมาชิก PHP+TPL หน่อยครับ จนปัญญาครับ T^T



 

ขอแนวทางโค้ดแก้ไขข้อมูลสมาชิก PHP+TPL หน่อยครับ จนปัญญาครับ T^T

 



Topic : 053264

Guest




อยากได้แนวทางการเขียนโค้ดแก้ไขข้อมูลครับ โดยมีทั้ง PHP+TPL

ซึ่ง TPL ผมจะเอาเป็นรูปแบบที่แสดงออกมา(เอามาแทนที่ html) ครับ

อยากได้ประมาณแบบนี้ครับ

ชื่อผู้ใช้: แสดงแค่ชื่อผู้ใช้ออกมา
รหัสผ่านใหม่: เป็น textbox ให้ใส่
ยืนยันรหัสผ่านใหม่: เป็น textbox ให้ใส่
อีเมล์ : แสดงอีเมล์ของผู้ใช้ออกมา (edit) << เมื่อคลิกตรง edit จะสามารถแก้ไขอีเมล์ได้

รหัสผ่านเก่า: เป็น textbox ให้ใส่

ปุ่มบันทึก ปุ่มรีเซ็ต

ข้อมูลคร่าวๆจะมีประมาณนี้ครับ อัพลงฐานข้อมูลด้วยนะครับ เชื่อมโยงจากโค้ดล็อคอินกับสมัครสมาชิก(ไม่รู้ว่าควรจะเชื่อมโยงมั้ย)

ขอบคุณมากครับ เอาแค่แนวทางก็ได้ครับ ผมคิดไม่ออก แหะๆ หรือถ้าพี่ๆใจดี ก็ช่วยผมหน่อยนะครับ



Tag : PHP, MySQL, CakePHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-12-16 16:40:56 By : เวลานาที View : 1618 Reply : 7
 

 

No. 1



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

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

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


ถ้าหาก php เพียว ๆ ง่าย ๆ ใช้กับ smarty นิดหน่อย

ให้แนวทางนะครับตามที่ท่านขอ หากไม่ไหว เดี๋ยวจะมาพูดเชิงลึกอีกที

โดย assume ว่า ท่าน ได้เข้าใจถึงการ config smarty มาแล้วนะครับ

1. ใน php new smart ปกติ
2. ใน php assign ค่าให้กับ smarty (หากต้องการข้อมูลส่งออกไปให้ smarty)
3. ใน php เรียก display template (สมมติชื่อ 1.tpl)

4. สร้าง form ด้วย html ที่ท่าน คุ้นเคย
5. หากมีตัวแปรที่ส่งมาจากข้อ 2 ก็เรียกใช้ได้โดย {ตัวแปร}


จะเห็นว่า form ที่ท่านต้องการทุกอย่าง เขียนด้วย html ทั้งหมด
ไม่ได้เกี่ยวว่า ไฟล์จะลงท้ายด้วย tpl หรือไม่ (ตอนเรียกแค่เรียกให้ถูก ในข้อ 3)

การ get post ส่งค่าไปมา ก็ทำตามกระบวนการที่ท่านคุ้นเคยครับ

ปล ครับ
จริง ๆ แล้ว tpl ไม่ได้นำมาแทนที่ html อย่างที่ท่านเข้าใจ
เพียงแต่ tpl จะช่วยแยก presentation layer ออกจาก business layer ครับ
ทำให้ไม่ต้องแทรก php ใน html หรือ html ใน php






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-16 17:13:00 By : triplea
 


 

No. 2

Guest


ขอบคุณครับ แต่ก็ยัง งงๆ --* หรือผมโง่ 555

คือ ผมจะทำแบบ PHP+TPL โดยไม่มี html เรยหน่ะครับ

เพราะงั้นข้อ 4 ผมต้องร่าง tpl มาถูกรึเปล่าครับ

อันนี้ผมเอาโค้ดมาให้ดูครับ อาจมั่วไปนิด รบกวนดูให้หน่อยนะครับ
(ยังไม่เสร็จสมบูรณ์นะครับ เพิ่งลองจับผิดจับถูก ยังไม่ค่อยเก่งแบบนี้ครับ T^T)

changepass.tpl
{include file="header.tpl"}
<div id="subpage">
<h1>Edit Account</h1>
<p id="links"><a href="{$url->url_base}/home"> My URLs </a> | <a href="{$url->url_base}/changepass"> Edit Account </a>{if isset($smarty.session.is_admin)} | <a href="{$url->url_base}/admin"> Site Admin </a>{/if}</p>
<div id="login" class="clearfix">
{if $error == '1'}<center><span style="color:red;">{$error_message}</span></center>{/if}
{if $success == '1'}<center><span style="color:green;">Account Has Been Successfully Updated.</span></center>{/if}
<form action="{$url->url_base}/changepass" method="post">
<label for="username">Username:</label>
<input name="username" id="$username" siaze="30" type="text" value="{'username'}" readonly />
<input type="hidden" name="username" value="{'username'}" />
<label for="email">Email</label>
<input name="email" id="email" size="30" type="text" />
<label for="current_pass">Current Password:</label>
<input name="current_pass" id="current_pass" size="30" type="password" />
<label for="new_pass">New Password:</label>
<input name="new_pass" id="new_pass" size="30" type="password" />
<label for="new_pass2">Confirm New Password:</label>
<input name="new_pass2" id="new_pass2" size="30" type="password" />
<hr>
<input value="Edit Account" type="submit" />
<input type="hidden" name="task" value="editacount" />
</form>
</div>
</div>
<div class="divider"></div>


changepass.php
<?php

/** include header **/
include("header.php");

/** set page name **/
$page = 'changepass';

/** reset error & success vars **/
$error = 0;
$error_message = '';
$success = 0;

/** get value **/
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);

/** change password **/
if(isset($_POST['task']) && $_POST['task'] == 'changepass')
{
/** get users curret information **/
$user = @mysql_fetch_array(@mysql_query("SELECT * FROM members WHERE id = '".$userid."' LIMIT 1"));

/** get current password **/
$current_pass = $user['password'];

/** get new password **/
$new_pass = $_POST['new_pass'];

/** check if new passwords match **/
if($new_pass != $_POST['new_pass2'])
{
$error = 1;
$error_message = 'New passwords don\'t match.';
}else

/** check old password **/
if($current_pass != sha1($_POST['current_pass']))
{
$error = 1;
$error_message = 'Current password does not match one on file.';
}else

/** check for empty fields **/
if(empty($_POST['current_pass']) || empty($_POST['new_pass']) || empty($_POST['new_pass2']))
{
$error = 1;
$error_message = 'Please fill all required fields.';
}else

/** no error?, update password **/
if($error != 1)
{
/** sha1 password **/
$new_pass = sha1($new_pass);

/** update password **/
mysql_query("UPDATE members SET password = '".mysql_real_escape_string($new_pass)."' WHERE id = '".$userid."'");

/** set success **/
$success = 1;
}
}

/** include footer **/
include("footer.php");

?>



chagepass.tpl.php
<?php /* Smarty version 2.6.26, created on 2010-10-11 15:40:30
compiled from changepass.tpl */ ?>
<?php $_smarty_tpl_vars = $this->_tpl_vars;
$this->_smarty_include(array('smarty_include_tpl_file' => "header.tpl", 'smarty_include_vars' => array()));
$this->_tpl_vars = $_smarty_tpl_vars;
unset($_smarty_tpl_vars);
?>
<div id="subpage">
<h1>Edit Account</h1>
<p id="links"><a href="<?php echo $this->_tpl_vars['url']->url_base; ?>
/home"> My URLs </a> | <a href="<?php echo $this->_tpl_vars['url']->url_base; ?>
/changepass"> Edit Account </a><?php if (isset ( $_SESSION['is_admin'] )): ?> | <a href="<?php echo $this->_tpl_vars['url']->url_base; ?>
/admin"> Site Admin </a><?php endif; ?></p>
<div id="login" class="clearfix">
<?php if ($this->_tpl_vars['error'] == '1'): ?><center><span style="color:red;"><?php echo $this->_tpl_vars['error_message']; ?>
</span></center><?php endif; ?>
<?php if ($this->_tpl_vars['success'] == '1'): ?><center><span style="color:green;">Account Has Been Successfully Updated.</span></center><?php endif; ?>
<form action="<?php echo $this->_tpl_vars['url']->url_base; ?>
/changepass" method="post">
<label for="username">Username:</label>
<input name="username" id="$username" siaze="30" type="text" value="<?php echo '$username'; ?>
" readonly />
<input type="hidden" name="username" value="<?php echo '$username'; ?>
" />
<label for="email">Email</label>
<input name="email" id="email" size="30" type="text" />
<label for="current_pass">Current Password:</label>
<input name="current_pass" id="current_pass" size="30" type="password" />
<label for="new_pass">New Password:</label>
<input name="new_pass" id="new_pass" size="30" type="password" />
<label for="new_pass2">Confirm New Password:</label>
<input name="new_pass2" id="new_pass2" size="30" type="password" />
<hr>
<input value="Edit Account" type="submit" />
<input type="hidden" name="task" value="editacount" />
</form>
</div>
</div>
<div class="divider"></div>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-16 17:28:03 By : เวลานาที
 

 

No. 3



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

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

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


Quote:
คือ ผมจะทำแบบ PHP+TPL โดยไม่มี html เรยหน่ะครับ


อันนี้ ผิด ครับ (คำว่า 'เรย' ผิด ต้องเป็น 'เลย')
ข้อมูลที่แสดงบนหน้าเว็บจะถูก generate เป็น HTML
หากไม่มี tag ml แล้ว เราจะไม่สามารถจัดหน้าเอกสารได้

จากการ "กวาด" สายตา ดูโค้ดแบบผ่าน ๆ
แสดงให้เห็นแล้วว่า ท่านเข้าใจว่าต้องใช้ smarty ยังไง เพียงแต่ไม่เข้าใจใน template system เท่าไหร่

ให้ผมอ่านโค้ดทุกบรรทัดคงไม่ไหว เพราะอ่านยากเหลือเกิน format ไม่เหมาะแก่การอ่านเท่าไหร่

ลองเอา แค่สว่นที่ท่านคิดว่าติดปัญหา มาดูกันครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-16 17:41:09 By : triplea
 


 

No. 4

Guest


ครับ ขออภัยด้วยครับ บังเอิญติดแบบนั้น - -*

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

หรือว่าผมต้องเพิ่มโค้ดอะไรในไฟล์ changepass.php อีกไหมครับ


<label for="username">Username:</label>
<input name="username" id="$username" siaze="30" type="text" value="{'username'}" readonly />
<input type="hidden" name="username" value="{'username'}" />



<label for="username">Username:</label>
<input name="username" id="$username" siaze="30" type="text" value="<?php echo '$username'; ?>
" readonly />
<input type="hidden" name="username" value="<?php echo '$username'; ?>
" />

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-16 20:19:41 By : เวลานาที
 


 

No. 5



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

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

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


หากการ assign ค่าในไฟล์ php ที่เรียก template นี้ถูกต้อง

แต่โค้ดที่ให้มาไม่พบการ assign ค่า ครับ

ซึ่งปกติจะเป็น

Code
$smarty = new Smarty();
//assign dir ให้ถูก

$smarty->assign('username','ค่าที่ต้องการ');
$smarty->display('เทมเพลทที่ต้องการ');


และที่ template ท่านต้อง ใช้
Code
{$username}

นั่นคือ มี $ ด้วยครับ

แต่เท่าที่ดูจากโค้ด
ไม่พบการ ทำงาน ดังกล่าวครับ

ลองตรวจสอบดูอีกทีครับผม


ปล. แนะนำ blog เปิดใหม่ (ๆ) ภาษาบ้าน ๆ ที่ http://my.bugdevelopers.com
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-16 20:42:37 By : triplea
 


 

No. 6

Guest


ขอบคุณครับ

ผมต้อง assign ค่า ใน .php ถูกต้องไหมครับ ยังงงๆอยู่

ส่วน $ ลองใส่ดูแล้ว ยังไม่ขึ้น สงสัยต้อง assign ค่า = ="

ขอบคุณมากๆครับ สำหรับความช่วยเหลือ ลองเข้าไปดูบล๊อคแล้วครับ สวยดี ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-16 21:14:04 By : เวลานาที
 


 

No. 7

Guest


เพิ่งจะเข้าใจก็วันนี้ ฮ่าๆๆๆ ขอบคุณมากครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-04 14:21:20 By : เวลานาที
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอแนวทางโค้ดแก้ไขข้อมูลสมาชิก PHP+TPL หน่อยครับ จนปัญญาครับ T^T
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 อัตราราคา คลิกที่นี่