Ir para conteúdo

POWERED BY:

Arquivado

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

mruoppolo

Criar arquivo php com fopen

Recommended Posts

Olá, tudo bem?

 

Eu preciso criar um arquivo index.php através do fopen e inserir nele alguns códigos pra abrir uma sessão e colocar uma variável de sessão nele, tipo isso aqui:

$name = $subdominio.'/loja.php';
$text = "<?php session_start(); $_SESSION['lojaID'] = $lojaID; ?>";
$file = fopen($name, 'a');
fwrite($file, $text);
fclose($file);

Porém eu to recebedo o seguinte erro:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/diret721/public_html/finaliza-cadastro.php on line 78

 

A linha 78 seria neste aquivo a 01

 

Sabe o que poderia ser?

 

 

Obrigado :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se há elemento não esperado na linha 78, veja o que há na 77. Alguma coisa ali pode estar errada

 

E sobre o conteúdo a ser salvo no arquivo, use aspas simples ou escape o cifrão com barra invertida (\$). Assim será escrito o nome da variável, em vez do seu valor

Entenda melhor o motivo: http://php.net/manual/pt_BR/language.types.string.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Beraldo, eu pensei a mesma coisa, mas parece estar tudo certo, o bloco seria este aqui:

// CRIA O REDIRECIONAMENTO
$busca_id_loja = mysql_query("select intLojaID from tb_loja where intUserID = '$userid'");
$li = mysql_fetch_assoc($busca_id_loja);
$lojaID = $li['intLojaID'];
$name = $subdominio.'/loja.php';
$text = "<?php session_start(); $_SESSION['lojaID'] = $lojaID; ?>";
$file = fopen($name, 'a');
fwrite($file, $text);
fclose($file);

O sistema faz o seguinte, o cliente entra la e cria sua própria loja virtual e para cada loja o sistema cria um subdominio nomedaloja.nomedosistema.com.br ai este subdominio tem uma pasta, pra eu não precisar ficar replicando os arquivos da loja virtual, cada loja tem uma id e quando o usuário acessa este subdominio, eu coloquei um arquivo que grava a id da loja em uma variavel de sessão a id da loja e redireciona o usuário para a loja, assim ele vai puxar os dados exatos da loja que ele deseja.

 

Não sei se esta lógica esta certa, mas foi o que eu consegui pensar e este trecho que da erro é exatamente a parte que cria o arquivo que vai conter este redirecionamento, porém ele sempre da erro, como o arquivo é .php eu precisei incluir as tags <?php eu achei que o erro poderia ser este, mas eu já retirei e deu o erro do mesmo jeito.

 

muito obrigado Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só trocar as aspas, como eu disse:

 

 

php > $text = '<?php session_start(); $_SESSION[\'lojaID\'] = $lojaID; ?>';
php > file_put_contents('/tmp/test.php', $text);
 
// depois exibi o conteúdo do arquivo:
$ cat /tmp/test.php
<?php session_start(); $_SESSION['lojaID'] = $lojaID; ?>

 

 

Mas pense melhor antes de continuar com essa ideia.

Replicar código é sempre ruim.

Você pode ter vários domínios (VirtualHosts) apontando para a mesma raiz (DocumentRoot).

Ou seja, um único código atende a diversos domínios (sub-domínios no seu caso)

Para diferenciar cada loja, basta olhar o domínio, com HOST_NAME, por exemplo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como seria isso de olhar o dominio com host_name, porque assim, os arquivos da loja estão em uma pasta chamada loja e quando o usuário acessa o subdominio, ele vai direto pra pasta com o nome do subdominio, então eu tenho que redirecionar, mas quando eu faço isso ele perde o endereço do subdominio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu até entendo a lógica, mas não consigo pensar no algoritmo, vou dar uma pensada aqui, mas vou marcar como resolvido, porque sua outra resposta já resolveu o problema de criação de arquivo, muito obrigado Beraldo

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.