Ir para conteúdo

POWERED BY:

Arquivado

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

Anderson Mendonça

Sistema de Atendimento AOVIVO com "restrição"

Recommended Posts

Olá! Bom dia galera!

 

Estou desenvolvendo um sistema de atendimento aovivo, mas gostaria que este serviço se destinasse somente aos meus CLIENTES!

 

Onde tivesse uma área de LOGIN ou entrasse com o email....

 

Já tentei fazer de outra maneira, criei um sistema de Login com autenticação de senha, mas o problema é que não consegui amarrar o cliente ao chat, eles registravam no site, cadastravam seu nome de usuário e senha e aí coloquei o botão do atendimento AOVIVO na página restrita! Mas eles entravam no suporte com qualquer nome ou visitante e tal.....e aí não tinha o controle de cada cliente específico, pois eles poderiam entrar no chat com nomes ou email diferentes.....

 

 

Será que alguém poderia me ajudar!?

 

Atualmente uso o MIBEW Messenger! Ele tem acesso restrito somente a equipe técnica, gostaria que tb tivesse aos clientes!, ou tipo, alguma permissão especial pré-cadastrada com nome ou email, alguma condição especial, seria possível!???????

 

Obrigado desde já!

 

Anderson Mendonça

Programador e Webmaster

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode deixar o link de acesso ao chat somente disponivel apenas quando o cliente estiver logado.

 

Usando SESSION

o problema é que não saberei quem é o cliente q estará ali, pois ele pode entrar com qualquer nome no chat, na conversa e gostaria de modificar a maneira com que meus clientes entrem no chat....somente com algum nome ou email pré-cadastrado entende?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A lógica é mais ou menos algo assim.

 

Você trabalharia com nivel de acesso cria mais um campo em sua tabela de clientes chat do tipo enum com os valores 0 e 1.

 

Ai tipo na hora que o ususario logar em sistema se o campo chat tiver com o valor = 0 não exbir o botão Atendimento AOVIVO e estiver com o valor 1 exibi o botão Atendimento AOVIVO. E para ter certeza que o usuario não autorizado não consiga acessar a pagina de Atendimento entra o que o Rogério falou você usua SESSION para fazer esta validação.

 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A lógica é mais ou menos algo assim.

 

Você trabalharia com nivel de acesso cria mais um campo em sua tabela de clientes chat do tipo enum com os valores 0 e 1.

 

Ai tipo na hora que o ususario logar em sistema se o campo chat tiver com o valor = 0 não exbir o botão Atendimento AOVIVO e estiver com o valor 1 exibi o botão Atendimento AOVIVO. E para ter certeza que o usuario não autorizado não consiga acessar a pagina de Atendimento entra o que o Rogério falou você usua SESSION para fazer esta validação.

 

Espero ter ajudado.

bah cara, o problema ainda não é esse, saca só, gostaria de definir algum parametro individual pra cada cliente, onde somente com o email certo ele pudesse entrar no chat, mesmo sendo ou não cliente, eu cadastraria os emails deles e eles teriam acesso pra entrar e conversar com o suporte aovivo....será q fui claro? Pq só assim posso fazer a pesquisa no sistema do banco de dados e ver quantas vezes ele entrou e conversou e tal, sem ter problemas caso ele entrasse com outro nome no chat sem ser o email cadastrado...entendeu!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa cara, mas acho que você se perdeu em suas citações.

 

No primeiro post vc diz: Estou desenvolvendo um sistema de atendimento aovivo, mas gostaria que este serviço se destinasse somente aos meus CLIENTES!

 

Depois vc diz: gostaria de definir algum parametro individual pra cada cliente, onde somente com o email certo ele pudesse entrar no chat, mesmo sendo ou não cliente.

 

 

Seguindo sua diretriz :

 

P: Gostaria de definir algum parametro individual pra cada cliente, onde somente com o email certo ele pudesse entrar no chat :

R: Se ele já tem cadastro no site faz a verificação no banco para validar o email.

 

P: sem ter problemas caso ele entrasse com outro nome no chat sem ser o email cadastrado

R: faz a validação somente pelo email

Compartilhar este post


Link para o post
Compartilhar em outros sites

capturarjkx.png

 

tá ai, por exemplo! Gostaria q quando o cliente entrasse ele tivesse q colocar no campo do email o email dele, que estaria previamente cadastrado no banco....tem como fazer isso!?

 

Desta forma nem precisa fazer uma area de login ....



Desculpa cara, mas acho que você se perdeu em suas citações.

 

No primeiro post vc diz: Estou desenvolvendo um sistema de atendimento aovivo, mas gostaria que este serviço se destinasse somente aos meus CLIENTES!

 

Depois vc diz: gostaria de definir algum parametro individual pra cada cliente, onde somente com o email certo ele pudesse entrar no chat, mesmo sendo ou não cliente.

 

 

Seguindo sua diretriz :

 

P: Gostaria de definir algum parametro individual pra cada cliente, onde somente com o email certo ele pudesse entrar no chat :

R: Se ele já tem cadastro no site faz a verificação no banco para validar o email.

 

P: sem ter problemas caso ele entrasse com outro nome no chat sem ser o email cadastrado

R: faz a validação somente pelo email

Me desculpe, acho que estou me perdendo nas minhas dúvidas....

 

Mas os clientes ainda não são cadastrados, existe um chat aovivo no momento, que destina-se aos nossos clientes, mas quero que cada cliente, individualmente possa entrar no chat somente se ele inserir no campo do email o email correto que eu determinar...para mim então poder ter o controle necessário dos atendimentos....é simples porém ainda não consegui resolver isso....pode me ajudar! Me desculpe se estou sendo confuso!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem sim, provavelmente deve ser um form:

 

if (){

faz a validação para só acessar se estiver com o campo email preenchido e que esteja no formato de email

}

elseif(){

faz a validação para só acessar se estiver com o email cadastrado no banco

caso esteja passa para o próxima página do chat

 

}else{

retorna uma mensagem de erro

e se quiser faz o location para a mesma página

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem sim, provavelmente deve ser um form:

 

if (){

faz a validação para só acessar se estiver com o campo email preenchido e que esteja no formato de email

}

elseif(){

faz a validação para só acessar se estiver com o email cadastrado no banco

caso esteja passa para o próxima página do chat

 

}else{

retorna uma mensagem de erro

e se quiser faz o location para a mesma página

}

por favor teria como me ajudar, eu não sei como fazer isso....

 

http://www.aguiasistemas.net/atendimento/client.php?locale=pt-br&style=silver&url=http%3A//www.aguiasistemas.net/&referrer=

 

Dê uma olhada na ágina que entra no chat....por favor....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta é a pagina do client.php - que entra no chat....

 

<?php
/*
* This file is part of Mibew Messenger project.
*
* Copyright © 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");
}

?>

 

Tem sim, provavelmente deve ser um form:

 

if (){

faz a validação para só acessar se estiver com o campo email preenchido e que esteja no formato de email

}

elseif(){

faz a validação para só acessar se estiver com o email cadastrado no banco

caso esteja passa para o próxima página do chat

 

}else{

retorna uma mensagem de erro

e se quiser faz o location para a mesma página

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

A validação terá que ser feita aqui:

$email = getparam("email");

Agora onde ela se encontra .... vc vai ter q quebrar a cabeça um pouquin .....

tá eo q faço com

$email = getparam("email");

 

?????

 

como faço insiro o email do cliente ali? entre aspas ?

massão vários clientes como faço copio e colo, separo por virgula?

 

por favor me ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse site tem cadastro de clientes?

 

Os emails já estão cadastrados no banco?

 

Puxa os emails do banco fazendo um foreach e procura onde faz a validação

$email = getparam("email");

 

e faz as condições de validação lá.

 

Que tem acesso aos códigos é você, não temos como procurar por um script onde não temos acesso aos mesmos.

 

Não tem jeito, vai ter que quebrar a cabeça um pouquin .... ou então procurar um chat mais simples, mas de qualquer forma vai ter que ter noção de php e mysql. para fazer modificações.

Compartilhar este post


Link para o post
Compartilhar em outros sites

SERÁ QUE ALGUÉM PODERIA ME AJUDAR POR FAVOR!????????

 

NÃO SEI COMO VALIDAR UM MAIL NO PARÂMETRO QUE O ROGÉRIO CITOU....

 

$email = getparam("email");

 

O QUE FAÇO PRA FAZER FUNCIONAR ESTE SCRIPT? SOMENTE SE O CLIENTE COLOCAR SEU EMAIL CERTO NO CAMPO DO EMAIL...?????QUE EU CADASTRAR ANTERIORMENTE?

 

 

Esse site tem cadastro de clientes?

 

Os emails já estão cadastrados no banco?

 

Puxa os emails do banco fazendo um foreach e procura onde faz a validação

$email = getparam("email");

 

e faz as condições de validação lá.

 

Que tem acesso aos códigos é você, não temos como procurar por um script onde não temos acesso aos mesmos.

 

Não tem jeito, vai ter que quebrar a cabeça um pouquin .... ou então procurar um chat mais simples, mas de qualquer forma vai ter que ter noção de php e mysql. para fazer modificações.

 

 

OK...eu tenho um pouco de noção, mas não sei validar isso....não tem cadastro dos clientes ainda....so queria poder fazer esta restriçao antes de entrar no chat....existe outra forma de obrigar o cliente a botar o email correto sem ter q puxar no banco ? ou algo parecido?

 

talvez assim não precisasse quebrar a cabeça mais do quejá estou quebrando a 1 mes....o cliente bota o email correto se naum colocar não entra!

 

estes scripts são opensource....dê uma olhada vc mesmo....por favor!

 

Baixe mibew.org

 

____________________________________________________________________________________________

 

Bah Rogério, já tentei vários outros scripts opensource e nenhum consegui com que ficassem restrito....nem o mais simples, pois todos entram anonimamente, ou como visitante sem a possibilidade de um pré cadastro ou eu mesmo cadastrando os clientes manualmente para terem acesso exclusivo.....por isso preciso disso, pois só assim terei controle sobre os operadores e o as conversas reais e detalhadas com cada cliente....e com seu respectivo operador!

 

 

 

Muito obrigado por tentar me ajudar, mas não sei o que faço mais!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

livezila é pago para mais de um operador!

mais de um operador você quer dizer como?

 

eu utilizei e tinha 5 operadores disponíveis para atendimento normal, dentro do chat a falta de recursos era praticamente nulla

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fica mais fácil, vc criar uma tabela dentro do banco do chat e fazer o cadastro manual mesmo.

Faz a verificação como mencionei acima e deixa essa como a última opção


else($email) {
post_message_($thread['threadid'],$kind_for_agent,getstring2('chat.visitor.email',array($email)),$link);
}

o que tem acima está dentro de seu próprio código






mais de um operador você quer dizer como?

 

eu utilizei e tinha 5 operadores disponíveis para atendimento normal, dentro do chat a falta de recursos era praticamente nulla

 

Realmente livezilla é muito bom.

Mas o que ele quer é validar o acesso apenas para clientes fazendo verificação por email

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.