Jump to content


Photo

Ajuda Com Php (Cadastro Banco De Dados E Criacao De Email No Cpanel)


  • Faça o login para participar
1 reply to this topic

#1 unmeanings

unmeanings

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Não informado
  • Localidade:BRASIL

Posted 27/03/2012, 21:37

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

Eh 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 eh 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(ja 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, ja criei o formulario de cadastro, ja criei a tabela no bd, e o formulario ja esta funcionando perfeitamente ja 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 ja 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 ja 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 (ja inseridos pelo form de cadastro) por exemplo ao inves 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 ja 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 nao 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='javascript:history.go(-1)'
                </script>";
				echo "<script language='javascript' type='text/javascript'>
          		window.location.href='javascript:history.go(-1)'
                </script>";
                exit;
                }
				
				//Aqui validamos o usuariomail para nao 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='javascript:history.go(-1)'
                </script>";
				echo "<script language='javascript' type='text/javascript'>
          		window.location.href='javascript: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', 'nao 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>


Nao sei se entendeream mais se nao tiver entendido responda com uma pergunta perguntando o que nao entendeu pq ai tento esplicar melhor...
Espero que possam me ajudar

#2 Diego Bezerra

Diego Bezerra

    Diego Bezerra

  • Moderadores
  • 938 posts
  • Sexo:Masculino
  • Localidade:Amazonas
  • Interesses:Iniciando no C# com MSSQL.

Posted 28/03/2012, 17:14

Ola vc ja tentou passar o metado por get
algo mais ou menos assim

<form id="form1" name="form1" method="get" action="/frontend/$cpmod/mail/doaddpop.html">

Att.
Diego Bezerra
Agência Kernel - em Breve
Email/msn: diegobezerra@outlook.com
Facebook




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq