Ir para conteúdo

POWERED BY:

Arquivado

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

wavrik

Sobre o PHP.

Recommended Posts

Primeiramente bom dia porque aqui são exatamente 09:00 da manhã, neste dia quente estou passando por umas dificuldades. Bem a princípio um grupo de amigos pagou para um desenvolvedor em php fazer um site de e-commerce para eles, ele foi feito e já está pronto. Só que esse cara ta com uns problemas familiares e deixou o site de lado para qualquer futuro suporte ou modificação.

Agora eu que não tenho experiência profissional com essa tecnologia me ofereci para ajudar eles e ganhar uns trocados extras na sua manutenção, eu atualmente sou desenvolvedor android e tenho conhecimento em muitas linguagens como, as3, borland, java e etc.

PHP estou um pouco familiarizado devido que uma vez eu criei um webservice em php para o meu aplicativo teste que estava desenvolvendo em android. Agora vou mencionar as minhas dúvidas espero que entendam.


Primeiro que tudo me conectei ao FTP que está localizado todos os arquivos que estão conectados ao novo servidor que está hospedando o site, instalei aqui no meu pc localmente o apache que já vem com o xamp, onde ele já instala o php, mysql e apache. Já o ambiente todo montado para o desenvolvimento em php, o problema é que eu nunca tinha visto a organização de pastas quando você quer subir algum site para o servidor e sua organização.


Bem, estou tentando fazer com que o site rode no meu servidor local pelo apache, já baixei todos os arquivos do ftp e estou tentando abrir ele no meu pc localmente, está com um problema que eu não tenho o banco de dados instalado. Uma dúvida que eu tenho, seria o próprio php já pode se conectar no banco de dados mysql no caso e já criar o banco direto la? com as suas tabelas e etc? Porque eu tentei procurar 1 arquivo .sql perdido e não achei para fazer o import.


Acho até estranho porque segundo meu amigo ele apenas pega os arquivos e joga no servidor. Quem puder tirar essa dúvida eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao no caso eu tenho que criar o banco mesmo? Achei que o proprio php ja criava, ja que meu amigo falou que so jogava os arquivos no ftp, acho que o desenvolvedor importou um banco .sql antes de jogar os arquivos no ftp.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok resolvi conseguir pegar o file.sql que irei importar no banco, agora surgiu uma duvida no config.php existe uma linha assim

 

 

<?php

// HTTP

define('HTTP_SERVER', 'url do site');

 

// HTTPS

define('HTTPS_SERVER', 'url do site');

 

 

 

Agora como eu quero fazer os testes localmente aonde geralmente o cara seta a url do site? para o caminho especificio para o ftp e mascara?

 

por exemplo

 

www.fulanodetal.com.br

 

que no caso

 

www.fulanodetal.com.br acessa no ftp o 192.180.0.4/public_html/index.php

 

 

porque la no index.php o desenvolvedor fez uma validacao assim

 

 

// Store

if (isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) {

$store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`ssl`, 'www.', '') = '" . $db->escape('https://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");

} else {

$store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`url`, 'www.', '') = '" . $db->escape('http://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");

}

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

wavrik, deixa eu ver se entendi, o desenvolvedor largou de mão o sistema (vamos ser francos "problemas familiares" == cobrou muito pouco ou viu que os clientes eram FDPs), ai você resolveu dar manutenção em um sistema que você não tem idéia de como foi desenvolvido e também não conhece a linguagem? Você acha que isso vai dar certo mesmo???

 

Sobre o seu problema, localmente você usa a url apenas como localhost, se estiver em alguma pasta, localhost/nome_da_pasta, apenas isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei a tecnologia, mas vai dar certo sim, eu entendo muito bem e vontade para estudar aqui não falta ;)

 

Falou pouco mas falou bonito, parabéns e boa sorte a você e principalmente aos seus amigos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado ESerra

Aproveitando ate seu interesse em ajudar no ftp existe duas pastas la que eu percebi que ele já se conecta com o index.php da aplicação seria o :


public_html e www, mas no caso ele acessa pelo public_html, la ele ja abre o index.php, mas nele não existe nenhum form mas se você se conectar diretamente pela url do site ele mostra a página bonitinha vou mostrar aqui o arquivo.



// Registry
$registry = new Registry();

// Loader
$loader = new Loader($registry);
$registry->set('load', $loader);

// Config
$config = new Config();
$registry->set('config', $config);

// Database 
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$registry->set('db', $db);

// Store
if (isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) {
	$store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`ssl`, 'www.', '') = '" . $db->escape('https://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");
} else {
	$store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`url`, 'www.', '') = '" . $db->escape('http://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");
}

if ($store_query->num_rows) {
	$config->set('config_store_id', $store_query->row['store_id']);
} else {
	$config->set('config_store_id', 0);
}
		
// Settings
$query = $db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = '0' OR store_id = '" . (int)$config->get('config_store_id') . "' ORDER BY store_id ASC");

foreach ($query->rows as $setting) {
	if (!$setting['serialized']) {
		$config->set($setting['key'], $setting['value']);
	} else {
		$config->set($setting['key'], unserialize($setting['value']));
	}
}

if (!$store_query->num_rows) {
	$config->set('config_url', HTTP_SERVER);
	$config->set('config_ssl', HTTPS_SERVER);	
}

// Url
$url = new Url($config->get('config_url'), $config->get('config_secure') ? $config->get('config_ssl') : $config->get('config_url'));	
$registry->set('url', $url);

// Log 
$log = new Log($config->get('config_error_filename'));
$registry->set('log', $log);

function error_handler($errno, $errstr, $errfile, $errline) {
	global $log, $config;
	
	switch ($errno) {
		case E_NOTICE:
		case E_USER_NOTICE:
			$error = 'Notice';
			break;
		case E_WARNING:
		case E_USER_WARNING:
			$error = 'Warning';
			break;
		case E_ERROR:
		case E_USER_ERROR:
			$error = 'Fatal Error';
			break;
		default:
			$error = 'Unknown';
			break;
	}
		
	if ($config->get('config_error_display')) {
		echo '<b>' . $error . '</b>: ' . $errstr . ' in <b>' . $errfile . '</b> on line <b>' . $errline . '</b>';
	}
	
	if ($config->get('config_error_log')) {
		$log->write('PHP ' . $error . ':  ' . $errstr . ' in ' . $errfile . ' on line ' . $errline);
	}

	return true;
}
	
// Error Handler
set_error_handler('error_handler');

// Request
$request = new Request();
$registry->set('request', $request);
 
// Response
$response = new Response();
$response->addHeader('Content-Type: text/html; charset=utf-8');
$response->setCompression($config->get('config_compression'));
$registry->set('response', $response); 
		
// Cache
$cache = new Cache();
$registry->set('cache', $cache); 

// Session
$session = new Session();
$registry->set('session', $session);

// Language Detection
$languages = array();

$query = $db->query("SELECT * FROM `" . DB_PREFIX . "language` WHERE status = '1'"); 

foreach ($query->rows as $result) {
	$languages[$result['code']] = $result;
}

$detect = '';

if (isset($request->server['HTTP_ACCEPT_LANGUAGE']) && $request->server['HTTP_ACCEPT_LANGUAGE']) { 
	$browser_languages = explode(',', $request->server['HTTP_ACCEPT_LANGUAGE']);
	
	foreach ($browser_languages as $browser_language) {
		foreach ($languages as $key => $value) {
			if ($value['status']) {
				$locale = explode(',', $value['locale']);

				if (in_array($browser_language, $locale)) {
					$detect = $key;
				}
			}
		}
	}
}

if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages) && $languages[$session->data['language']]['status']) {
	$code = $session->data['language'];
} elseif (isset($request->cookie['language']) && array_key_exists($request->cookie['language'], $languages) && $languages[$request->cookie['language']]['status']) {
	$code = $request->cookie['language'];
} elseif ($detect) {
	$code = $detect;
} else {
	$code = $config->get('config_language');
}

if (!isset($session->data['language']) || $session->data['language'] != $code) {
	$session->data['language'] = $code;
}

if (!isset($request->cookie['language']) || $request->cookie['language'] != $code) {	  
	setcookie('language', $code, time() + 60 * 60 * 24 * 30, '/', $request->server['HTTP_HOST']);
}			

$config->set('config_language_id', $languages[$code]['language_id']);
$config->set('config_language', $languages[$code]['code']);

// Language	
$language = new Language($languages[$code]['directory']);
$language->load($languages[$code]['filename']);	
$registry->set('language', $language); 

// Document
$registry->set('document', new Document()); 		

// Customer
$registry->set('customer', new Customer($registry));

// Affiliate
$registry->set('affiliate', new Affiliate($registry));

if (isset($request->get['tracking'])) {
	setcookie('tracking', $request->get['tracking'], time() + 3600 * 24 * 1000, '/');
}
		
// Currency
$registry->set('currency', new Currency($registry));

// Tax
$registry->set('tax', new Tax($registry));

// Weight
$registry->set('weight', new Weight($registry));

// Length
$registry->set('length', new Length($registry));

// Cart
$registry->set('cart', new Cart($registry));

// Encryption
$registry->set('encryption', new Encryption($config->get('config_encryption')));
		
// Front Controller 
$controller = new Front($registry);

$controller->addPreAction(new Action('module/journal_cp'));

// SEO URL's

$controller->addPreAction(new Action('common/seo_url'));	

// Maintenance Mode
$controller->addPreAction(new Action('common/maintenance'));
	
// Router
if (isset($request->get['route'])) {
	$action = new Action($request->get['route']);
} else {
	$action = new Action('common/home');
}

// Dispatch
$controller->dispatch($action, new Action('error/not_found'));

// Output
$response->output();
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, pelo que eu entendi o index.php é um front controller, ou seja, é através dele que a sua aplicação responde para o usuário. No .htaccess, você teria um simples comando para remover o index.php.

 

Mas qual seria o problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc é novo no forum..

primeiramente vc tem que entender que a sua questão não é algo de interesse global.

 

É algo de interesse somente seu pois o que vc necessita é de uma análise de sistema.

Para alguém poder te ajudar, precisará fazer basicamente o seu serviço.

 

Caso queira suporte particular contrate um freelancer.. tem vários baratinhos que querem mostrar serviço e topam até de graça..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu amigo, você está numa enrascada que vai levar bem uns meses pra você começar a fazer alguma coisa com a aplicação.

 

Bom, primeiro de tudo, se você tem acesso ao FTP, você deve ter também outras informações de acesso, dentre elas, quem sabe, até do cPanel.

 

Se você tiver, você pode abrir o phpMyAdmin do servidor e baixar uma cópia das instruções SQL do banco da aplicação. Uma vez feito e importado localmente, basta configurar e, teoricamente a conexão poderá ser estabelecida.

 

Caso contrário, pelo menos você tem acesso ao banco em si. Nesse caso, você poderia seguir esse tutorial que apesar de antigo é uma solução. Você insere os dados que tem nos arquivos de configuração, envia pro servidor, executa e ele vai rodar várias rotinas para fazer o dump pra você.

 

Depois de funcionando, você tem que entender o que esse código gigante de bootstrap faz, separando cada componente e vasculhando a fundo, isto é, cada nova classe instanciada você tem de ir atrás da referida classe, abri-la e ver o que ela faz, seja através dos comentários dela (se houver), seja por isolar cada pequeno componente numa mini-aplicação à parte e testar um a um.

 

Infelizmente é a forma menos pior já que você parece não ter nenhuma documentação.

 

Se o destino sorrir pra você é bem possível que esses componentes tenham sido selecionados de um projeto maior. Digo isso porque criar uma loja virtual simples não é nada trivial. Um sistema de e-commerce inteiro (sim, tem diferença) não é pra qualquer um e a reutilização de componentes sólidos e testados intensamente por terceiros é muitas vezes a melhor alternativa plá quem selviço balato, né :lol:

 

Considerando esse cenário, bastaria você ir atrás da documentação. Se cada componente for parte de um framework de renome, a documentação deles será bem completa e te poupará trabalho.

 

Boa sorte :thumbsup:

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.