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

Cadastro


WhiteBear

Pergunta

Bem galera, estou tentando fazer funcionar um script de cadastro que grava as pessoas em um arquivo. Já dei o chmod 766 que é pedido no script, só que sempre quando tento cadastrar aparece isso:

"Warning: checkdnsrr() is not supported in this PHP build in c:\arquivos de programas\easyphp\www\cadastro\cadastrar.php on line 31

"

o script que cadastra é esse:

<?php

function verifica_mail($mail)

{

if (strpos ($mail, "@") == 0)

{

return true;

}

list($user,$domain)=split("@",$mail,2);

if (checkdnsrr($domain,"MX"))

{

return false;

}

else

{

return true;

}

}

if($tela == "2")

{

$n_erros = 0;

$erro = " ";

if(empty($email))

{

$erro.= "Obrigatório digitar o e-mail.<br>";

$n_erros++;

}

elseif (verifica_mail($email))

{

$erro.= "Confira o e-mail e tente novamente.<br>";

$n_erros++;

}

if(empty($nome))

{

$erro.= "Obrigatório digitar o nome.<br>";

$n_erros++;

}

}//if($tela==2)

//if (!empty($nome))

if($tela == 2 and $n_erros == 0)

{

$tamanho = filesize("cadastro.php");

if($tamanho < 1)

{

$fp = fopen("cadastro.php", "r+"); // abre o arquivo para escrita

}

else

{

$fp = fopen("cadastro.php", "a+"); // abre o arquivo para escrita

}

$cadastro ="$nome][";

$cadastro.="$email][\n";

fputs($fp, $cadastro); //envia o cadastro

fclose($fp); // fecha o arquivo

$tamanho = filesize("email.php");

if($tamanho < 1)

{

$fp = fopen("email.php", "r+"); // abre o arquivo para escrita

fseek($fp,0);

$cadastro ="$email";

}

else

{

$fp = fopen("email.php", "a+"); // abre o arquivo para escrita

$cadastro =",$email";

}

fputs($fp, $cadastro); //envia o cadastro

fclose($fp); // fecha o arquivo

?>

Se alguém me ajudar agradeço.

abraços galera!!!

Adriano

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Provavelmente sim!

Eles não desabilitam funções porque eles são maus com a gente...geralmente é desabilitada porque tem outra melhor, que faz a mesma coisa...geralmente... tem excessões, umas eles tiram pra sacanear mesmo...hehehe... rolleyes.gif

Mas o php4 já está no 4.3.5 cara...hehehe..hora de atualizar! happy.gif

Link para o comentário
Compartilhar em outros sites

  • 0

A galera do outro fórum me passou essas funções para eu tentar; getmxrr, gethostbyaddr, gethostbyname, gethostbynamel

Vou tentar com essas, pois aquela não roda no windows(pode me corrigir se eu estiver errado) tenho que tentar uma por uma, para saber qual vai rodar no windows.

Aquela função era mesmo pra verificar se existe o e-mail.

Abraços galera ScriptBrasil!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Ai galera piorou!!!, eu atualizei o meu php, e agora está dando mais erros ainda.

Olha os erros novos: Notice: Undefined variable: tela in c:\arquivos de programas\easyphp1-7\www\cadastro\cadastrar.php on line 38

Notice: Undefined variable: tela in c:\arquivos de programas\easyphp1-7\www\cadastro\cadastrar.php on line 64

Notice: Undefined variable: erro in c:\arquivos de programas\easyphp1-7\www\cadastro\cadastrar.php on line 143

As vezes é um saco ser iniciante, mas fazer o que né?? todos tem que passar por isso!

abraços galera scriptbrasil!!!

Adriano.

Link para o comentário
Compartilhar em outros sites

  • 0

Olha no seu formulário de Envio...o HTML... lá vão aparecer os campos...

Cada campo daqueles que você quiser resgatar no php, você vai ter que usar $_POST[campo]...

Exemplo:

formulário de envio

<input type='text' name='nome'>

pra receber esse campo "nome", use: $_POST['nome] e não simplesmente $nome

Entendeu?

Link para o comentário
Compartilhar em outros sites

  • 0

Ainda não consegui, a parte que dá erro é essa:

if($tela == "2")

{

$n_erros = 0;

$erro = " ";

if(empty($email))

{

$erro.= "Obrigatório digitar o e-mail.<br>";

$n_erros++;

}

elseif (verifica_mail($email))

{

$erro.= "Confira o e-mail e tente novamente.<br>";

$n_erros++;

}

if(empty($nome))

{

$erro.= "Obrigatório digitar o nome.<br>";

$n_erros++;

}

}//if($tela==2)

//if (!empty($nome))

if($tela == 2 and $n_erros == 0)

{

$tamanho = filesize("cadastro.php");

if($tamanho < 1)

{

$fp = fopen("cadastro.php", "r+"); // abre o arquivo para escrita

}

else

{

$fp = fopen("cadastro.php", "a+"); // abre o arquivo para escrita

}

$cadastro ="Nome=$nome\n";

$cadastro.="E-mail=$email\n";

fputs($fp, $cadastro); //envia o cadastro

fclose($fp); // fecha o arquivo

$tamanho = filesize("email.php");

if($tamanho < 1)

{

$fp = fopen("email.php", "r+"); // abre o arquivo para escrita

fseek($fp,0);

$cadastro ="$email";

}

else

{

$fp = fopen("email.php", "a+"); // abre o arquivo para escrita

$cadastro =",$email";

}

fputs($fp, $cadastro); //envia o cadastro

fclose($fp); // fecha o arquivo

?>

tentei mas não consegui.....

Link para o comentário
Compartilhar em outros sites

  • 0

Não entendi porque você não conseguiu...é só ver os campos do formulário e trocar os $campo por $_POST[campo] no código PHP...não tem mistério...

Você tem que ver de que lugar está vindo essa variável $tela... é do formulário? se for, faça o esquema do $_POST que eu disse ali em cima, deve funcionar...

Caso ainda não tenha etendido, cara...diga o que não entendeu que a gente explica...

O que não vamos, pelo menos eu não vou, é fazer pra você...mas te ajudo a fazer com o maior prazer... cool.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Tipo, não quero que vocês me entreguem pronto, eu não estou conseguindo mesmo, meu conhecimento é limitado. Eu não sei de onde vem a $tela, do formulário não é, eu fiz um teste e atribui o valor $tela= "2"; então não dá erro nenhum, mas a página mostra o erro que está no echo, ou seja como se eu tivesse prenchido errado ou não digitado, e não sai disso. esse é o script completo:

cadastrar.php

<?php

function verifica_mail($mail)

{

if (strpos ($mail, "@") == 0)

{

return true;

}

list($user,$domain)=split("@",$mail,2);

if (checkdnsrr($domain,"MX"))

{

return false;

}

else

{

return true;

}

}

$tela = "2";

if($tela == "2")

{

$n_erros = 0;

$erro = " 1 ";

if(empty($email))

{

$erro.= "Obrigatório digitar o e-mail.<br>";

$n_erros++;

}

elseif (verifica_mail($email))

{

$erro.= "Confira o e-mail e tente novamente.<br>";

$n_erros++;

}

if(empty($nome))

{

$erro.= "Obrigatório digitar o nome.<br>";

$n_erros++;

}

}//if($tela==2)

//if (!empty($nome))

if($tela == 2 and $n_erros == 0)

{

$tamanho = filesize("cadastro.php");

if($tamanho < 1)

{

$fp = fopen("cadastro.php", "r+"); // abre o arquivo para escrita

}

else

{

$fp = fopen("cadastro.php", "a+"); // abre o arquivo para escrita

}

$cadastro ="Nome=$nome\n";

$cadastro.="E-mail=$email\n";

fputs($fp, $cadastro); //envia o cadastro

fclose($fp); // fecha o arquivo

$tamanho = filesize("email.php");

if($tamanho < 1)

{

$fp = fopen("email.php", "r+"); // abre o arquivo para escrita

fseek($fp,0);

$cadastro ="$email";

}

else

{

$fp = fopen("email.php", "a+"); // abre o arquivo para escrita

$cadastro =",$email";

}

fputs($fp, $cadastro); //envia o cadastro

fclose($fp); // fecha o arquivo

?>

<HTML>

<HEAD>

<TITLE>CADASTRO</TITLE></HEAD>

<BODY BGCOLOR=F7C473>

<FONT SIZE=2 FACE="Verdana">

<FONT COLOR="DA251D">

<B>CADASTRO

</FONT>

<BR>

<p align="justify">

O CADASTRO FOI FEITO CORRETAMENTE.

</p>

<form>

<input type="button" value="Fechar Janela" onClick="self.close()">

</form>

</BODY>

</HTML>

<?php

}

else

{

?>

<HTML>

<HEAD>

<TITLE>CADASTRO</TITLE></HEAD>

<BODY BGCOLOR=F7C473>

<FONT SIZE=2 FACE="Verdana">

<FONT COLOR="DA251D">

<B>CADASTRO

</FONT>

<BR>

<p align="justify">

CADASTRE-SE E RECEBA NOVIDADES POR E-MAIL.

</P>

</B>

<P>

<form method=post action="cadastrar.php">

Nome <BR><input type="text "name="nome" SIZE=38><BR>

E-mail <BR><input type="text" name="email" size=38><BR>

<input type="hidden" name="tela" value="2">

<P>

<INPUT TYPE="submit" VALUE="Enviar">

<INPUT TYPE="reset" VALUE="Apagar">

</form>

<br>

<?php echo "<font color=red>$erro</font>"; ?>

</BODY>

</HTML>

<?php

}

?>

esse é o que envia:

enviar.php

<?php

function verifica_mail($mail)

{

if (strpos ($mail, "@") == 0)

{

return false;

}

list($user,$domain)=split("@",$mail,2);

if (checkdnsrr($domain,"MX"))

{

return true;

}

else

{

return false;

}

}

$fp = fopen("email.php", "r");

$mailaddr = fread($fp,filesize("email.php"));

fclose($fp);

mail($mailaddr, $mailsubject, $corpo,"Remetido por Fulano<fulano@fulano.com.br>");

echo "E-mail enviado corretamente.";

?>

Não faço a menor idéia de onde veio a $tela, será que está faltando alguma coisa no script? tem também o script que administra, mas não tem nada sobre a $tela.

e erro que sempre retorna é que $tela está sem valor....

Abraços galera!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Eu vou te dar uma luz, um código mais simples veja:

Vamos fazer um função primeiro:

function verifica_mail($email)

{

list($usuario,$dominio)=split("@",$email,2);

if(checkdnsrr($dominio,"MX")) { return false; } else { return true; }

}

Agora fazendo a condição:

if(verifica_mail($email))

{

echo "O seu e-mail não é válido.";

}

Entendeu ? biggrin.gif

Link para o comentário
Compartilhar em outros sites

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,3k
    • Posts
      652,2k
×
×
  • Criar Novo...