Jump to content
Fórum Script Brasil
  • 0

Ajuda com php (cadastro banco de dados e criacao de email no cpanel)


unmeanings

Question

Ola galera boa noite, não sou muito bom em postar em foruns mais vou tentar especificar o melhor possivel o meu problema!

é o seguinte:

Eu estou criando um sistema de webmail para minha universidade este sistema funcionara da seguinte forma:

Pagina de Cadastro (O usuario vai preencher um formulario com dados como: nome, cpf, nome de usuario (para o email, por ex: o usuario vai colocar so o username o @xxx.com é inserido automatico), senha, confirmar senha, pergunta secreta e resposta secreta (para recuperar a senha). Bom esses dados vao para um banco de dados armazeno os seguintes dados vindo do formulario de cadastro: nome, cpf, email(já formatado: usuario@xxx.com), senha, pergunta e resposta, o motivo de eu querer armazenar estes dados no banco de dados e porque o sistema de webmail vai ter uma pagina para o professor que ira enviar emails para os alunos ai os recipientes vao vir do banco de dados.

Ate ai tudo bem, já criei o formulario de cadastro, já criei a tabela no bd, e o formulario já esta funcionando perfeitamente já esta armazenando todos os dados que eu quero no banco de dados.

So que agora eu preciso criar realmente o email no cpanel, e isso tem que ser de forma automatica para isso eu desenvolvi um sisteminha simples em php que cria emails no cpanel este sistema funciona da seguinte forma:

Usuario desejado: input text /@dominio.com.br

Senha: input text

button submit

somente isso! o usuario digita o nome de usuario para o email desejado, cria a senha e clika no botao submit e já automaticamente o sistema cadastra o nome de email solicitado no cpanel. O sistema ta funcionando perfeitamente tambem.

Agora chega no meu problema:

Eu preciso tipo agrupar estes dois sistemas em 1 por exemplo quero que ao preencher o formulario de cadastro e envia-lo quero que já cadastre o email no cpanel, ou seja quero que o sistema de cadastro (que apenas insere os dados no bd) rode junto o sistema php que desenvolvi para criar o email no cpanel ai no caso o sistema iria pegar os valores no banco de dados (já inseridos pelo form de cadastro) por exemplo ao invés de usar $_POST para pegar os valores dos inputs $email e $senha, quero que ele pegue o valor da string do formulario de cadastro por exemplo ele vai pegar o valor $email e o valor $senha do formulario de cadastro e com esses valores inserir no cpanel. Mas para pegar estes 2 valores (senha e email) eu quero que esse sistema php que cria as contas de email no cpanel faca uma busca no bd (dos usuarios cadastrados) e pegue esses 2 valores la atraves das strings $email e $senha que estao no formulario de cadastro e assim cadastrar o email que o usuario pretente criar.

Os sistemas estao funcionando corretamente mais estao funcionando individualmente, ai eu preciso de alguma forma agrupa-los para que o form de cadastro já automaticamente crie o email no cpanel.

Codigo do formulario Cadastro.php

<?php 
require("config.php");//arquivo de config para acessar o phpmyadmin
$acao = strip_tags( $_GET['acao'] );
?>
<p><span style="color:#F00">Atenção:</span> O cadastro aqui somente poderá ser efetuado por alunos IFMG, caso contrário sua conta será automaticamente excluída sem nenhum aviso prévio!</p>
<br />
<?php if( empty( $acao ) ) { ?>
<form action="cadastro.php?acao=add" class="formCadastro" name="formcadastre" id="formCadastro" onsubmit="return validateForm()" method="post">
<label>Nome</label>
<div class="inputsCadastro">
<input name="nome" title="Preencha com seu Nome" type="text" class="validate[required,custom[onlyLetterSp]]" id="nome" value="" />
</div><br />

<label>CPF</label>
<div class="inputsCadastro">
<input name="cpf" title="Preencha com seu CPF" type="text" id="cpf" class="validate[required]" value="" maxlength="11" />
</div><br />

<label>Login Desejado</label>
<div class="inputNmail">
<input name="xmail" title="Digite o login desejado" type="text" id="nMail" class="validate[required,custom[nMail]]" value="" maxlength="50" /><div class="mailinfo">@adm.ifmg.br</div>
</div><br />

<label>Senha</label>
<div class="inputsCadastro">
<input name="senha" title="Informe uma Senha" type="password" class="validate[required,minSize[8],custom[onlyLetterNumber]]" id="password" value="" maxlength="20" />
</div><br />

<label>Confirme a Senha</label>
<div class="inputsCadastro">
<input name="confirma_senha" title="Redigite a senha informada acima" type="password" class="validate[required,equals[password]]" id="password2" value="" maxlength="10" />
</div><br />
<p>Responda abaixo uma pergunta secreta que será solicitada para recuperação de senha</p><br />
<label>Pergunta Secreta</label>
<!-- We are going to use jQuery to hide the select element and replace it -->
        <select name="pergunta" class="makeMeFancy" title="Escolha uma pergunta secreta para responder">
            <!-- Notice the HTML5 data attributes -->
            <option value="" selected="selected" data-skip="1">Escolha uma Pergunta</option>
            <option value="1" data-html-text="Melhor amigo de infância?">Melhor amigo de infância?</option>
            <option value="2" data-html-text="Local onde nasceu?">Local onde nasceu?</option>
            <option value="3" data-html-text="Personagem histórico favorito?">Personagem histórico favorito?</option>
            <option value="4" data-html-text="Professor favorito?">Professor favorito?</option>
        </select>
        <br />
<label>Resposta</label>
<div class="inputsCadastro">
<input name="resposta" title="Informe a Resposta para a pergunta escolhida" type="text" id="resposta" class="validate[required]" value="" />
</div><br />
<center><input class="inputCadastrar_off" title="Cadastrar" type="submit" value="Cadastrar" /></center>
</form>
<?php

} // fim da ação EMPTY
        if( $acao == 'add') 
        { 
          extract( $_POST, EXTR_OVERWRITE); // extrai os dados do POST, transformando os indices em nomes. Sobrescreve as variaveis existentes, se houver          
                     
                ////Pegamos os valores do formulario
                $nome = $_POST['nome'];
                $cpf = $_POST['cpf'];
                $xmail = $_POST['xmail'];
                $senha = $_POST['senha'];
                $pergunta = $_POST['pergunta'];
                $resposta = $_POST['resposta'];
                
                ////Agrupamos o User + Endereco final do dominio
                $xmailUsr="$xmail";
                $xmailEnd="@adm.ifmg.br";
                $xmailCp="$xmailUsr"."$xmailEnd";
                
                //Aqui validamos o cpf para não duplicar
            $sql1 = mysql_query("SELECT id FROM usuarios WHERE cpf='$cpf'");
            $vcpf = mysql_num_rows($sql1);
            
            if( !empty( $cpf ) && $vcpf > 0){
                echo "<script language='javascript' type='text/javascript'>
                  alert('Ops, este CPF já está registrado em nosso banco de dados! Tente outro CPF!');
                  window.location.href='java script:history.go(-1)'
                </script>";
                echo "<script language='javascript' type='text/javascript'>
                  window.location.href='java script:history.go(-1)'
                </script>";
                exit;
                }
                
                //Aqui validamos o usuariomail para não duplicar
                $sql1 = mysql_query("SELECT id FROM usuarios WHERE xmail='$xmailCp'");
            $xmail = mysql_num_rows($sql1);
            
            if( !empty( $xmailCp ) && $xmail > 0){
                echo "<script language='javascript' type='text/javascript'>
                  alert('Ops, o nome de usuário $xmailCp já está em uso! Tente um outro nome de usuário!');
                  window.location.href='java script:history.go(-1)'
                </script>";
                echo "<script language='javascript' type='text/javascript'>
                  window.location.href='java script:history.go(-1)'
                </script>";
                exit;
                }
            
            $data = date( "d/m/Y" );
            $hora = date( "H:i:s" );
            
            $sql = mysql_query("INSERT INTO usuarios (nome, cpf, xmail, senha, pergunta, resposta) VALUES ('$nome', '$cpf', '$xmailCp', '$senha', '$pergunta', '$resposta')") or print(mysql_error());
            
            
            $ultimo_id = mysql_insert_id();
            echo '<script language="javascript" type="text/javascript">
        alert("Seu cadastro foi realizado com Sucesso! Clique em OK para se Logar.");
        window.location.href="login.php"
        </script>';
        }
?>
Banco de dados usuarios.sql
-- phpMyAdmin SQL Dump
-- version 3.4.9
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Mar 27, 2012 at 09:33 PM
-- Server version: 5.0.95
-- PHP Version: 5.2.9

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `ovdscomb_ifmg`
--

-- --------------------------------------------------------

--
-- Table structure for table `usuarios`
--

CREATE TABLE IF NOT EXISTS `usuarios` (
  `id` int(20) NOT NULL auto_increment,
  `nome` varchar(100) character set utf8 default NULL,
  `cpf` varchar(100) character set utf8 default NULL,
  `xmail` varchar(100) character set utf8 default NULL,
  `senha` varchar(100) character set utf8 default NULL,
  `pergunta` varchar(100) character set utf8 default NULL,
  `resposta` varchar(100) character set utf8 default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=27;

--
-- Dumping data for table `usuarios`
--

INSERT INTO `usuarios` (`id`, `nome`, `cpf`, `xmail`, `senha`, `pergunta`, `resposta`) VALUES
(23, 'Vinicius', '090.900.000-00', 'unmeanings@adm.ifmg.br', 'qwerty123', '2', 'não sei'),
(24, 'Teste', '433.333.333-33', 'vamostestar@adm.ifmg.br', '1q2w3e4r', '1', 'sa'),
(25, 'Okay', '121.111.111-11', 'tudookagr@adm.ifmg.br', 'qwerty231', '1', 'sassa'),
(26, 'wer', '325.544.445-55', 'qwertyu@adm.ifmg.br', '13090909', '1', 'adsd');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Sistema que cria o email automatico no cpanel
<?php

$cpmod            = 'x3';                     // Tema de seu CPANEL
$host            = 'site.com.br';            // Digite seu host
$port            = '2082';                    // Porta do CPANEL
$port_mail        = '2095';                    // Porta do EMAIL
$ownername        = "usuario";                    // Usuário CPANEL
$reseller_pass    = "senha";                    // Senha CPANEL
$domain            = "$host";


// =========================================================
// DADOS POSTADOS POR FORMULÁRIO
//-----------------------------------------------------------------
$email            = $_POST[email];
$password        = $_POST[pass];
$quota            = $_POST[quota];

if ($_POST[email]) {
$request = "/frontend/$cpmod/mail/doaddpop.html?email=$email&domain=$domain&password=$password&quota=$quota";
$result  = cprq($host,$port,$ownername,$reseller_pass,$request);

$show = strip_tags($result);

if (strpos($show, "already") !== false && strpos($show, "exists") !== false) {

echo "Esta conta já existe!"; }  else {  echo"Conta criada com sucesso!"; }

    }


function cprq($host,$port,$ownername,$reseller_pass,$request)  {
$sock = @fsockopen($host,$port);

if(!$sock)  {

print('Erro de conexão com soquete');   exit();   }


$authstr = "$ownername:$reseller_pass";
$pass = base64_encode($authstr);
$in  = "GET $request\r\n";
$in .= "HTTP/1.0\r\n";
$in .= "Host:$domain\r\n";
$in .= "Authorization: Basic $pass\r\n";
$in .= "\r\n";


   fputs($sock, $in);

   while (!feof($sock))  {
   $result .= fgets ($sock,128);  }

            fclose( $sock );

                        return $result;


}


?>
<style type="text/css">
<!--
.style1 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
}
.style2 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold; }
-->
</style>



<form id="form1" name="form1" method="post" action="">
  <table width="100%" border="0" cellspacing="10" cellpadding="0">
    <tr>
      <td width="30%" class="style1">
        <div align="right"><b>
          <span class="style1">Conta:</span>
          <input name="email" type="text" id="email" />
        </b></div>
      </td>
      <td width="70%" class="style2">@      
        <select name="select">
          <option value="<?php echo $host; ?>"><?php echo $host; ?></option>
        </select>
</td>
    </tr>
    <tr>
      <td class="style1">
        <div align="right" class="style2">Senha:</div>
      </td>
      <td class="style1">
        <input name="pass" type="text" id="pass" />
      </td>
    </tr>
    <tr>
      <td class="style1">
        <div align="right"><b>Cota:</b></div>
      </td>
      <td class="style1">
        <input name="quota" type="text" id="quota" size="5" />
       Megas ( vazio para ilimitado ) </td>
    </tr>
    <tr>
      <td class="style1">&nbsp;</td>
      <td class="style1">

        <input name="Submit" type="submit" class="style1" value="Submeter" />
      </td>
    </tr>
  </table>
</form>

não sei se entendeream mais se não tiver entendido responda com uma pergunta perguntando o que não entendeu porque ai tento explicar melhor...

Espero que possam me ajudar

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

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

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  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.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...