Javascript 提交表单时创建用户

Javascript 提交表单时创建用户,javascript,php,html,mysql,joomla,Javascript,Php,Html,Mysql,Joomla,不幸的是,这个问题相当具体,因为我可能/可能不需要Joomla!这方面的专家可以帮助我(希望我没有,有良好php/mysql知识的人可以提供帮助) -我不得不把我的代码放在pastebin中,因为文件太大了,我不想让代码充斥这个页面 因此,让我来解释一下表单的作用:它允许用户在选定的业务类型下创建一个列表,但我需要实现的是,一旦提交表单,它将在“已注册”的ACL下创建一个用户,并随机为他们生成一个密码表单。用户名将是他们提供的电子邮件。这些信息也会被发送到提供的电子邮件中 我已经四处寻找帮助好几

不幸的是,这个问题相当具体,因为我可能/可能不需要Joomla!这方面的专家可以帮助我(希望我没有,有良好php/mysql知识的人可以提供帮助)

-我不得不把我的代码放在pastebin中,因为文件太大了,我不想让代码充斥这个页面

因此,让我来解释一下表单的作用:它允许用户在选定的业务类型下创建一个列表,但我需要实现的是,一旦提交表单,它将在“已注册”的ACL下创建一个用户,并随机为他们生成一个密码表单。用户名将是他们提供的电子邮件。这些信息也会被发送到提供的电子邮件中

我已经四处寻找帮助好几天了(通常是一天中几小时左右),但由于问题如此具体,我没有遇到任何明确的问题


任何能为我指明正确方向的帮助/指点/参考都将不胜感激!提前谢谢。

类似的东西。。但你明白了:

HTML代码:

<html>
<head>
<title>Registration </title>
</head>
<body>
<form name="reg_form" id="reg_form" method="post" action="confirm.php">
<table>
<tr><td colspan="2"><?php echo isset($_GET["msg"])?$_GET["msg"]:"";?> </td></tr>
<tr><td>Username</td><td><input type="text" name="username" id="username" /> </td></tr>
<tr><td>Password</td><td><input type="password" name="password" id="password" /> </td></tr>
<tr><td>confirm</td><td><input type="password" name="confirm" id="confirm" /> </td></tr>

<tr><td></td><td><input type="submit" name="btnsubmit" id="btnsubmit" /></td></tr>
</table>
</form>
</body>
</html>

登记
用户名
暗语
证实
提交表单时执行的PHP代码

<?php

$username=isset($_POST["username"])?$_POST["username"]:"";

$password=isset($_POST["password"])?$_POST["password"]:"";

$confirm=isset($_POST["confirm"])?$_POST["confirm"]:"";

if(!empty($username)&&!empty($password)){

if($password!=$confirm)
header("location:registration.php?msg=Password does not be match.");

$host="localhost";

$user="mysql_user_name";

$pass="mysql_password";

///open connection
$link=mysql_connect($host,$user,$pass) or die(mysql_error());

mysql_select_db("databse_name",$link);

$query="SELECT * FROM users WHERE username='".mysql_escape_string($username)."'";

$result=mysql_query($query);

//count no of rows
$count=mysql_num_rows($result);

if($count==1){
header("location:registration.php?msg=username already exists");
}else{

$qry="INSERT INTO users(username,password)VALUES('".mysql_escape_string($username)."'
,'".mysql_escape_string($password)."')";

mysql_query($qry);

//Sending mail part goes here

echo "You are successfully registered.";
}

mysql_close($link);
}else{
header("location:registration.php?msg=Username or password cannot be blank.");
}
试试这个

假设您的提交页面不是joomla ie的一部分,在joomla框架之外

步骤1:

  Include Joomla Frame work

define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(__FILE__) );//this is when we are in the root
define( 'DS', DIRECTORY_SEPARATOR );

require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

$mainframe = JFactory::getApplication('site');
$mainframe->initialise();
$db = JFactory::getDBO();
步骤2:

Collect your Form fields data.
//Something like $user_email ,$password etc.
步骤3: 检查数据库中是否已存在用户名

             $sql ="SELECT * FROM #__users WHERE username ='$username'"; 
             $db->setQuery($sql);
     $db->query();
     if($db->getNumRows()>0){

             $mainframe->redirect("url","error msg","error");
             }
            else{
                     jimport('joomla.user.helper');
         $salt = JUserHelper::genRandomPassword(32);
         $crypt = JUserHelper::getCryptedPassword($password, $salt);
         $password = $crypt.':'.$salt;
         //Data to login table
         $sql= "INSERT INTO #__users(username,email,lastvisitDate,registerDate,block,sendEmail,password,name,params,) values('$user_email','$user_email','$now','$now',0,0,'$password','$full_name','{}')";
         $db->setQuery($sql);
         $db->query();
         $last_inserted_id = $db->insertid();
                     //User group tabe normally group id for registered user is 2 other wise you have to check that too
         $sql= "INSERT INTO #__user_usergroup_map(user_id,group_id) values('$last_inserted_id',2)";
         $db->setQuery($sql);
         $db->query();

              //Finally send a mail to user if required.
             JUtility::sendMail(mailfrom, fromname, $user_email, $emailSubject, $email_body,true);
}

希望它有意义。

这可能会对您有所帮助:检查:&PHP的mysql_*函数已被弃用。我不会在这样的新项目中使用它们。这是针对Joomla的,不是定制PHP