Criar tela de configurar conexão no PHP

30/01/2018

0

Boa tarde,

Estou fazendo um sistema em PHP 7 e estou precisando criar uma tela de configurar a conexão, para que o usuário consiga acessar outros bancos no mesmo sistema, somente trocando o caminho ou trocando apenas credencias.

É possível? Algum tutorial ou dica me ajudaria bastante.

Obs: Sou novo em PHP.

Obrigado desde já!
Luis Rebecca

Luis Rebecca

Responder

Post mais votado

30/01/2018

Boa tarde, tudo bem?

Então, podemos fazer isso salvando as configurações de conexão em cookies (que são dados salvos no navegador, em arquivos de texto simples), e criando um formulário para alterar esses valores.
Estou usando como exemplo aqui minha configuração que uso do meu localhost:

<?php
	
	//Verificando se não existe um Cookie com o nome "HOSTNAME"
	if(!isset($_COOKIE['HOSTNAME'])){
		//Se não existir, cria ele e os demais (isso para não ocorrer de resetar os cookies para o valor padrão ao atualizar a página)
		setcookie("HOSTNAME", "localhost");
	    setcookie("USERNAME", "root");
	    setcookie("PASSWORD", null); //Está null porque o meu localhost não tem senha
	    setcookie("DATABASE", "Teste");
	    setcookie("CHARSET", "utf8");
	}

	//Guardando valores dos cookies em variáveis para usarmos no formulário
    $HOSTNAME = $_COOKIE['HOSTNAME'];
    $USERNAME = $_COOKIE['USERNAME'];

    //Verifica se tem uma senha no cookie PASSWORD, se tiver, pega o valor dela, se não, passa null
    if(isset($_COOKIE['PASSWORD'])){
    	$PASSWORD = $_COOKIE['PASSWORD'];
    }else{
    	$PASSWORD = null;
    }

    $DATABASE = $_COOKIE['DATABASE'];
    $CHARSET = $_COOKIE['CHARSET'];

    //Imprimindo na tela o código do formulário em HTML, passando os valores da configuração atual
    echo "
		<form method='post' accept-charset='utf-8'>
			<label for='hostname'>Nome do Host</label>
			<input type='text' name='hostname' value='$HOSTNAME' required />
			<br>
			<label for='username'>Nome do Usuário</label>
			<input type='text' name='username' value='$USERNAME' required />
			<br>
			<label for='password'>Senha</label>
			<input type='text' name='password' value='$PASSWORD' />
			<br>
			<label for='database'>Banco de Dados</label>
			<input type='text' name='database' value='$DATABASE' required />
			<br>
			<label for='charset'>CharSet</label>
			<input type='text' name='charset' value='$CHARSET' required />
			<br>
			<input type='submit' name='salvar' value='Salvar' />
		</form>
    ";

    //Verifica se foi pressionado o botão "salvar"
    if(isset($_POST["salvar"])){
    	//Se sim, substitui os valores dos cookies com as configurações pelos valores enviados pelo formulário
    	setcookie("HOSTNAME", $_POST["hostname"]);
	    setcookie("USERNAME", $_POST["username"]);
	    setcookie("PASSWORD", $_POST["password"]);
	    setcookie("DATABASE", $_POST["database"]);
	    setcookie("CHARSET", $_POST["charset"]);
    }

?>


> Sempre que quiser acessar os dados de um cookie, basta usar o comando $_COOKIE["nome do cookie"].
> Para criar ou alterar um cookie, basta usar o comando setcookie("nome do cookie", "valor a guardar"), caso já exista, irá alterar o valor, se não existir, criará um novo.

Aí você pode criar um botão de editar as configurações, aí ao clicar nele, imprima na tela aquele echo com o formulário.

Espero ter ajudado!! Abraços.

Frankley

Frankley
Responder

Mais Posts

31/01/2018

Bot47

Guardar senha de banco em cookie não parece o melhor modo... Eu faria um arqv no servidor do PHP ou criaria uma base para o sistema onde ficaram essas informações mais sensíveis.
Responder

01/02/2018

Luis Rebecca

Então na verdade eu queria que a propária pessoa alterasse no formulário de configuração de conexão o banco de dados, não precisaria necessariamente ser salvo em algum lugar, poderia simplesmente trocar o caminho do banco e o sistema e iniciado com outro banco.<br />
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar