wavrik 0 Denunciar post Postado Outubro 23, 2013 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
Vinicius Rangel 208 Denunciar post Postado Outubro 23, 2013 você precisa criar a mesma estrutura do banco de dados do servidor para o local e lembrar de ligar ele no xamp Compartilhar este post Link para o post Compartilhar em outros sites
wavrik 0 Denunciar post Postado Outubro 23, 2013 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
Maykel-ctba 233 Denunciar post Postado Outubro 23, 2013 Voce precisa importar o dump do SQL no phpmyadmin. Esse sim o XAMPP disponibiliza. Compartilhar este post Link para o post Compartilhar em outros sites
wavrik 0 Denunciar post Postado Outubro 23, 2013 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
ESerra 744 Denunciar post Postado Outubro 23, 2013 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
wavrik 0 Denunciar post Postado Outubro 23, 2013 Não sei a tecnologia, mas vai dar certo sim, eu entendo muito bem e vontade para estudar aqui não falta ;) Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Outubro 23, 2013 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
wavrik 0 Denunciar post Postado Outubro 23, 2013 Obrigado ESerraAproveitando 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
Enrico Pereira 299 Denunciar post Postado Outubro 23, 2013 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
wavrik 0 Denunciar post Postado Outubro 23, 2013 Ele bota de uma forma que nao entendo. Alguem ajuda? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Outubro 23, 2013 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
Enrico Pereira 299 Denunciar post Postado Outubro 23, 2013 Isso é um front controller (boa prática).. leia um pouco mais sobre: http://www.sitepoint.com/front-controller-pattern-1/ Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Outubro 23, 2013 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