Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jonatas Teixeira

[Resolvido] Xajax + fomulario + mySQL

Recommended Posts

Bom, eu estou fazendo um analisador para um formulario de cadastro..

Um script que vá analisando as coerência das entradas de dados, assim que digitadas, sem necessitar de um submit no formulario..

 

Resolvi fazer uma função feeddback e um array para organizar o código, e daí parou de funcionar...

 

 

Se puderem me ajudar..

 

PS.. O Cód é meio grande, mas é bem simples.

 

 

 

<?php

require "./ajax/xajax_core/xajax.inc.php";

 

$ajax = new xajax();

$ajax->registerFunction("consultaCep");

$ajax->registerFunction("consultaLogin");

$ajax->registerFunction("consultaEmail");

$ajax->registerFunction("consultaSenha");

$ajax->registerFunction("consultaGeral");

 

global $res;

$res = array (

'nome' => "",

'sobrenome' => "",

'login' => "",

'senha' => "",

'email' => "",

'cep' => "",

'endereco' => "",

'numero' => "",

'complemento' => "",

'bairro' => "",

'cidade' => "",

'estado' => ""

);

 

 

//----------------------------

// Organiza os feed-backs

//----------------------------

function feedBack($objResponse) {

 

$str = "";

foreach ($res as $msg) {

$str = $str."<br>".$msg;

}

$objResponse->assign('info', "innerHTML", $msg);

}

 

 

//----------------------------

// Faz a verificação de coerencia no login digitado

//----------------------------

function consultaLogin($login){

 

$objResponse = new xajaxResponse('ISO-8859-1');

 

if(empty($login))

return $objResponse;

 

if ( (strlen($login) >= 3) && (strlen($login) <= 25) ) {

$query = mysql_query("SELECT usuario FROM on_members WHERE usuario = '$login'") or die (mysql_error());

$vai = mysql_num_rows($query);

if ($vai == 1){

$objResponse->assign('login', "className", "input-fail");

$res['login'] = "<font color=\"#FF0000\">Login já existente</font><br>";

 

} else {

$objResponse->assign('login', "className", "input-ok");

$res['login'] = "";

 

}

mysql_free_result($query);

} else {

$objResponse->assign('login', "className", "input-fail");

$res['login'] = "<font color=\"#FF0000\">O login deve ter de 3 a 25 caracteres</font><br>";

 

}

 

feedBack($objResponse);

return $objResponse;

}

 

 

//----------------------------

// Faz a verificação de coerencia nas senhas digitadas

//----------------------------

function consultaSenha($senha1, $senha2){

 

$objResponse = new xajaxResponse('ISO-8859-1');

 

if( empty($senha1) || empty($senha2) )

return $objResponse;

 

if ($senha1 == $senha2 ) {

if ( (strlen($senha1) >= 6) && (strlen($senha1) <= 32) ) {

$objResponse->assign('senha1', "className", "input-ok");

$objResponse->assign('senha2', "className", "input-ok");

$res['senha'] = "";

 

}else {

$objResponse->assign('senha1', "className", "input-fail");

$objResponse->assign('senha2', "className", "input-fail");

$res['senha'] = "<font color=\"#FF0000\">A senha deve ter de 6 a 32 caracteres de comprimento</font><br>";

 

}

} else {

$objResponse->assign('senha1', "className", "input-fail");

$objResponse->assign('senha2', "className", "input-fail");

$res['senha'] = "<font color=\"#FF0000\">As senhas não coincidem</font><br>";

 

}

 

feedBack($objResponse);

return $objResponse;

}

 

 

//----------------------------

// Faz a verificação de coerencia o email digitado

//----------------------------

function consultaEmail($email){

 

$objResponse = new xajaxResponse('ISO-8859-1');

 

if(empty($email))

return $objResponse;

 

if ( (strlen($email) >= 3) && (strlen($email) <= 50) ){

if (ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)) {

$query = mysql_query("SELECT email FROM on_members WHERE email = '$email'") or die (mysql_error());

$vai = mysql_num_rows($query);

if ($vai == 1){

$objResponse->assign('email', "className", "input-fail");

$res['email']= "<font color=\"#FF0000\">E-mail já cadastrado</font><br>";

 

} else {

$objResponse->assign('email', "className", "input-ok");

$res['email'] = "";

 

}

mysql_free_result($query);

}else{

$objResponse->assign('email', "className", "input-fail");

$res['email'] = "<font color=\"#FF0000\">E-mail inválido</font><br>";

 

}

} else {

$objResponse->assign('email', "className", "input-fail");

$res['email'] = "<font color=\"#FF0000\">O e-mail deve conter de 3 a 50 caracteres</font><br>";

 

}

 

feedBack($objResponse);

return $objResponse;

}

 

 

//----------------------------

// Faz a verificação do cep, preenchendo alguns campos

//----------------------------

function consultaCep($cep){

 

$objResponse = new xajaxResponse('ISO-8859-1');

 

if(empty($cep))

return $objResponse;

 

$cep = str_replace("-", "", $cep);

$result = file_get_contents('http://www.buscarcep.com.br/?cep='.urlencode($cep).'&formato=string');

parse_str($result, $resultado);

 

if($resultado['resultado'] < 0){

$objResponse->assign('cep', "className", "input-fail");

$res['cep'] = "<font color=\"#FF0000\">Cep não foi encontrado</font><br>";

 

feedBack($objResponse);

} else {

$objResponse->assign('endereco', "value", $resultado['tipo_logradouro']." ".$resultado['logradouro']);

$objResponse->assign('endereco', "className", "input-ok");

$objResponse->assign('bairro', "value", $resultado['bairro']);

$objResponse->assign('bairro', "className", "input-ok");

$objResponse->assign('cidade', "value", $resultado['cidade']);

$objResponse->assign('cidade', "className", "input-ok");

$objResponse->assign('estado', "value", $resultado['uf']);

$objResponse->assign('estado', "className", "input-ok");

$objResponse->assign('cep', "className", "input-ok");

$res['cep'] = "";

 

}

 

feedBack($objResponse);

return $objResponse;

}

 

 

//----------------------------

// Faz a verificação de coerencia em campos genéricos

//----------------------------

function consultaGeral($text, $campo, $min, $max) {

 

$objResponse = new xajaxResponse('ISO-8859-1');

 

if(empty($text) || empty($campo) || empty($min) || empty($max))

return $objResponse;

 

 

if ( (strlen($text) >= $min) && (strlen($text) <= $max) ) {

$objResponse->assign($campo, "className", "input-ok");

$res['$campo'] = "";

 

} else {

$objResponse->assign($campo, "className", "input-fail");

$res['$campo'] = "<font color=\"#FF0000\">".$campo." deve ter de ".$min." a ".$max."caracteres de comprimento</font><br>";

 

}

 

feedBack($objResponse);

return $objResponse;

}

 

 

 

//----------------------------

// Ordena ao ajax que processe os pedidos

//----------------------------

$ajax->processRequest();

$ajax->printJavascript('./ajax/');

 

 

?>

 

O formulário ficou bem interessante, mas por fim parou de funcionar...

Assim que eu terminar pretendo postar o sistema de cadastro aqui no forum.. Já vi um outro esses dias..

Sou novo em programação web, então porfavor não escreva nada muito abstrato asiuhauish

 

 

No aguardo de ajuda...

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.