Cadastro de usuários com o mesmo domínio

Saudações, Família Scriptcase!
Estou precisando de duas ajudas, pessoal, Grande Mestre @InfinitusWeb!

1ª Ajuda: Goastaria de usar um truque que permitisse cadastrar usuários que pertençam ao domínio da empresa.

Explicando: permitir que o sistema só aceite cadastro de usuários com o formato nome.sobreno@dominio_da_empresa.com.
exemplo: belmiro.constantino@scriptcase.com;

2ª Ajuda: Fazer a importação em massa de usuários a partir de uma planilha Excel com o tipo de segurança md5 obedecendo a 1ª ajuda.

Desde já, o meu sincero agradecimento, Família Scriptcase!

Bom dia @Belmiro.

A primeiro é tranquilo, mas a segunda, do que se trata o md5? vai ter que descriptografar? (Não é possível).
Se for só a senha tudo bem, salva-la no formato que já está.

Edite a planilha no excel e salve como csv.

Assim fica fácil a importação.

1 Curtida

1º Como é que faria para a primeira, Grande Mestre?

2º Nós criamos uma tabela em Excel para a importação em massa dos usuários com as senhas do tipo 12345678910, mas na hora de os usuários efectuarem o login, não entram porque o sistema obriga que as senhas devam estar criptografadas.

$_SERVER[‘SERVER_NAME’] guarda o domínio, basta pegar o nome do usuário concatenar com @ + $_SERVER[‘SERVER_NAME’] .

converte a planilha em csv, faz upload dela e leia com fopen.

1 Curtida

Ficou mais complicado para eu perceber, Grande Mestre!
1º O propósito é permitir o cadastro de usuários, a partir do sistema, mas só pode aceitar o email em massa.

2º O segundo ponto está detalhado mais acima…

Bom dia.

Na verdade agora ficou difícil para eu perceber.
A dica para criar a conta do usuário usando o domínio fica válida ainda.

ler uma planilha de excel (sugeri em converter em csv) e ao inserir a senha passar a função php md5 para gravar nesse formato.

1 Curtida

“ler uma planilha de excel (sugeri em converter em csv) e ao inserir a senha passar a função php md5 para gravar nesse formato.” Já tentamos fazer desse jeito, mas sem êxito. Tem algum tutorial online que permita com que instrua como é possível fazer isso em Excel? Quase todas as opções sugerem com VBA, algo que não domino.

bem, não vejo como ter problemas em ler um arquivo csv, mas se insiste em que seja no formato xlx, veja:

1 Curtida

Normalmente, eu importo no formato csv. Mas, o problema está em criptografar a senha no formato md5, Mestre.

Ler os dados do arquivo.
$senhaMD5 = md5($senha);
// Onde $senha é a coluna que vem do csv.

Não entendo a dificuldade nisso.

Apresente seu código que diz não funcionar aqui.

1 Curtida

Ainda não criei um código porque pensei que o Excel me daria essa flexibilidade, Mestre.

Reiteras saudações, Grande Mestre!
Criei duas aplicações blanks uma index e outra processa.
Preparei o ficheiro em Excel no formado .xml.
O que acontece é que já está a criptografar a senha com MD5, mas a aplicação só está a permitir a inserção de um dado e dá erro. Eis as aplicações abaixo:

index.php
?>

Upload do Excel formato .xml

Ao guardar o ficheiro do Excel, seleccione Guardar como o tipo: Folha de cálculo XML 2003(*.xml) e clique em Guardar, Sim...


<?php

processa.php

if(!empty($_FILES['arquivo']['tmp_name'])){
	$arquivo = new DomDocument();
	$arquivo->load($_FILES['arquivo']['tmp_name']);
	//var_dump($arquivo);
	
	$linhas = $arquivo->getElementsByTagName("Row");
	//var_dump($linhas);
	
	$primeira_linha = true;
	
	foreach($linhas as $linha){
		if($primeira_linha == false){
			 //$formatter = new SimpleDateFormat("yyyy-MM-dd");
			$login = $linha->getElementsByTagName("Data")->item(0)->nodeValue;
			//echo "Matrícula: $login <br>";
			
			$pswd = $linha->getElementsByTagName("Data")->item(1)->nodeValue;
			//echo "E-mail: $pswd <br>";
			
			$name = $linha->getElementsByTagName("Data")->item(2)->nodeValue;
			//echo "Matrícula avaliador: $matricula_avaliador <br>";
			
			$email = $linha->getElementsByTagName("Data")->item(3)->nodeValue;
			//echo "Nivel de Acesso: $nome_avaliador <br>";
			
			$active = $linha->getElementsByTagName("Data")->item(4)->nodeValue;
			//echo "Nivel de Acesso: $indicador_objetivo_um <br>";
			
			$activation_code = $linha->getElementsByTagName("Data")->item(5)->nodeValue;
			//echo "Nivel de Acesso: $realizado_objetivo_um <br>";
			
			$priv_admin = $linha->getElementsByTagName("Data")->item(6)->nodeValue;
			//echo "Nivel de Acesso: $indicador_objetivo_dois <br>";
			
			$padrao = $linha->getElementsByTagName("Data")->item(7)->nodeValue;
			//echo "Nivel de Acesso: $realizado_objetivo_dois <br>";
			/**
			$indicador_objetivo_tres = $linha->getElementsByTagName("Data")->item(8)->nodeValue;
			//echo "Nivel de Acesso: $indicador_objetivo_tres <br>";
			
			$realizado_objetivo_tres = $linha->getElementsByTagName("Data")->item(9)->nodeValue;
			//echo "Nivel de Acesso: $realizado_objetivo_tres <br>";
			
			$data_um = $linha->getElementsByTagName("Data")->item(10)->nodeValue;
			//echo "Nivel de Acesso: $data_um <br>";
			
			$data_dois = $linha->getElementsByTagName("Data")->item(11)->nodeValue;
			//echo "Data 1: $data_dois <br>";
			**/
						
			//Inserir o usuário no BD
			$result_usuario = "INSERT INTO sec_users(login,pswd,name,email,active,activation_code,priv_admin,padrao) VALUES ('$login',MD5('$pswd'),'$name','$email','$active','$activation_code','$priv_admin',$padrao)";
			sc_exec_sql($result_usuario);
			sc_commit_trans();
		}
		$primeira_linha = false;
		
	}
	echo "Dados importados com sucesso!!!";
}

Não sei onde está o erro.

Extensão XML não não é de arquivo padrão Excel.

Eu usaria https://www.php.net/manual/pt_BR/function.simplexml-load-file.php

Para ler arquivos de extensão XML.

1 Curtida

Saudações, Grande Mestre @InfinitusWeb!
A importação em massa de usuários já está a funcionar perfeitamente com o código que apresentei mais acima. O problema estava na planilha do Excel que faltava preencher um campo os campos vazios em NULL.
Agora, só falta a opção de permitir fazer o cadas via form somente com o domínio @meu_dominio.com.

:point_up_2:


1 Curtida