Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 124
Sexo: Masculino

Colocando o PHP dentro de um arquivo HTML? Onde é o erro?

17-05-2013 17:17

Aqui nesse tópico Execultar-scripts-em-PHP-dentro-de-arqu ... _1881.html explica que é necessário criar um MIME Type no cPanel para fazer esse tipo de execução... Eu fui no meu cPanel e criei essa entrada nos registros ok...

Aí eu estou colocando o php acima do código html dessa forma no arquivo index.html (não sei se tenho que mudar a extensão do arquivo para .php rs):

  <?php ...código do script php... ?>     <html xmlns:og="http://opengraphprotocol.org/schema/"> <head><meta http-equiv="Content-Language" content="pt-br"><title>Título</title></head> ... <body> código html ... </body> </html>  

Só que quando acesso a página, fica mostrando lá o código do script php na página.
Esse é o problema... Não sei onde estou errando ?!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17670
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Colocando o PHP dentro de um arquivo HTML? Onde é o erro?

17-05-2013 17:23

Tenta o seguinte, coloca essa linha dentro do arquivo htaccess do seu domínio

AddType application/x-httpd-php .html

Se precisar que códigos PHP sejam executados em um único arquivo do seu site, use o seguinte:

<Files pagina.html>
AddType application/x-httpd-php .html
</Files>
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 124
Sexo: Masculino

Colocando o PHP dentro de um arquivo HTML? Onde é o erro?

17-05-2013 18:37

Não consegui.. ainda fica mostrando o código...

A página está na raiz do site, está dentro na pasta "public_html" www.meusite.com/pagina.html

Coloquei exatamente assim no .htaccess:

AddType application/x-httpd-php .html

<Files pagina.html>
AddType application/x-httpd-php .html
</Files>
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17670
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Colocando o PHP dentro de um arquivo HTML? Onde é o erro?

17-05-2013 19:21

Aqui funcionou sem problema. Não sei se pode ser alguma configuração do seu servidor.

Você pode ver se não tem alguma configuração no Cpanel, que possa estar dando alguma conflito, ou perguntar para o suporte do seu provedor, se esse AddType é permitido.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 124
Sexo: Masculino

Colocando o PHP dentro de um arquivo HTML? Onde é o erro?

19-05-2013 15:25

Vishe... Tá difícil aqui... Tentando, tentando... Olha só o que eu consegui de erro rs...

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\mysite\index.php:1) in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\mysite\index.php on line 2

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\mysite\index.php:1) in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\mysite\index.php on line 2

Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\mysite\painel\include\PDO\pdopaginator.inc.php:16 Stack trace: #0 C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\mysite\painel\include\PDO\pdopaginator.inc.php(16): PDO->__construct('mysql:host=loca...', 'user_userdb', , NULL) #1 C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\mysite\painel\include\class.connection.inc.php(30): PDOPaginator->__construct('mysql:host=loca...', ) #2 C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\mysite\painel\global.php(29): connection->connect() #3 C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\mysite\index.php(3): require('C:\Arquivos de ...') #4 {main} thrown in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\mysite\painel\include\PDO\pdopaginator.inc.php on line 16

O meu código onde aparece esse erro é aqui no index.php (eu separei o header, o menu e o footer colocando em arquivos php que são chamados por includes no index):

//COMEÇA O SCRIPT PHP QUE QUERO QUE FUNCIONE.... <?php session_start(); require("painel/global.php");   //pega dados do usuario admin $tb = $conn->prepare("select nm_usuario from usuario where id_usuario = 1"); $tb->execute(); $l = $tb->fetch(PDO::FETCH_ASSOC); $tb = null; $admin_name = $l["nm_usuario"]; //   $usuario =  ltrim($_SERVER['REQUEST_URI'], "/");   $_SESSION["indicador"] = isset($_SESSION["indicador"])?$_SESSION["indicador"]:1; $_SESSION["nm_indicador"] = isset($_SESSION["nm_indicador"])?$_SESSION["nm_indicador"]:$admin_name;   $indicador_ = pega_indicador($usuario);   if(!strpos($usuario,'/') && !empty($usuario) && $indicador_[0] !=1 && $_SESSION["indicador"] == 1){         $_SESSION["indicador"] = $indicador_[0];     $_SESSION["nm_indicador"] = $indicador_[1];     $origem = isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:"Acesso Direto";         $hoje = date("Y-m-d H:i:s");         //Atualiza Acessos     $tb = $conn->prepare("insert into acessos(id_indicador, dt_acesso, origem_acesso) values(:id, :data, :origem)");     $tb->bindParam(":id", $_SESSION["indicador"], PDO::PARAM_INT);     $tb->bindParam(":data", $hoje, PDO::PARAM_STR);     $tb->bindParam(":origem", $origem, PDO::PARAM_STR);     $tb->execute();     $tb = null; }     if($_SESSION["indicador"] !=1){     setcookie("usuario[id]", $_SESSION["indicador"], time()+ (60*60*(24 * $dias_expira_cookie)));     setcookie("usuario[nome]", $_SESSION["nm_indicador"], time()+ (60*60*(24 * $dias_expira_cookie))); }elseif(isset($_COOKIE["usuario"])){     $_SESSION["indicador"] = $_COOKIE["usuario"]['id'];     $_SESSION["nm_indicador"] = $_COOKIE["usuario"]['nome'];    }   if($indicador_[0] != 1){     header("Location: index.php");     exit; }   function pega_indicador($host){     global $conn, $admin_name;         if(empty($host)) return array(1, $admin_name);         $tb = $conn->prepare("select id_usuario, nm_usuario from usuario where dominio=:domain");     $tb->bindParam(":domain",$host, PDO::PARAM_STR);     $tb->execute();         $l = $tb->fetch(PDO::FETCH_ASSOC);     $tb = null;     if(empty($l)){         return array(1, $admin_name);     }else{         return array($l["id_usuario"], strip_tags($l["nm_usuario"]));        } }   ?> //TERMINA O SCRIPT PHP QUE QUERO QUE FUNCIONE...   <?php include("template/header.php")?>               <?php include("template/menu.php")?>   MEU HTML É AQUI NESSE MEIO....   <?php include("template/footer.php")?>

-------------------------------------------------------------------------------------
EDITANDO O TÓPICO PARA ACRESCENTAR UMA INFORMAÇÃO...
--------------------------------------------------------------------------------------

Eu experimentei tirar o <?php e ?> que envolve as includes que chamam o header.php, menu.php e footer.php, deixando ficarem apenas assim no código: include ("template/header.php") e deu menos erros... Deu apenas esse erro aqui:

Parse error: syntax error, unexpected 'include' (T_INCLUDE) in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\mysite\index.php on line 72
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17670
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Colocando o PHP dentro de um arquivo HTML? Onde é o erro?

19-05-2013 15:39

Não há nada antes do session_start(); no seu código?

Esse erro de Cannot send session cookie - headers already sent by, acontece geralmente quando se põe HTML antes de headers ou session_start().

Para solucionar, as primeiras linhas do html devem ser:

<?php session_start(); 

Ou, se realmente precisa iniciar o documento com HTML, faça assim

<?php ob_start(); // IMPEDINDO O ERRO session_start(); 

O outro erro parece ser causado por você está tentando incluir algum arquivo que está localmente "no PC", mas está testando o script em um servidor online.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 124
Sexo: Masculino

Colocando o PHP dentro de um arquivo HTML? Onde é o erro?

19-05-2013 16:02

Não tem nenhuma linha dando espaço ou conteúdo html antes do código session_start(); que está localizado no index.php.

Depois do script que começa por esse session_start, tenho um include chamando o header.php. Meu site é em html, eu separei as partes do código html e coloquei nesses arquivos header.php, footer.php, menu.php.

hum... O que é chamado primeiro é o header.php (conteúdo html), e no conteúdo do header.php tem esse código html:

<html xmlns:og="http://opengraphprotocol.org/schema/"> <head> <meta http-equiv="Content-Language" content="pt-br"> <title>Título do site</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Language" content="pt-br" /> <meta name="robots" content="index, follow">       <style type="text/css"> body { overflow-x:hidden; background: #265CA7 url('imgs/bg.jpg') repeat-x; } </style>   ... o resto é só style e atributos...

Será que como o include chama primeiro o header que está com conteúdo html, isso gera esse erro? Devo colocar no próprio arquivo header.php assim?

<?php ob_start(); // IMPEDINDO O ERRO session_start(conteúdo html do header.php aqui dentro?); 

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17670
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Colocando o PHP dentro de um arquivo HTML? Onde é o erro?

19-05-2013 16:10

O script é lido na ordem, sendo que os códigos PHP são lidos primeiros no servidor, antes de ser mostrado ao usuário.

Dentro do session_start() não deve ser colocado código.

Você deve segui a ordem do código normal

<?php ob_start(); // IMPEDINDO O ERRO session_start(); // USADO PARA PERMITIR USO DE SESSION NO ARQUIVO // includes, html, etc.... 

Se estiver mostrando outros erros, tem que ver qual é.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado