Ir para conteúdo
Fórum Script Brasil
  • 0

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


unmeanings

Pergunta

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 para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...