Jump to content

Help with Script


no1uno

Recommended Posts

Hello all

I am new here (and new to PHP, but trying to learn) and would like to ask if anyone can please help me with a script.
I will need to go off the track for a second to explain what I need.

I have an email server running on my server to give my members email addresses (hmailserver) and currently I need to set them up manually.
I wanted a script so that users can create thier own account, and I found one on the hmailserver forum.

Now back to the help I need. The script (below) works fine except that I have 3 domains setup in the MySQL database and the script pulls up all 3 for ther to to choose from when I only want 1 domain available. Can someone see if the script be amended to show only one domain?

Thanks in advance.

[code]<?php
// HMailServer New user signup Script Configuration

die("You have to configure the script first"); // <- remove this line

$dbhost = "localhost";  // host of the MySQL database
$dbuser = "root";      // Database username
$dbpassword = "";  // Your database password
$dbname = "hmail";      // the name of the database that has the hmailserver tables
$webmailurl = "http://www.yurdomainname.com/webmail/login.php"; // The url to login in the webbased mail system
$quota = "50"; // The mailbox free space

// Get the action
if (strlen($_POST["pas1"]) <= 4 && IsSet($_POST["pas1"])) {
$error .= "<centeR>Error: Your password must be longer than 4 characters</center>";
}
else if ($_POST["pas1"] == "12345" && IsSet($_POST["pas1"])) {
$error .= "<centeR>Error: Too simple password</center>";
}

if (IsSet($_POST["action"])) {
$action = $_POST["action"];
} else {
$action = $_GET["action"];
}

// If there is no action, open the page for a new registration

if (!IsSet($action)) {

// Load the domain names and their ids into a variable

$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbname);
$result = mysql_query("SELECT * FROM hm_domains WHERE domainactive = '1' ", $db);
$domains = "<select name=\"domain\">";
while ($row = mysql_fetch_array($result)) {
$domainid = $row['domainid'];
$domainname = $row['domainname'];
$domains .= "\n<option value=\"$domainid\">$domainname</option>";
}
$domains .= "\n</select>";
mysql_close();

echo "
<center><b>Open a new E-Mail Account</b>
<p>
(*) fields are reguired.<br>
<form action=\"\" name=\"registration\" method=\"post\">
<table border=\"0\">
<tr>
<td>* Username: <td><input type=\"text\" name=\"username\">@<td>$domains<tr>
<td>* Password: <td><input type=\"password\" name=\"pas1\"><Td><tr>
<td>* Password again: <td><input type=\"password\" name=\"pas2\"><Td><tr>
<td><td>
<input type=\"hidden\" name=\"action\" value=\"register\">

<input type=\"Submit\" value=\"Signup\"><td><tr></td></tr>
</table>";
}
else if ($action == "register") {

$domainid = $_POST["domain"];
$username = $_POST["username"];
$pas1 = $_POST["pas1"];
$pas2 = $_POST["pas2"];
//$firstname = $_POST["firstname"];
//$lastname = $_POST["lastname"];

if ($username == NULL) {
$error = "Error: You have to enter your desired username\n";
}
if ($domainid == NULL) {
$error .= "Error: You have to choose a domain\n<Br>";
}
if ($pas1 == NULL) {
$error .= "Error: You have to enter your password\n<Br>";
}
if ($pas1 != $pas2) {
$error .= "Error: Your passwords does not match\n<Br>";
}
//if ($firstname == NULL)  {
//$error .= "Error: You have to enter your first name\n<Br>";
//}
//if ($lastname == NULL)  {
//$error .= "Error: You have to enter your last name\n<Br>";
//}
//Check if the user exists for that domain
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbname);
$result = mysql_query("SELECT * FROM hm_domains WHERE domainid = '$domainid' ", $db);
$result = @mysql_fetch_array($result);
$address = $username . "@" . $result['domainname'];
$result = mysql_query("SELECT * FROM hm_accounts WHERE accountaddress = '$address' ", $db);
$result = @mysql_fetch_array($result);
if ($result['accountid'] != "") {
$error .= "Error: The E-Mail address $address is already registered, please coose another username or domain\n<Br>";
mysql_close();
}


if (IsSet($error)) {
echo "<Center>Oops, There was some errors, please submit the form again<br>";
echo $error;

}
else {

// Insert the new user infos
$passwd = md5($pas1);
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbname);
$query = "INSERT INTO hm_accounts (accountaddress, accountdomainid, accountadminlevel, accountpassword, accountactive, accountisad, accountmaxsize, accountpwencryption, accountvacationmessageon) VALUES ('$address','$domainid','0','$passwd','1','0','$quota','2','0')";
mysql_query($query) or die("Error: Can not query to the database");
mysql_close();

echo "<center><B>Completed!</b>
<br><br>
You have created an email account with us! you can use the E-Mail services
eather by pop3/imap or by using the webmail system.
<p>Please <A href=\"$webmailurl\">Login</a> to read or to send emails
<p>Thank you $username for joining us";

}
}

echo "<center><p><em><font size=\"2\">Powered by <a target=\"hmail\" href=\"http://www.hmailserver.com\">HMailServer</a> @ All rights reserved</em></font></centeR>";
?>[/code]
Link to comment
Share on other sites

read the what..the where??  ???
Sorry I'm not sure of your response. I would have expected changes could be made in this part of the script:
[code]// Load the domain names and their ids into a variable

$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbname);
$result = mysql_query("SELECT * FROM hm_domains WHERE domainactive = '1' ", $db);
$domains = "<select name=\"domain\">";
while ($row = mysql_fetch_array($result)) {
$domainid = $row['domainid'];
$domainname = $row['domainname'];
$domains .= "\n<option value=\"$domainid\">$domainname</option>";
}
$domains .= "\n</select>";
mysql_close();[/code]
Link to comment
Share on other sites

you need to set up actual e-mail acounts as opposed to just a user registartion...

read this section of the manual [url=http://uk.php.net/manual/en/ref.imap.php]http://uk.php.net/manual/en/ref.imap.php[/url]
and more specifically this page [url=http://uk.php.net/manual/en/function.imap-createmailbox.php]http://uk.php.net/manual/en/function.imap-createmailbox.php[/url]
Link to comment
Share on other sites

if all you want to have as an option is one domain name, then remove the whole query to select the domain names, and the while statement that builds the vars with the data, and simply assign the domain info manually. for example, instead of

$domainid = 1; //might not even need this var if you just have 1
$domainname = 'blah';

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.