Ir para conteúdo

POWERED BY:

Arquivado

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

Anderson Mendonça

Suporte online(chat) com restrição de acesso!

Recommended Posts

Já testei mais de 10 sistemas de atendimento online e todos são ótimos, funcionam perfeitamente e não tem limites de usuários ou qualquer tipo de restrição, uns estão até em loja online que vendem scripts prontos e descobri que são opensource, são perfeitos e sem bugs ainda por cima, totalmente mutáveis....

 

Mas no meu caso o diferencial é que preciso que o cliente quando entre no chat para conversar com nossos operadores eles tenham que ter "uma permissão" nem que esta mesma seja um "email" cadastrado....

 

Entrem e vejam o exemplo no site da empresa que trabalho....

 

www.aguiasistemas.net/

 

Entre no chat e entenda o que preciso fazer....

 

capturarjkx.png

 

Que o cliente entre com o email válido!!!! Nem que eu tenha que cadastrar manualmente, não importa, mas preciso ter o controle de todos que acessem o chat entende?

 

Fora isso, está tudo perfeitamente bem, estou utilizando no momento, o sistema mibew messenger, mas preciso adequar logo para mim saber quem entra e que fique gravado somente com aquele email cadastrado e nenhum outro email ou fake ou qualquer outro nome de visitante....

 

"Depois vou criar um Tópico de Sistemas de Atendimento ONLINE - TIPO TOP 10, pois tive muita experiência com estes tipos de sistemas...E todos que testei funcionam e são opensource mesmo!"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o código do formulário do print, na pagina client.php

<?php
/*
 * This file is part of Mibew Messenger project.
 *
 * Copyright (c) 2005-2011 Mibew Messenger Community
 * All rights reserved. The contents of this file are subject to the terms of
 * the Eclipse Public License v1.0 which accompanies this distribution, and
 * is available at [url=http://www.eclipse.org/legal/epl-v10.html]http://www.eclipse.org/legal/epl-v10.html [/url]
 *
 * Alternatively, the contents of this file may be used under the terms of
 * the GNU General Public License Version 2 or later (the "GPL"), in which case
 * the provisions of the GPL are applicable instead of those above. If you wish
 * to allow use of your version of this file only under the terms of the GPL, and
 * not to allow others to use your version of this file under the terms of the
 * EPL, indicate your decision by deleting the provisions above and replace them
 * with the notice and other provisions required by the GPL.
 *
 * Contributors:
 *    Evgeny Gryaznov - initial API and implementation
 */

require_once('libs/common.php');
require_once('libs/chat.php');
require_once('libs/operator.php');
require_once('libs/groups.php');
require_once('libs/expand.php');
require_once('libs/captcha.php');

loadsettings();
if($settings['enablessl'] == "1" && $settings['forcessl'] == "1") {
    if(!is_secure_request()) {
        $requested = $_SERVER['PHP_SELF'];
        if($_SERVER['REQUEST_METHOD'] == 'GET' && $_SERVER['QUERY_STRING']) {
            header("Location: ".get_app_location(true,true)."/client.php?".$_SERVER['QUERY_STRING']);
        } else {
            die("only https connections are handled");
        }         
        exit;
    }
}

if( !isset($_GET['token']) || !isset($_GET['thread']) ) {

    $thread = NULL;
    if( isset($_SESSION['threadid']) ) {
        $thread = reopen_thread($_SESSION['threadid']);
    }

    if( !$thread ) {
        $groupid = "";
        $groupname = "";
        if($settings['enablegroups'] == '1') {
            $groupid = verifyparam( "group", "/^\d{1,8}$/", "");
            if($groupid) {
                $group = group_by_id($groupid);
                if(!$group) {
                    $groupid = "";
                } else {
                    $groupname = get_group_name($group);
                }
            }
        }

        $visitor = visitor_from_request();
        
        if(isset($_POST['survey']) && $_POST['survey'] == 'on') {
            $firstmessage = getparam("message");
            $info = getparam("info");
            $email = getparam("email");
            $referrer = urldecode(getparam("referrer"));

            if($settings['usercanchangename'] == "1" && isset($_POST['name'])) {
                $newname = getparam("name");
                if($newname != $visitor['name']) {
                    $data = strtr(base64_encode(myiconv($webim_encoding,"utf-8",$newname)), '+/=', '-_,');
                    setcookie($namecookie, $data, time()+60*60*24*365);
                    $visitor['name'] = $newname;
                }
            }
        } else {
            $firstmessage = NULL;
            $info = getgetparam('info');
            $email = getgetparam('email');
            $referrer = isset($_GET['url']) ? $_GET['url'] :
                (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "");
            if(isset($_GET['referrer']) && $_GET['referrer']) {
                $referrer .= "\n".$_GET['referrer'];
            }
        }

        if(!has_online_operators($groupid)) {
            $page = array();
            setup_logo();
            setup_leavemessage($visitor['name'],$email,$firstmessage,$groupid,$groupname,$info,$referrer,can_show_captcha());
            expand("styles", getchatstyle(), "leavemessage.tpl");
            exit;
        }

        if($settings['enablepresurvey'] == '1' && !(isset($_POST['survey']) && $_POST['survey'] == 'on')) {
            $page = array();
            setup_logo();
            setup_survey($visitor['name'], $email, $groupid, $info, $referrer);
            expand("styles", getchatstyle(), "survey.tpl");
            exit;
        }

        $remoteHost = get_remote_host();
        $userbrowser = $_SERVER['HTTP_USER_AGENT'];

        $link = connect();
        if(!check_connections_from_remote($remoteHost, $link)) {
            mysql_close($link);
            die("number of connections from your IP is exceeded, try again later");
        }
        $thread = create_thread($groupid,$visitor['name'], $remoteHost, $referrer,$current_locale,$visitor['id'], $userbrowser,$state_loading,$link);
        $_SESSION['threadid'] = $thread['threadid'];
        
        if( $referrer ) {
            post_message_($thread['threadid'],$kind_for_agent,getstring2('chat.came.from',array($referrer)),$link);
        }
        post_message_($thread['threadid'],$kind_info,getstring('chat.wait'),$link);
        if($email) {
            post_message_($thread['threadid'],$kind_for_agent,getstring2('chat.visitor.email',array($email)),$link);
        }
        if($info) {
            post_message_($thread['threadid'],$kind_for_agent,getstring2('chat.visitor.info',array($info)),$link);
        }
        if($firstmessage) {
            $postedid = post_message_($thread['threadid'],$kind_user,$firstmessage,$link,$visitor['name']);
            commit_thread( $thread['threadid'], array('shownmessageid' => $postedid), $link);
        }
        mysql_close($link);
    }
    $threadid = $thread['threadid'];
    $token = $thread['ltoken'];
    $level = get_remote_level($_SERVER['HTTP_USER_AGENT']);
    $chatstyle = verifyparam( "style", "/^\w+$/", "");
    header("Location: $webimroot/client.php?thread=$threadid&token=$token&level=$level".($chatstyle ? "&style=$chatstyle" : ""));
    exit;
}

$token = verifyparam( "token", "/^\d{1,8}$/");
$threadid = verifyparam( "thread", "/^\d{1,8}$/");
$level = verifyparam( "level", "/^(ajaxed|simple|old)$/");

$thread = thread_by_id($threadid);
if( !$thread || !isset($thread['ltoken']) || $token != $thread['ltoken'] ) {
    die("wrong thread");
}

setup_chatview_for_user($thread, $level);

$pparam = verifyparam( "act", "/^(mailthread)$/", "default");
if( $pparam == "mailthread" ) {
    expand("styles", getchatstyle(), "mail.tpl");
} else if( $level == "ajaxed" ) {
    expand("styles", getchatstyle(), "chat.tpl");
} else if( $level == "simple" ) {
    expand("styles", getchatstyle(), "chatsimple.tpl");
} else if( $level == "old" ) {
    expand("styles", getchatstyle(), "nochat.tpl");
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu quero o formulário só, onde tem os campos e o botão.

quero o HTML dele pra ser mais especifico.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>SUPORTE AOVIVO</title>
	<link rel="shortcut icon" href="/atendimento/images/favicon.ico" type="image/x-icon"/>
	<link rel="stylesheet" type="text/css" href="/atendimento/styles/silver/chat.css" />
</head>
<body class="bgbody">
	<div id="top2">
		<div id="logo">
			
				
					<a onclick="window.open('http://www.aguiasistemas.net');return false;" href="http://www.aguiasistemas.net">
						<img src="http://www.aguiasistemas.net/atendimento/images/logo.png" alt=""/>
					</a>
				
			
			 
			<div id="page-title">SUPORTE AOVIVO</div>
		</div>
	</div>
	<div id="headers">
		<div class="wndb"><div class="wndl"><div class="wndr"><div class="wndt"><div class="wndtl"><div class="wndtr"><div class="wndbl"><div class="wndbr">
			<div class="buttons">
				<a href="javascript:window.close();" title="Fechar"><img class="tplimage iclosewin" src="/atendimento/images/free.gif" alt="Fechar" /></a>
			</div>
			<div class="messagetxt">Obrigado por utilizar nosso Suporte AOVIVO! Preencha seu Nome Fantasia, para podermos identificá-lo(a)!</div>
		</div></div></div></div></div></div></div></div>
	</div>
	<div id="content-wrapper">
	
		<form name="surveyForm" method="post" action="/atendimento/client.php" />
		<input type="hidden" name="style" value="silver"/>
		<input type="hidden" name="info" value=""/>
		<input type="hidden" name="referrer" value=""/>
		<input type="hidden" name="survey" value="on"/>
		
		
		<input type="hidden" name="message" value=""/>

		<table class="form">
		
			<tr>
				<td><strong>Nome Fantasia:</strong></td>
				<td><input type="text" name="name" size="50" value="PREENCHA SEU NOME/NOME FANTASIA" class="username" /></td>
			</tr>
		
			<tr>
				<td><strong>Email:</strong></td>
				<td><input type="text" name="email" size="50" value="" class="username"/></td>
			</tr>
		
					
		</table>		
		<a href="javascript:document.surveyForm.submit();" class="but" id="sndmessagelnk">Iniciar Chat</a>
		<div class="clear"> </div>
	</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos trabalhar com Jquery, usando o ajax.

 

Baixe a biblioteca do jquery, chame ela na sua pagina.

 

faça assim:

no html você vai modificar

 

 


<form name="surveyForm" id="FormValidation" method="post" action="/atendimento/client.php" />

Depois No jquery você vai fazer assim.



 

$(function(){
$('#FormValidation').submit(function(e){
e.preventDefault();
var email = $('#FormValidation .username').val();


$.post(
'ajax_validation.php',
{act: 'validar_email', email: email},
function(data){
if(data.erro == 1){
alert(data.msg);
return false;
}
}
);
});
});

ai você vai criar um arquivo chamado ajax.validation.php na mesma pasta onde esta o arquivo client.php e na nela terá uma verificação assim:

 

 

 

if(isset($_POST['act']) && !empty($_POST['act'])){
switch($_POST['act']){
case 'validar_email':
if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$ret['msg'] = "Por favor digite um email válido";
$ret['erro'] = 1;
}else{
//ABRE CONEXÃO COM O BANCO
$sql = "SELECT count(*) FROM TABELA WHERE email = '{$_POST['email']}'";
$qtd = mysql_query($sql);
if($qtd > 0){
$ret['erro'] = 0;
$ret['msg'] = 'sucesso';
}else{
$ret['erro'] = 1;
$ret['msg'] = 'Email não cadastrado';
}
}
echo json_encode($ret);
break;
}
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O caminho é esse, você precisa estudar sobre ajax jquery.

 

esse code esta 90% pronto.

infelizmete não tenho tempo pra estudar....estou com este projeto aqui na empresa faz 2 meses...

 

 

AJUDA URGENTE!!!!

 

 

 

Eu preciso que os nossos clientes possam entrar no Chat utilizando um "email", que previamente irei cadastrar.

Não sei se você sabe a grande maioria dos sistemas de atendimento ONLINE são públicos!

Qualquer um entra anonimamente ou se identificando...mas não consegui encontrar um sistema "RESTRITO" e note, testei mais de 10 sistemas parecidos com o que uso, o MIBEW MESSENGER...

E não obtive sucesso para conseguir fazer com que os clientes sejam obrigados a colocar um e-mail que eu determine previamente ou aplicar algum tipo de LOGIN antes de ir pra esta janela do CHAT!

 

Por que? Para que?

Atualmente os clientes podem entrar usando(inserindo) qualquer email...abaixo está o print...dê uma olhada!

 

capturardyr.png

 

Note que qualquer email pode ser adicionado, ou até mesmo "?@?.com"...e isso pra nós é ruim pois precisamos ter controle das conversas dos clientes com nossos técnicos....e o cliente as vezes entra com um email dele mesmo que conhecemos e depois outro diferente, aí não dá pra buscar no banco do sistema de atendimento aovivo e ficar procurando manualmente depois e juntando o quebra-cabeça é quase impossível!

 

Agora vou postar o código em PHP do print acima que se chama client.php:

(Realmente eu tinha postado anteriormente o código fonte em html, mas não tenho este arquivo pronto e bonitinho ali como no print acima, somente este código em php abaixo)

 

    <?php
    /*
     * This file is part of Mibew Messenger project.
     *
     * Copyright (c) 2005-2011 Mibew Messenger Community
     * All rights reserved. The contents of this file are subject to the terms of
     * the Eclipse Public License v1.0 which accompanies this distribution, and
     * is available at http://www.eclipse.org/legal/epl-v10.html
     *
     * Alternatively, the contents of this file may be used under the terms of
     * the GNU General Public License Version 2 or later (the "GPL"), in which case
     * the provisions of the GPL are applicable instead of those above. If you wish
     * to allow use of your version of this file only under the terms of the GPL, and
     * not to allow others to use your version of this file under the terms of the
     * EPL, indicate your decision by deleting the provisions above and replace them
     * with the notice and other provisions required by the GPL.
     *
     * Contributors:
     *    Evgeny Gryaznov - initial API and implementation
     */
     
    require_once('libs/common.php');
    require_once('libs/chat.php');
    require_once('libs/operator.php');
    require_once('libs/groups.php');
    require_once('libs/expand.php');
    require_once('libs/captcha.php');
     
    loadsettings();
    if($settings['enablessl'] == "1" && $settings['forcessl'] == "1") {
        if(!is_secure_request()) {
            $requested = $_SERVER['PHP_SELF'];
            if($_SERVER['REQUEST_METHOD'] == 'GET' && $_SERVER['QUERY_STRING']) {
                header("Location: ".get_app_location(true,true)."/client.php?".$_SERVER['QUERY_STRING']);
            } else {
                die("only https connections are handled");
            }         
            exit;
        }
    }
     
    if( !isset($_GET['token']) || !isset($_GET['thread']) ) {
     
        $thread = NULL;
        if( isset($_SESSION['threadid']) ) {
            $thread = reopen_thread($_SESSION['threadid']);
        }
     
        if( !$thread ) {
            $groupid = "";
            $groupname = "";
            if($settings['enablegroups'] == '1') {
                $groupid = verifyparam( "group", "/^\d{1,8}$/", "");
                if($groupid) {
                    $group = group_by_id($groupid);
                    if(!$group) {
                        $groupid = "";
                    } else {
                        $groupname = get_group_name($group);
                    }
                }
            }
     
            $visitor = visitor_from_request();
            
            if(isset($_POST['survey']) && $_POST['survey'] == 'on') {
                $firstmessage = getparam("message");
                $info = getparam("info");
                $email = getparam("email");
                $referrer = urldecode(getparam("referrer"));
     
                if($settings['usercanchangename'] == "1" && isset($_POST['name'])) {
                    $newname = getparam("name");
                    if($newname != $visitor['name']) {
                        $data = strtr(base64_encode(myiconv($webim_encoding,"utf-8",$newname)), '+/=', '-_,');
                        setcookie($namecookie, $data, time()+60*60*24*365);
                        $visitor['name'] = $newname;
                    }
                }
            } else {
                $firstmessage = NULL;
                $info = getgetparam('info');
                $email = getgetparam('email');
                $referrer = isset($_GET['url']) ? $_GET['url'] :
                    (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "");
                if(isset($_GET['referrer']) && $_GET['referrer']) {
                    $referrer .= "\n".$_GET['referrer'];
                }
            }
     
            if(!has_online_operators($groupid)) {
                $page = array();
                setup_logo();
                setup_leavemessage($visitor['name'],$email,$firstmessage,$groupid,$groupname,$info,$referrer,can_show_captcha());
                expand("styles", getchatstyle(), "leavemessage.tpl");
                exit;
            }
     
            if($settings['enablepresurvey'] == '1' && !(isset($_POST['survey']) && $_POST['survey'] == 'on')) {
                $page = array();
                setup_logo();
                setup_survey($visitor['name'], $email, $groupid, $info, $referrer);
                expand("styles", getchatstyle(), "survey.tpl");
                exit;
            }
     
            $remoteHost = get_remote_host();
            $userbrowser = $_SERVER['HTTP_USER_AGENT'];
     
            $link = connect();
            if(!check_connections_from_remote($remoteHost, $link)) {
                mysql_close($link);
                die("number of connections from your IP is exceeded, try again later");
            }
            $thread = create_thread($groupid,$visitor['name'], $remoteHost, $referrer,$current_locale,$visitor['id'], $userbrowser,$state_loading,$link);
            $_SESSION['threadid'] = $thread['threadid'];
            
            if( $referrer ) {
                post_message_($thread['threadid'],$kind_for_agent,getstring2('chat.came.from',array($referrer)),$link);
            }
            post_message_($thread['threadid'],$kind_info,getstring('chat.wait'),$link);
            if($email) {
                post_message_($thread['threadid'],$kind_for_agent,getstring2('chat.visitor.email',array($email)),$link);
            }
            if($info) {
                post_message_($thread['threadid'],$kind_for_agent,getstring2('chat.visitor.info',array($info)),$link);
            }
            if($firstmessage) {
                $postedid = post_message_($thread['threadid'],$kind_user,$firstmessage,$link,$visitor['name']);
                commit_thread( $thread['threadid'], array('shownmessageid' => $postedid), $link);
            }
            mysql_close($link);
        }
        $threadid = $thread['threadid'];
        $token = $thread['ltoken'];
        $level = get_remote_level($_SERVER['HTTP_USER_AGENT']);
        $chatstyle = verifyparam( "style", "/^\w+$/", "");
        header("Location: $webimroot/client.php?thread=$threadid&token=$token&level=$level".($chatstyle ? "&style=$chatstyle" : ""));
        exit;
    }
     
    $token = verifyparam( "token", "/^\d{1,8}$/");
    $threadid = verifyparam( "thread", "/^\d{1,8}$/");
    $level = verifyparam( "level", "/^(ajaxed|simple|old)$/");
     
    $thread = thread_by_id($threadid);
    if( !$thread || !isset($thread['ltoken']) || $token != $thread['ltoken'] ) {
        die("wrong thread");
    }
     
    setup_chatview_for_user($thread, $level);
     
    $pparam = verifyparam( "act", "/^(mailthread)$/", "default");
    if( $pparam == "mailthread" ) {
        expand("styles", getchatstyle(), "mail.tpl");
    } else if( $level == "ajaxed" ) {
        expand("styles", getchatstyle(), "chat.tpl");
    } else if( $level == "simple" ) {
        expand("styles", getchatstyle(), "chatsimple.tpl");
    } else if( $level == "old" ) {
        expand("styles", getchatstyle(), "nochat.tpl");
    }
     
    ?>

 

Será que você pode me ajudar ou qualquer pessoa que esteja analisando este tópico!

 

_Preciso de uma autenticação para o cliente entrar...pode ser pelo email dele...ao invés de usuário e senha;

 

_Algum Sistema de login anterior a esta janela do chat como no print acima...mas note que para isso precisa ter ligação com o banco do sistema do atendimento, pois já tentei fazer o sistema de login e deu certo, mas o cliente entrava na área dele, tinha algumas coisas pra ele baixar e tal, outros docs exclusivos, e ai eu inseri o BOTÂO de atendimento, o cliente entrava e dava no mesmo, pois ele colocava o email que queria pra iniciar o batepapo com nossos técnicos!

 

Alguém pode me ajudar!!!!!

 

O site é este onde se encontra o CHAT(atendimento ONLINE):

Águia Sistemas Gestão e Automação Empresarial

 

Obrigado...estou sendo muito pressionado, estou a mais de 1 mês tentando e testando...mas nada consegui...

 

Lembrando todos os sistemas e scripts de atendimento que testei são OPENSOURCE! E este atual também!

Compartilhar este post


Link para o post
Compartilhar em outros sites

é complicado fazer o seu trampo amigo, esse não é o meu objetivo e nem o do fórum.

 

A ajuda esta ai, 90% DO CODE esta pronto.

 

é só montar a conexão com o banco e o select

Compartilhar este post


Link para o post
Compartilhar em outros sites

é complicado fazer o seu trampo amigo, esse não é o meu objetivo e nem o do fórum.

 

A ajuda esta ai, 90% DO CODE esta pronto.

 

é só montar a conexão com o banco e o select

não estou pedindo pra fazer meu trampo amigo, pedi ajuda pq não sei mais o que fazer pra resolver isso, vc acha que 90% do code está aí, mas não sei como fazer....isso.....se eu soubesse e tivesse tempo pra estudar já estaria pronto!

Compartilhar este post


Link para o post
Compartilhar em outros sites

não estou pedindo pra fazer meu trampo amigo, pedi ajuda pq não sei mais o que fazer pra resolver isso, vc acha que 90% do code está aí, mas não sei como fazer....isso.....se eu soubesse e tivesse tempo pra estudar já estaria pronto!

 

Realmente estamos tentando te ajudar, mas você deixou transparecer que quer que funcione de qualquer jeito, programação e pressa não funcionam juntos programação e agilidade sim.

 

Realmente o código está 99% pronto.

 

Mas não temos como implementá-lo em seus arquivos.

 

Foi mal , mas tenho que dizer.

 

Ou você estuda ou então você paga a alguém para fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente estamos tentando te ajudar, mas você deixou transparecer que quer que funcione de qualquer jeito, programação e pressa não funcionam juntos programação e agilidade sim.

 

Realmente o código está 99% pronto.

 

Mas não temos como implementá-lo em seus arquivos.

 

Foi mal , mas tenho que dizer.

 

Ou você estuda ou então você paga a alguém para fazer.

Olha Rogério estou me esforçando pakas cara....

 

Criei o arquivo:

 

ajax.validation.php

<?php

if(isset($_POST['act']) && !empty($_POST['act'])){
switch($_POST['act']){
case 'validar_email':
if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$ret['msg'] = "Por favor digite um email válido";
$ret['erro'] = 1;
}else{
//ABRE CONEXÃO COM O BANCO
$sql = "SELECT count(*) FROM TABELA WHERE email = '{$_POST['email']}'";
$qtd = mysql_query($sql);
if($qtd > 0){
$ret['erro'] = 0;
$ret['msg'] = 'sucesso';
}else{
$ret['erro'] = 1;
$ret['msg'] = 'Email não cadastrado';
}
}
echo json_encode($ret);
break;
}
}
?>

É só isso o arquivo de validação?

 

e como fazer o outro arquivo? Onde coloco estes códigos?

 

$(function(){
$('#FormValidation').submit(function(e){
e.preventDefault();
var email = $('#FormValidation .username').val();


$.post(
'ajax_validation.php',
{act: 'validar_email', email: email},
function(data){
if(data.erro == 1){
alert(data.msg);
return false;
}
}
);
});
});

 

me ajuda por favor!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perceba as mudanças que o colega acima fez:

Antes

<form name="surveyForm" method="post" action="/atendimento/client.php" />

Depois

<form name="surveyForm" id="FormValidation" method="post" action="/atendimento/client.php" /> 


2 - passo

vc tem esses requerimentos :

require_once('libs/common.php'); 
require_once('libs/chat.php'); 
require_once('libs/operator.php'); 
require_once('libs/groups.php'); 
require_once('libs/expand.php'); 
require_once('libs/captcha.php');


Inclua esse abaixo e não apague os outros.

require_once('ajax.validation.php'); 

Você criou o arquivo ajax.validation.php , agora tem que chamá-lo

Se o cliente.php estiver no mesmo diretório que esse ajax.validation.php vc chama como está acima

Se der erro na chamada, é porque está no diretório errado. Aí vc resolve e localiza o diretório.

Esse abaixo é o ajax.validation.php

<script type="text/javascript">
$(function(){
$('#FormValidation').submit(function(e){
e.preventDefault();
var email = $('#FormValidation .username').val();


$.post(
'ajax_validation.php',
{act: 'validar_email', email: email},
function(data){
if(data.erro == 1){
alert(data.msg);
return false;
}
}
);
});
});
</script>

 

Abaixo vai a validação do formulário:

if(isset($_POST['act']) && !empty($_POST['act'])){
switch($_POST['act']){
case 'validar_email':
if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$ret['msg'] = "Por favor digite um email válido";
$ret['erro'] = 1;
}else{
//ABRE CONEXÃO COM O BANCO
$sql = "SELECT count(*) FROM TABELA WHERE email = '{$_POST['email']}'";
$qtd = mysql_query($sql);
if($qtd > 0){
$ret['erro'] = 0;
$ret['msg'] = 'sucesso';
}else{
$ret['erro'] = 1;
$ret['msg'] = 'Email não cadastrado';
}
}
echo json_encode($ret);
break;
}
}

 

 

Isso é a validação do formulário para saber em relação ao campo email

 

1 - Se existir o post act e se o post act não está vazio .

2 - Se o que foi digitado é um formato de email válido

3 -

$sql = "SELECT count(*) FROM TABELA WHERE email = '{$_POST['email']}'";

TABELA vc substitui pelo nome da tabela que vc criar/criou pode ser qualquer nome, desde que já não tenha sido criada.

 

O importante é substituir pelo mesmo nome.

 

Selecione contando todos da TABELA (nome-qualquer) quando o email (campo da tabela) for = ao email digitado no campo para acessar o chat

 

if($qtd > 0){
$ret['erro'] = 0;
$ret['msg'] = 'sucesso';

 

$ret['erro'] = 0; Se a contagem não apresentar erros, então a msg = sucesso

 

$ret['erro'] = 1;
$ret['msg'] = 'Email não cadastrado';

 

 

Retornando 1 a mensagem de erro é verdadeira e o email digitado pelo usuário não foi encontrado na base de dados

 

 

Pronto o código está todo lido. Agora é com você.

 

Para criar as tabelas:

 

Quais os campos que você precisa?

 

Basicamente isso.

 

Id - Indispensável

Empresa - Apenas para vc organizar sua tabela

Email - indispensável


/*
MySQL Backup
Source Server Version: 5.5.24
Source Database: teste
Date: 14/03/2013 13:14:49
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `teste`
-- ----------------------------
DROP TABLE IF EXISTS `teste`;
CREATE TABLE `teste` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`empresa` varchar(200) NOT NULL,
`email` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records
-- ----------------------------
O que está em negrito e azul acima é o código sql que vc cola em seu phpmyadmin

CREATE TABLE `teste` -> teste é o nome da tabela que eu criei vc escolhe outro nome e modifica

se vc escolher o nome da tabela validarchat

 

então fica assim:

 

$sql = "SELECT count(*) FROM validarchat WHERE email = '{$_POST['email']}'";
DROP TABLE IF EXISTS `validarchat`;
CREATE TABLE `validarchat`

 

 

Pronto já está mastigado

Um abraço e boa sorte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só!

 

ajax.validation.php >>>ficou assim:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body><script type="text/javascript">
$(function(){
$('#FormValidation').submit(function(e){
e.preventDefault();
var email = $('#FormValidation .username').val();


$.post(
'ajax_validation.php',
{act: 'validar_email', email: email},
function(data){
if(data.erro == 1){
alert(data.msg);
return false;
}
}
);
});
});
</script>
<?php
if(isset($_POST['act']) && !empty($_POST['act'])){
switch($_POST['act']){
case 'validar_email':
if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$ret['msg'] = "Por favor digite um email válido";
$ret['erro'] = 1;
}else{
//ABRE CONEXÃO COM O BANCO
$sql = "SELECT count(*) FROM TABELA WHERE email = '{$_POST['email']}'";
$qtd = mysql_query($sql);
if($qtd > 0){
$ret['erro'] = 0;
$ret['msg'] = 'sucesso';
}else{
$ret['erro'] = 1;
$ret['msg'] = 'Email não cadastrado';
}
}
echo json_encode($ret);
break;
}
}
?>
</body>
</html>

Aí peguei o arquivo client.php e fiz as modificações que era incluir:

require_once('ajax.validation.php'); 

Ficou assim:

 

<?php
/*
 * This file is part of Mibew Messenger project.
 * 
 * Copyright (c) 2005-2011 Mibew Messenger Community
 * All rights reserved. The contents of this file are subject to the terms of
 * the Eclipse Public License v1.0 which accompanies this distribution, and
 * is available at http://www.eclipse.org/legal/epl-v10.html
 * 
 * Alternatively, the contents of this file may be used under the terms of
 * the GNU General Public License Version 2 or later (the "GPL"), in which case
 * the provisions of the GPL are applicable instead of those above. If you wish
 * to allow use of your version of this file only under the terms of the GPL, and
 * not to allow others to use your version of this file under the terms of the
 * EPL, indicate your decision by deleting the provisions above and replace them
 * with the notice and other provisions required by the GPL.
 * 
 * Contributors:
 *    Evgeny Gryaznov - initial API and implementation
 */

require_once('libs/common.php');
require_once('libs/chat.php');
require_once('libs/operator.php');
require_once('libs/groups.php');
require_once('libs/expand.php');
require_once('libs/captcha.php');
require_once('ajax.validation.php'); 

loadsettings();
if($settings['enablessl'] == "1" && $settings['forcessl'] == "1") {
	if(!is_secure_request()) {
		$requested = $_SERVER['PHP_SELF'];
		if($_SERVER['REQUEST_METHOD'] == 'GET' && $_SERVER['QUERY_STRING']) {
			header("Location: ".get_app_location(true,true)."/client.php?".$_SERVER['QUERY_STRING']);
		} else {
			die("only https connections are handled");
		} 		
		exit;
	}
}

if( !isset($_GET['token']) || !isset($_GET['thread']) ) {

	$thread = NULL;
	if( isset($_SESSION['threadid']) ) {
		$thread = reopen_thread($_SESSION['threadid']);
	}

	if( !$thread ) {
		$groupid = "";
		$groupname = "";
		if($settings['enablegroups'] == '1') {
			$groupid = verifyparam( "group", "/^\d{1,8}$/", "");
			if($groupid) {
				$group = group_by_id($groupid);
				if(!$group) {
					$groupid = "";
				} else {
					$groupname = get_group_name($group);
				}
			}
		}

		$visitor = visitor_from_request();
		
		if(isset($_POST['survey']) && $_POST['survey'] == 'on') {
			$firstmessage = getparam("message");
			$info = getparam("info");
			$email = getparam("email");
			$referrer = urldecode(getparam("referrer"));

			if($settings['usercanchangename'] == "1" && isset($_POST['name'])) {
				$newname = getparam("name");
				if($newname != $visitor['name']) {
					$data = strtr(base64_encode(myiconv($webim_encoding,"utf-8",$newname)), '+/=', '-_,');
					setcookie($namecookie, $data, time()+60*60*24*365);
					$visitor['name'] = $newname;
				}
			}
		} else {
			$firstmessage = NULL;
			$info = getgetparam('info');
			$email = getgetparam('email');
			$referrer = isset($_GET['url']) ? $_GET['url'] :
				(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "");
			if(isset($_GET['referrer']) && $_GET['referrer']) {
				$referrer .= "\n".$_GET['referrer'];
			}
		}

		if(!has_online_operators($groupid)) {
			$page = array();
			setup_logo();
			setup_leavemessage($visitor['name'],$email,$firstmessage,$groupid,$groupname,$info,$referrer,can_show_captcha());
			expand("styles", getchatstyle(), "leavemessage.tpl");
			exit;
		}

		if($settings['enablepresurvey'] == '1' && !(isset($_POST['survey']) && $_POST['survey'] == 'on')) {
			$page = array();
			setup_logo();
			setup_survey($visitor['name'], $email, $groupid, $info, $referrer);
			expand("styles", getchatstyle(), "survey.tpl");
			exit;
		}

		$remoteHost = get_remote_host();
		$userbrowser = $_SERVER['HTTP_USER_AGENT'];

		$link = connect();
		if(!check_connections_from_remote($remoteHost, $link)) {
			mysql_close($link);
			die("number of connections from your IP is exceeded, try again later");
		}
		$thread = create_thread($groupid,$visitor['name'], $remoteHost, $referrer,$current_locale,$visitor['id'], $userbrowser,$state_loading,$link);
		$_SESSION['threadid'] = $thread['threadid'];
		
		if( $referrer ) {
			post_message_($thread['threadid'],$kind_for_agent,getstring2('chat.came.from',array($referrer)),$link);
		}
		post_message_($thread['threadid'],$kind_info,getstring('chat.wait'),$link);
		if($email) {
			post_message_($thread['threadid'],$kind_for_agent,getstring2('chat.visitor.email',array($email)),$link);
		}
		if($info) {
			post_message_($thread['threadid'],$kind_for_agent,getstring2('chat.visitor.info',array($info)),$link);
		}
		if($firstmessage) {
			$postedid = post_message_($thread['threadid'],$kind_user,$firstmessage,$link,$visitor['name']);
			commit_thread( $thread['threadid'], array('shownmessageid' => $postedid), $link);
		}
		mysql_close($link);
	}
	$threadid = $thread['threadid'];
	$token = $thread['ltoken'];
	$level = get_remote_level($_SERVER['HTTP_USER_AGENT']);
	$chatstyle = verifyparam( "style", "/^\w+$/", "");
	header("Location: $webimroot/client.php?thread=$threadid&token=$token&level=$level".($chatstyle ? "&style=$chatstyle" : ""));
	exit;
}

$token = verifyparam( "token", "/^\d{1,8}$/");
$threadid = verifyparam( "thread", "/^\d{1,8}$/");
$level = verifyparam( "level", "/^(ajaxed|simple|old)$/");

$thread = thread_by_id($threadid);
if( !$thread || !isset($thread['ltoken']) || $token != $thread['ltoken'] ) {
	die("wrong thread");
}

setup_chatview_for_user($thread, $level);

$pparam = verifyparam( "act", "/^(mailthread)$/", "default");
if( $pparam == "mailthread" ) {
	expand("styles", getchatstyle(), "mail.tpl");
} else if( $level == "ajaxed" ) {
	expand("styles", getchatstyle(), "chat.tpl");
} else if( $level == "simple" ) {
	expand("styles", getchatstyle(), "chatsimple.tpl");
} else if( $level == "old" ) {
	expand("styles", getchatstyle(), "nochat.tpl");
}

?>

Aí criei a tabela com sucesso....

 

Agora de uma olhada no que aconteceu....por favor!

 

Entre no chat e veja:

 

CHAT - clique no botão que tem lá!

 

Agora não sei o que fazer, pois onde encaixo a estrutura q chama a tabela....? e a validação dos campos e os campos do formulário?



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php

$usuario = 'Evandro';
$email = 'email@evandro.com';

if(isset($_POST['act']) && !empty($_POST['act'])){
switch($_POST['act']){
case 'validar_email':
if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$ret['msg'] = "Por favor digite um email válido";
$ret['erro'] = 1;
}else{
//ABRE CONEXÃO COM O BANCO
$sql = "SELECT count(*) FROM TABELA WHERE email = '{$_POST['email']}'";
$qtd = mysql_query($sql);
if($qtd > 0){
$ret['erro'] = 0;
$ret['msg'] = 'sucesso';
}else{
$ret['erro'] = 1;
$ret['msg'] = 'Email não cadastrado';
}
}
echo json_encode($ret);
break;
}
}
?><form name="surveyForm" method="post" action="/atendimento/client.php" />
		<input type="hidden" name="style" value="silver"/>
		<input type="hidden" name="info" value=""/>
		<input type="hidden" name="referrer" value=""/>
		<input type="hidden" name="survey" value="on"/>
		<input type="hidden" name="message" value=""/>
		<input type="hidden" name="name" value="<?php echo $nome; ?>"/>
		<input type="hidden" name="email" value="<?php echo $email; ?>"/>
		<button type="submit">Iniciar atendimento online</button>
</form>


</body>
</html>

De uma olhada o q falta!!!!!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falta vc prestar atenção, eu expliquei o código que o colega deu e vc surgiu com isso de onde?

 

 


<button type="submit">Iniciar atendimento online</button> $usuario = 'Evandro'; $email = 'email@evandro.com';

Outra eu expliquei isso e vc n mudou o nome

$sql = "SELECT count(*) FROM TABELA WHERE email = '{$_POST['email']}'";

 

Ficar nervoso não adianta, os códigos não vão se sensibilizar com isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

meu deus to ficando louco!



Olha só vou com calma agora....

 

vê seestá certo o client.php

 

<?php
/*
 * This file is part of Mibew Messenger project.
 * 
 * Copyright (c) 2005-2011 Mibew Messenger Community
 * All rights reserved. The contents of this file are subject to the terms of
 * the Eclipse Public License v1.0 which accompanies this distribution, and
 * is available at http://www.eclipse.org/legal/epl-v10.html
 * 
 * Alternatively, the contents of this file may be used under the terms of
 * the GNU General Public License Version 2 or later (the "GPL"), in which case
 * the provisions of the GPL are applicable instead of those above. If you wish
 * to allow use of your version of this file only under the terms of the GPL, and
 * not to allow others to use your version of this file under the terms of the
 * EPL, indicate your decision by deleting the provisions above and replace them
 * with the notice and other provisions required by the GPL.
 * 
 * Contributors:
 *    Evgeny Gryaznov - initial API and implementation
 */

require_once('libs/common.php');
require_once('libs/chat.php');
require_once('libs/operator.php');
require_once('libs/groups.php');
require_once('libs/expand.php');
require_once('libs/captcha.php');
require_once('ajax.validation.php'); 

loadsettings();
if($settings['enablessl'] == "1" && $settings['forcessl'] == "1") {
	if(!is_secure_request()) {
		$requested = $_SERVER['PHP_SELF'];
		if($_SERVER['REQUEST_METHOD'] == 'GET' && $_SERVER['QUERY_STRING']) {
			header("Location: ".get_app_location(true,true)."/client.php?".$_SERVER['QUERY_STRING']);
		} else {
			die("only https connections are handled");
		} 		
		exit;
	}
}

if( !isset($_GET['token']) || !isset($_GET['thread']) ) {

	$thread = NULL;
	if( isset($_SESSION['threadid']) ) {
		$thread = reopen_thread($_SESSION['threadid']);
	}

	if( !$thread ) {
		$groupid = "";
		$groupname = "";
		if($settings['enablegroups'] == '1') {
			$groupid = verifyparam( "group", "/^\d{1,8}$/", "");
			if($groupid) {
				$group = group_by_id($groupid);
				if(!$group) {
					$groupid = "";
				} else {
					$groupname = get_group_name($group);
				}
			}
		}

		$visitor = visitor_from_request();
		
		if(isset($_POST['survey']) && $_POST['survey'] == 'on') {
			$firstmessage = getparam("message");
			$info = getparam("info");
			$email = getparam("email");
			$referrer = urldecode(getparam("referrer"));

			if($settings['usercanchangename'] == "1" && isset($_POST['name'])) {
				$newname = getparam("name");
				if($newname != $visitor['name']) {
					$data = strtr(base64_encode(myiconv($webim_encoding,"utf-8",$newname)), '+/=', '-_,');
					setcookie($namecookie, $data, time()+60*60*24*365);
					$visitor['name'] = $newname;
				}
			}
		} else {
			$firstmessage = NULL;
			$info = getgetparam('info');
			$email = getgetparam('email');
			$referrer = isset($_GET['url']) ? $_GET['url'] :
				(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "");
			if(isset($_GET['referrer']) && $_GET['referrer']) {
				$referrer .= "\n".$_GET['referrer'];
			}
		}

		if(!has_online_operators($groupid)) {
			$page = array();
			setup_logo();
			setup_leavemessage($visitor['name'],$email,$firstmessage,$groupid,$groupname,$info,$referrer,can_show_captcha());
			expand("styles", getchatstyle(), "leavemessage.tpl");
			exit;
		}

		if($settings['enablepresurvey'] == '1' && !(isset($_POST['survey']) && $_POST['survey'] == 'on')) {
			$page = array();
			setup_logo();
			setup_survey($visitor['name'], $email, $groupid, $info, $referrer);
			expand("styles", getchatstyle(), "survey.tpl");
			exit;
		}

		$remoteHost = get_remote_host();
		$userbrowser = $_SERVER['HTTP_USER_AGENT'];

		$link = connect();
		if(!check_connections_from_remote($remoteHost, $link)) {
			mysql_close($link);
			die("number of connections from your IP is exceeded, try again later");
		}
		$thread = create_thread($groupid,$visitor['name'], $remoteHost, $referrer,$current_locale,$visitor['id'], $userbrowser,$state_loading,$link);
		$_SESSION['threadid'] = $thread['threadid'];
		
		if( $referrer ) {
			post_message_($thread['threadid'],$kind_for_agent,getstring2('chat.came.from',array($referrer)),$link);
		}
		post_message_($thread['threadid'],$kind_info,getstring('chat.wait'),$link);
		if($email) {
			post_message_($thread['threadid'],$kind_for_agent,getstring2('chat.visitor.email',array($email)),$link);
		}
		if($info) {
			post_message_($thread['threadid'],$kind_for_agent,getstring2('chat.visitor.info',array($info)),$link);
		}
		if($firstmessage) {
			$postedid = post_message_($thread['threadid'],$kind_user,$firstmessage,$link,$visitor['name']);
			commit_thread( $thread['threadid'], array('shownmessageid' => $postedid), $link);
		}
		mysql_close($link);
	}
	$threadid = $thread['threadid'];
	$token = $thread['ltoken'];
	$level = get_remote_level($_SERVER['HTTP_USER_AGENT']);
	$chatstyle = verifyparam( "style", "/^\w+$/", "");
	header("Location: $webimroot/client.php?thread=$threadid&token=$token&level=$level".($chatstyle ? "&style=$chatstyle" : ""));
	exit;
}

$token = verifyparam( "token", "/^\d{1,8}$/");
$threadid = verifyparam( "thread", "/^\d{1,8}$/");
$level = verifyparam( "level", "/^(ajaxed|simple|old)$/");

$thread = thread_by_id($threadid);
if( !$thread || !isset($thread['ltoken']) || $token != $thread['ltoken'] ) {
	die("wrong thread");
}

setup_chatview_for_user($thread, $level);

$pparam = verifyparam( "act", "/^(mailthread)$/", "default");
if( $pparam == "mailthread" ) {
	expand("styles", getchatstyle(), "mail.tpl");
} else if( $level == "ajaxed" ) {
	expand("styles", getchatstyle(), "chat.tpl");
} else if( $level == "simple" ) {
	expand("styles", getchatstyle(), "chatsimple.tpl");
} else if( $level == "old" ) {
	expand("styles", getchatstyle(), "nochat.tpl");
}

?>

Agora veja se está correto o ajax.validation.php

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body><script type="text/javascript">
$(function(){
$('#FormValidation').submit(function(e){
e.preventDefault();
var email = $('#FormValidation .username').val();


$.post(
'ajax_validation.php',
{act: 'validar_email', email: email},
function(data){
if(data.erro == 1){
alert(data.msg);
return false;
}
}
);
});
});
</script>
<?php
if(isset($_POST['act']) && !empty($_POST['act'])){
switch($_POST['act']){
case 'validar_email':
if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$ret['msg'] = "Por favor digite um email válido";
$ret['erro'] = 1;
}else{
//ABRE CONEXÃO COM O BANCO
$sql = "SELECT count(*) FROM TABELA WHERE email = '{$_POST['email']}'";
$qtd = mysql_query($sql);
if($qtd > 0){
$ret['erro'] = 0;
$ret['msg'] = 'sucesso';
}else{
$ret['erro'] = 1;
$ret['msg'] = 'Email não cadastrado';
}
}
echo json_encode($ret);
break;
}
}
?>
</body>
</html>

Me diga o qe falta, já criei a tabela....e tudo....me de uma luz por favor!

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.