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 mysql เพื่อเก็บข้อมูลลง db ใน Roundcube Webmail หน่อยครับ



 

ขอคำแนะนำ การเขียน php mysql เพื่อเก็บข้อมูลลง db ใน Roundcube Webmail หน่อยครับ

 



Topic : 097127



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

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

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




อยากทราบว่าถ้าต้องการเขียน

คำสั่ง insert ข้อมูล ลง db จาก form ใน Roundcube Webmail ผมจะเขียนยังไงดีครับ

เนื่องจากอยากเก็บข้อมูลเพิ่มเติมตอนสมัคร email

รบกวนขอคำแนะนำ หรือตัวอย่าง code หน่อยครับ...


ขอบคุณครับ



Tag : PHP, MySQL, Ajax







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-06-27 17:46:38 By : pokultra View : 964 Reply : 3
 

 

No. 1



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

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

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

Roundcube มันมี Table ของมันเองนี่ครับ da_roundcube






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-27 21:39:59 By : mr.win
 


 

No. 2



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

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

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


Code (PHP)
<roundcube:object name="doctype" value="html5" />
<html>
<head>
<title>
<roundcube:object name="pagetitle" />
</title>
<roundcube:include file="/includes/links.html" />
</head>
<body>
<div id="logodiv">
  <roundcube:object name="logo" src="/images/roundcube_logo.png" id="logo" border="0" alt="Logo" />
</div>
<div id="login-form">
  <div class="box-inner">
    <div class="boxtitle">
      <roundcube:label name="register.sign_up" />
    </div>
    <br />
    <form name="registerform" action="./?_action=register" method="post">
      <input type="hidden" name="_user" value="" />
      <input type="hidden" name="_action" value="login" />
      <input type="hidden" id="rcmlogintz" name="_timezone" value="_default_" />
      <input type="hidden" name="_url" value="_task=mail" />
      <input type="hidden" name="_host" value="<roundcube:var name="config:default_host" />
      " />
      <input type="hidden" name="_login_lang" value="<roundcube:var name="session:language" />
      " />
      <table>
        <roundcube:object name="domaingroups" />
        <tr>
          <td align="right" class="title"><roundcube:label name='register.email' /></td>
          <td class="input"><input size="15" class="focus" name="_username" autocomplete="off" type="text" value="<roundcube:var name='request:_username' />"></td>
          <td class="title"><span>&nbsp;@</span>
            <roundcube:object name="domainselector" /></td>
        </tr>
        <tr>
          <td align="right" class="title"><roundcube:label name='register.password' /></td>
          <td class="input"><input size="15" name="_pass" type="password"></td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td align="right" class="title" nowrap><roundcube:label name='register.confirm_password' /></td>
          <td class="input"><input size="15" name="_confirm_pass" type="password"></td>
          <td>&nbsp;</td>
        </tr>
      </table>
      <roundcube:object name="insertcaptcha" />
      <p style="text-align:center;">
        <roundcube:button command="plugin.register-save" id="register_submit" type="input" class="button mainaction" label="register.sign_up" />
        <span>&nbsp;</span>
        <input onClick="document.location.href='./'" type="button" class="button" value="<roundcube:label name='register.back' />" />
      </p>
    </form>
  </div>
  <div class="box-bottom">
    <roundcube:object name="message" id="message" />
  </div>
</div>
<script type="text/javascript">
  var d = new Date();
  document.getElementById("rcmlogintz").value = (d.getTimezoneOffset() / 60) * -1;
</script>
</body>
</html>




Code (PHP)
<?php
# 
# This file is part of Roundcube "register" plugin.
# 
# Your are not allowed to distribute this file or parts of it.
# 
# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# 
# Copyright (c) 2012 - 2013 Roland 'Rosali' Liebl - all rights reserved.
# dev-team [at] myroundcube [dot] com
# http://myroundcube.com
# 
class register extends rcube_plugin{var$task='login|logout|settings';var$noframe=true;static private$plugin='register';static private$author='[email protected]';static private$authors_comments='NOTE: If you use global_config plugin, you have to configure the driver in global_config\'s configuration.<br />News: cPanel xmlapi driver<br /><a href="http://myroundcube.com/myroundcube-plugins/register-plugin" target="_new">Documentation</a>';static private$download='http://myroundcube.googlecode.com';static private$version='2.7.9.2';static private$date='27-05-2013';static private$licence='All Rights reserved';static private$requirements=array('Roundcube'=>'0.7.1','hMailserver'=>'5.2','PHP'=>'5.2.1','recommended_plugins'=>array('taskbar'=>'config'),);static private$prefs=null;static private$config_dist='config.inc.php.dist';function init(){$A=rcmail::get_instance();if(!in_array('global_config',$A->config->get('plugins'))){$this->load_config();if($J=$A->config->get('register_driver',false)){if(file_exists("./plugins/register/drivers/$J/config.inc.php")){$this->load_config("drivers/$J/config.inc.php");}}else{return;}}$this->add_texts('localization/',true);$this->include_script('register.js');$this->add_hook('startup',array($this,'register_form'));$this->add_hook('template_object_domaingroups',array($this,'register_domain_groups'));$this->add_hook('template_object_domainselector',array($this,'register_domain_selector'));}static function about($R=false){$L=self::$requirements;foreach(array('required_','recommended_')as$M){if(is_array($L[$M.'plugins'])){foreach($L[$M.'plugins']as$I=>$S){if(class_exists($I)&&method_exists($I,'about')){$Z=new$I(false);$L[$M.'plugins'][$I]=array('method'=>$S,'plugin'=>$Z->about($R),);}else{$L[$M.'plugins'][$I]=array('method'=>$S,'plugin'=>$I,);}}}}$V=array();if(is_string(self::$config_dist)){if(is_file($a=INSTALL_PATH.'plugins/'.self::$plugin.'/'.self::$config_dist))include$a;else write_log('errors',self::$plugin.': '.self::$config_dist.' is missing!');}$E=array('plugin'=>self::$plugin,'version'=>self::$version,'date'=>self::$date,'author'=>self::$author,'comments'=>self::$authors_comments,'licence'=>self::$licence,'download'=>self::$download,'requirements'=>$L,);if(is_array(self::$prefs))$E['config']=array_merge($V,array_flip(self::$prefs));else$E['config']=$V;if(is_array($R)){$W=array('plugin'=>self::$plugin);foreach($R as$B){$W[$B]=$E[$B];}return$W;}else{return$E;}}function register_form($F){if($_GET['_action']!='register'){return$F;}if(isset($_GET['_ajax'])){$this->register_ajax();}$A=rcmail::get_instance();$Q=$A->config->get('skin');if(!file_exists("plugins/register/skins/$Q/register.css"))$Q="default";$this->include_stylesheet('skins/'.$Q.'/register.css');$A->output->add_script("var password_min_length = '".$A->config->get('password_min_length')."';");if(!$_SESSION['captcha_solved'])$A->config->set('captcha_auth',true);$A->output->send("register.register");exit;}function register_ajax(){$A=rcmail::get_instance();if(isset($_POST['_username'])&&!empty($_POST['_username'])&&isset($_POST['_domain'])&&!empty($_POST['_domain'])&&isset($_POST['_pass'])&&!empty($_POST['_pass'])){foreach($_POST as$B=>$G){$_POST[$B]=trim($G);}$b=strtolower($_POST['_username']);$Y=array_flip($A->config->get('disallowedaccounts'));if(isset($Y[$b])){echo"error:register.disallowedaccount:_username";exit;}$N=strtolower($_POST['_username'])."@".strtolower($_POST['_domain']);$A=rcmail::get_instance();$J=$A->config->get('register_driver');if(file_exists("./plugins/register/drivers/$J/driver.inc.php"))require_once("./plugins/register/drivers/$J/driver.inc.php");else die("Plugin Register: Self Registration Driver not found");if(rcube_register_user_exists($N)){echo"error:register.userexists:_username";exit;}if(rcube_register_alias_exists($N)){echo"error:register.userexists:_username";exit;}$X=$_POST['_pass'];$E=rcube_register_new_imap_user($N,$X);if($E===true){if(class_exists('correo')){correo::save($this->getVisitorIP());}echo"ok:$N";}else if($E===false){echo"error:register.createuserfailed:_username";}else{echo"error:$E:_username";}exit;}else{echo"error:register.failure:_username";}exit;}function register_domain_groups($F){$A=rcmail::get_instance();$D=$A->config->get('webadddoms');if(count($D)<=1)return$F;$P="";if(isset($_GET['_group'])){$P=trim(urldecode($_GET['_group']));}else if(isset($_POST['_group'])){$P=trim($_POST['_group']);}$C="<tr>\n<td class=\"title\" nowrap>".$this->gettext('register.domain_groups')."</td>\n<td>\n";$C.="\n".'<select id="sel_group" name="_group" onchange="javascript:register_change_group()">'."\n";foreach($D as$B=>$G){if($P==$B){$U="selected";}else{$U="";}$C.="\t<option $U value=\"$B\">$B</option>\n";}$C.="</select>\n</td>\n</tr>\n";$F['content']=$C;return$F;}function register_domain_selector($F){$A=rcmail::get_instance();$D=$A->config->get('webadddoms');if(isset($_GET['_group'])){$H=urldecode(trim($_GET['_group']));}else if(isset($_POST['_group'])){$H=trim($_POST['_group']);}else{foreach($D as$B=>$G){$H=$B;break;}}if(count($D[$H])<=1){$C="<input type=\"hidden\" name=\"_domain\" value=\"".$D[$H][0]."\" /><span>".$D[$H][0]."</span>";}else{$C="\n".'<select name="_domain">';foreach($D[$H]as$B=>$G){$C.="\t<option value=\"".$G."\">".$G."</option>\n";}$C.="</select>\n";}$F['content']=$C;return$F;}function getVisitorIP(){$c="/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/";if(isset($K["HTTP_X_FORWARDED_FOR"])&&!empty($K["HTTP_X_FORWARDED_FOR"])){$T=(!empty($K["HTTP_X_FORWARDED_FOR"]))?$K["HTTP_X_FORWARDED_FOR"]:((!empty($O['HTTP_X_FORWARDED_FOR']))?$O['HTTP_X_FORWARDED_FOR']:@getenv('HTTP_X_FORWARDED_FOR'));}else{$T=(!empty($K['REMOTE_ADDR']))?$K['REMOTE_ADDR']:((!empty($O['REMOTE_ADDR']))?$O['REMOTE_ADDR']:@getenv('REMOTE_ADDR'));}return$T;}}




Code (PHP)
/***************************************************************************
 * This file is part of Roundcube "##PLUGIN##" plugin.              
 *                                                                 
 * Your are not allowed to distribute this file or parts of it.    
 *                                                                 
 * This file is distributed in the hope that it will be useful,    
 * but WITHOUT ANY WARRANTY; without even the implied warranty of  
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.          
 *                                                                 
 * Copyright (c) 2012 - ##YEAR## Roland 'Rosali' Liebl - all rights reserved
 * dev-team [at] myroundcube [dot] com
 * http://myroundcube.com
 ***************************************************************************/

$(document).ready(function(){window.rcmail&&rcmail.addEventListener("init",function(){$("[name='_username']").select();rcmail.register_command("plugin.register-save",function(){var a=rcmail.set_busy(!0,"loading"),b;b=register(!1);rcmail.set_busy(!1,"loading",a);return b},!0)})});$(document).keypress(function(a){13==a.charCode&&$(".mainaction").trigger("click")});
function register(a){var b=$("[name='_username']"),e=$("[name='_domain']"),c=$("[name='_pass']"),f=$("[name='_confirm_pass']"),g=$("[name='_firstname']"),h=$("[name='_lastname']"),i=$("[name='_gender']"),j=$("[name='_country']"),k=$("[name='_birthday']"),l=b.val()+"@"+e.val();if(!rcube_check_email(l,!1))return $("input.focus:last").focus(),rcmail.display_message(rcmail.gettext("invalidemail","register"),"error"),!1;if(c.val().length<password_min_length)return c.select(),a=rcmail.gettext("passwordshort",
"register"),a=a.replace("%s",password_min_length),rcmail.display_message(a,"error"),!1;if(c.val()!=f.val())return f.select(),rcmail.display_message(rcmail.gettext("passwordnotmatch","register"),"error"),!1;if(!a&&"function"==typeof captchaValidate)return captchaValidate("register(true)"),!1;$.post("./?_action=register&_ajax=1",{_username:""+b.val()+"",_domain:""+e.val()+"",_pass:""+c.val()+"",_firstname:""+g.val()+"",_lastname:""+h.val()+"",_gender:""+i.val()+"",_country:""+j.val()+"",_birthday:""+
k.val()+""},function(a){if(0<a.length){var d=a.split(":"),c=d[0],a=d[1],d=d[2];if("ok"==c)register_login(a);else return"js"==c?(eval(a),b.val(repl),b.focus(),rcmail.display_message(rcmail.gettext("emailmodified","register"),"error")):(rcmail.display_message(rcmail.gettext(a,"register"),"error"),d&&$("[name='"+d+"']").select()),!1}});return!0}
function register_login(a){rcmail.display_message(rcmail.gettext("createusersuccess","register"),"confirmation");document.forms.registerform._user.value=a;document.forms.registerform.action="./";document.getElementById("register_submit").disabled="disabled";rcmail.set_busy(!0,"loading");window.setTimeout("document.forms.registerform.submit()","5000")}function register_change_group(){var a=$("[name='_group']");document.location.href=document.location.href+"&_group="+escape(a.val())};



Code (PHP)
// add user
function rcube_register_new_imap_user($user = "", $pass = ""){
  $user = strtolower($user);
  $temparr = explode("@",$user);
  $name = strtolower($temparr[0]);
  $domain = strtolower($temparr[1]);

  $name = rcube_register_trim_user($name, $domain);

  $rcmail = rcmail::get_instance();

  if ($dsn = $rcmail->config->get('db_dsnw_postfix')) {
    // #1486067: enable new_link option
    if (is_array($dsn) && empty($dsn['new_link']))
      $dsn['new_link'] = true;
    else if (!is_array($dsn) && !preg_match('/\?new_link=true/', $dsn))
      $dsn .= '?new_link=true';
    $db = new rcube_db($dsn, '', FALSE);
    $db->set_debug((bool)$rcmail->config->get('sql_debug'));
    $db->db_connect('w');
  } else {
    die("FATAL ERROR ::: RoundCube Plugin ::: register ::: " . $rcmail_config['db_dsnw_postfix'] . " undefined !!! ==> die");
  }

  if ($err = $db->is_error())
    return false;

  $strDomain = $arr['domainname'];
  $strUser = $name . "@" . $domain;
  $maildir = $domain . "/" . $name . "/";

  $query = "INSERT INTO mailbox ".
    "(username,".
    "password,".
    "name,".
    "maildir,".
    "quota,".
    "local_part,".
    "domain,".
    "created,".
    "modified,".
    "active) ".
    "VALUES (?, ?, ? , ?, ?, ?, ?,'" . date('Y-m-d H:i:s',time()) . "','" . date('Y-m-d H:i:s',time()) . "','1');";
  
  If($rcmail->config->get('pw_encryption', 'crypt') == 'crypt'){
    $pass = crypt($pass);
  }
  else{
    $pass = md5($pass);
  }
  $ret = $db->query($query, $strUser, $pass, $name, $maildir,
  $rcmail->config->get('mailbox_limit'), $name, $domain);

  $query = "INSERT INTO alias " .
    "(address,".
    "goto,".
    "domain,".
    "created,".
    "modified,".
    "active) ".
    "VALUES ( ?, ?, ? ,'" . date('Y-m-d H:i:s',time()) . "','" .
    date('Y-m-d H:i:s',time()) . "','1');";
  
  $sql = $db->query($query, $strUser, $strUser, $domain);
  $query = "SELECT * FROM mailbox WHERE username=?";
  $ret = $db->query($query, $strUser);
  if($ret){
    return true; // user successfully created
  }
  else{
    return false; // failed to create user
  }
}



คือผมอยากเขียน code เพื่อเพิ่ม เพื่อเก็บข้อมูลเพิ่มอีก 3 ฟิล คือ เบอร์โทร, email สำรอง โดยเก้บใน table ใหม่ที่สร้างเอง โดยมีการอ้างอิงจาก email ที่สมัครอ่ะครับ ไม่รู้จะเริ่มยังไง ติดตรงนี้มาเป็นอาทิตย์แล้วอ่ะครับ ขอความอนุเคราะห์หน่อยนะครับ



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-28 11:46:44 By : pokultra
 

 

No. 3



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

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

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



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-29 11:54:07 By : pokultra
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอคำแนะนำ การเขียน php mysql เพื่อเก็บข้อมูลลง db ใน Roundcube Webmail หน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 อัตราราคา คลิกที่นี่