Jump to content
Wagner Moura

Redirecionar em Sequência.

Recommended Posts

Bom dia Pessoal, aqui estou mais uma vez solicitando a ajuda de vocês...

 

No meu site eu tenho um redir.php de redirecionamento para vários links, onde uso a função

<?php

$id = rand(1,3);
if ($id == 1)
{header ("Location: pasta/01.php");}
else
if ($id == 2)
{header ("Location: pasta/02.php");}
else
if ($id == 3)
{header ("Location: pasta/03.php");}
else
?>
Eu gostaria que o redirecionamento fosse feito em sequencia e destruir o redirecionamento aberto, ou seja,
se ja abriu o 01.php , ele não permite mais abrir , proximo clique que houve no redir.php irá abrir o 02.php ,
e não permitir mais.
Para eu ter um controle de quais ja foram abertos, eu pensei em criar com fopen, fread...
Eu pensei no seguinte, criar um arquivo chamado links.txt onde ficará o caminho dos sites
links.txt ex.:
pasta/01.php
pasta/02.php
pasta/03.php
pasta/04.php
pasta/05.php
pasta/06.php
e no redir.php criar alguma função para ler o arquivo links.txt , pegar a primeira linha , abrir o location , apagar a linha . fazendo assim que o proximo clique va para a primeira linha , pois sera será a sequencia, visto que ira abrir , apagar e fechar salvando.
Deu pra entender um pouco?
Só que eu ja tentei aqui botar a cuca pra funcionar e só me vem esse jeito na cabeça que também não sei por onde começar....
Mas aceito algum outro método que possa ser mas simples e eficaz!
DESDE JÁ AGRADEÇO A COLABORAÇÃO E AJUDA DE TODOS !!!!!!!! VALEU...
Edited by Gabriel Heming
adicionar bbcode

Share this post


Link to post
Share on other sites

Antes de tudo, qual o motivo do redirecionamento e o motivo de existir N pastas?

Share this post


Link to post
Share on other sites
Guest

Abre uma sessão e guarda o valor de uma página;

<?php

session_start();

//na página 01
$minhaPaginaAtual = 1;
verificaPagina($minhaPaginaAtual);



//função verificadora
function verificaPagina($PaginaAtual){
    if($_SESSION['pagina_acessada'] > $PaginaAtual){
        //redirecione
        header("Location: " . $_SESSION['pagina_acessada'] . ".php");
    }else{
        $_SESSION['pagina_acessada'] = $PaginaAtual;
    }
}

há várias outras maneiras mais isso ai acho que já resolve seu caso.

Share this post


Link to post
Share on other sites

Gabriel Heming

 

A pasta é só uma, o que muda são os arquivos.

 

 

 

 

 

 

android17

 

 

Mas desse modo seu, o session será pelo cokies né, para a pessoa que está acessando. E não para acesso simultaneos.

 

Eu queria o seguinte. Que os acessos fosse em sequencia, o primeiro acesso ao redir levasse para 01.php o segundo acesso ao 02.php e assim vai...

Share this post


Link to post
Share on other sites

Refaço a minha pergunta mudando de "pastas" para "arquivos". Quero entender a real necessidade, não consigo encontrar um exemplo prático e útil para o que quer realizar.

 

Dependendo da situação, pode ser que haja uma forma mais assertiva.

Edited by Gabriel Heming

Share this post


Link to post
Share on other sites
Gabriel Heming

 

É o seguinte,

 

Quando a pessoa termina o cadastro no meu site gero um botão ( CÓDIGOS PROMOCIONAIS ) , os códigos só podem ser usado por 1 pessoa. Entendeu?

 

Então eu quero que o link do código promocional seja mostrado pro cadastro 1 e seja excluido do txt ou de uma session, e assim em sequencia.

Share this post


Link to post
Share on other sites

Você não está usando banco de dados?

Share this post


Link to post
Share on other sites

Com o SGBD seria mais fácil, pois ele já contemplaria muitas situações que, em um arquivo, você terá que prever, tais como:

 

- Integridade;

- Concorrência;

- I/O.

 

A integridade é a principal, pois assim, você poderia controlar os códigos que já foram utilizados e referenciar quando e por quem (caso houver).

Share this post


Link to post
Share on other sites

Não preciso nem saber quem usou o código não, realmente só preciso que um código mostrado a um cadastro não seja mostrado a ele. Não posso usar banco de dados. :(

OBS nem toda hospedagem que ira ficar o site tem acesso a mysql

 

E aí, será que da pra gente criar sem criação de banco de dados?

Share this post


Link to post
Share on other sites

Se esse é o caso, use SQLite.

 

Sim, é possível fazer de outra forma. Mas como já comentei, você terá que implementar e prever situações que o SGBD mais simples já o faz.

Share this post


Link to post
Share on other sites

É que o cliente realmente não quer usar nenhum tipo de banco de dados. :(

 

Do jeito que tentei te falar la em cima, será que não daria certo? Ele quer uma coisa mais amador mesmo...

Share this post


Link to post
Share on other sites

Eu sugeriria de duas formas.

 

A primeira com dois arquivos. Um com uma lista ativa de códigos e outro com os códigos já utilizados. O problema dessa forma, é que você precisa carregar toda a lista em memória e, a partir de então, verificar se o código existe ou não na lista.

Utilize as funções (ler e escrever arquivos): fopen, fread, fwrite, file_get_contents, file_put_contents e/ou similares.

Outra forma, seria criar arquivos com o nome do código, em duas pastas separadas. A pasta de ativos e a de utilizados. Assim, você pode utilizar a própria consulta do file system e verificar se o arquivo existe em uma pasta, senão, pode verificar na outra pasta ou realizar qualquer outra ação. Dessa forma, você ganha certa agilidade na consulta, pois poderá consultar diretamente pelas funções do PHP. Mas perde na questão granularidade e, de toda e qualquer forma, continua sendo um método lento (como toda a leitura de dados em disco).

Utilize as funções (busca e escrita de arquivos): glob, file_put_contents
Classes: DirectoryIterator e/ou RecursiveDirectoryIterartor;

Share this post


Link to post
Share on other sites

Tente, estude e traga suas dificuldades para cá.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Pellegrini3834
      Ola galera do IMasters!!!!!!
       
      Estou com uma duvida eu tenho um CRUD em php MVC e queria saber em que camada fica as mensagens depois de uma realização de um evento por exemplo:
      Cadastro de Pessoa, depois de cadastrada quero que ele emita uma mensagem dizendo que a "PESSOA FOI CADASTRADA COM SUCESSO!!!!" e eu queria saber  em que parte ela fica se é no Controle ou na View porque sabemos que no modelo fica a parte referente a manipulação de dados.
      Obrigado.
    • By Henrique Augusto Rohloff
      Olá! Sou iniciante e estou treinando para configurar uma página de buscas de produtos em um banco de dados.
      Os produtos já estão sendo encontrados quando a palavra bate com os itens do banco. A conexão com o banco de dados está funcionando corretamente. Porém, quando nada é encontrado, queria que aparecesse uma mensagem "Nenhum resultado, tente novamente." Já tentei com  else de tudo que é jeito mas não aparece corretamente... Qual é o jeito certo?
       
      Segue o código:
       
       
    • By maruoppolo
      Olá, tenho 2 tabelas:
       
      tb_dados: ID - MUSICA
       
      tb_votos: ID - VOTO - RADIO - MUSICA
       
      Preciso fazer uma query que traga as musicas da tb_dados porém ordenando pelo número de votos que ela teve na tb_votos.
       
      Então assim, existem 2 tipos de voto 1 = like e 2 = dislike, cada ver que um usuário vota eu pego qual radio que ele esta ouvindo e salvo no campo radio, o id da musica na tb_dados e salvo no campo musica da tb_votos e coloco o número 1 para like e 2 para dislike no campo voto.
       
      A query precisa contar quantos likes teve na tv_votos filtrando por radio e mostrando os resultados em ordem decrescente as musicas com mais likes.
       
      A ideia é trazer as 10 musicas com mais like de cada radio
       
      Alguma ideia de como fazer?? Estou enroscado nisso a dias.
    • By Ewfc2005
      Eu sou um programador amador, e ainda estou aprendendo programação, comecei um site, mas esqueci de faze-lo para ser responsivo, agora preciso de ajuda
      pois nao consigo deixa-lo responsivo
       

      Codigo HTML
       
      Codigo CSS

       
       
      Ele está mal feito, ainda tenho que arrumar muita coisa, se alguem conseguir me ajudar e dizer como ele pode ficar responsivo
      eu Agradeço.
    • By Chester1
      oi, eu to tentando mexer com servidores agora no PHP e esta dando um erro muito estranho que quando eu procuro em um programa que acha erros de sintaxe ele me diz que o erro esta no </HTML>    se alguem puder me dizer qual foi o erro que eu cometi eu agradeceria
       

       
      <HTML> <HEAD><TITLE>incluindo no banco de dados</TITLE></HEAD> <body> <BODY bgcolor="#d0d0d0"> <center> <h3>Lanchonete coma bem (voltada para o internauta)</h3> <h1>24horas</h1> <?php $login_digitado=$_POST['login']; $senha=$_POST['senha']; $nome=$_POST['nome']; $email=$_POST['email']; $telefone=$_POST['telefone']; $celular=$_POST['celular']; $endereco=$_POST['endereco']; $complemento=$_POST['complemento']; if ($login_digitado == "" || $senha == "" || $nome =="" || $email == "" || $telefone == "" || $endereco == "" || $complemento == "") { echo "existem(m) campos(s) de preenchimento obrigatorio em branco,<BR> infelizmente tera que voltar para preenche-lo(s)."; echo "<BR><a href=\"cadastro.php\">clique aqui para tentar novamente</a>"; } else { { $link=mysql_connect("localhost", "root", "") or die ("<h1>nao foi possivel conectar !!!</h1> ".mysql_error());  
      obs :estou trabalhando com formularios e servidores
         
         
         
         
      ?>
      </BODY>
      </HTML>
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.