Jump to content
ricardonews

despois do cadastro redirecionar para index.php

Recommended Posts

olá pessoal, eu não estou conseguindo fazer o redirecionamento apos o cadastro para index, eu estou perdido entre os ifs e else, eu acho que só pode ser isso,  quando eu coloco meu código trava, e não faz nada. vou postar o print.

COMO COLOCAR INDEX.png

Share this post


Link to post
Share on other sites

Suponho que pela função json_encode () você deve estar

usando AJAX...

 

Pois bem, caso esteja usando o mesmo, creio eu que o

redirect deverá ser executado no próprio AJAX e não

no PHP.

Share this post


Link to post
Share on other sites

agora entendi, será que é esse o motivo que o código não vai nem pra frente e nem pra traz? porque eu ja fiz um projeto com php e dava certo de depois do cadastro ele ir para a index.php eu vou postar aqui o print, precisa por alguma coisa nesta pájina então que está com jquery  e ajax?

vai o codigo pra voce ver.

$(function(){
	var atual_fs, next_fs, prev_fs;
    var formulario = $('form[name=formulario]');
	
	function next(elem){
		atual_fs = $(elem).parent();
		next_fs = $(elem).parent().next();

		$('#progress li').eq($('fieldset').index(next_fs)).addClass('ativo');
		atual_fs.hide(800);
		next_fs.show(800);
	}

	$('.prev').click(function(){
		atual_fs = $(this).parent();
		prev_fs = $(this).parent().prev();

		$('#progress li').eq($('fieldset').index(atual_fs)).removeClass('ativo');
		atual_fs.hide(800);
		prev_fs.show(800);
	});
    
    $('input[name=next1]').click(function(){
        var array= formulario.serializeArray();
        if(array[0].value =='' || array[1].value =='' || array[2].value==''){
            
            $('.resp').html('<div class ="erros"><p>preencha todos os campos para avançar</p></div>');
        }else{
           $('.resp').html('');
           next($(this));
        }
    });
    
    $('input[name=next2]').click(function(){
        var array = formulario.serializeArray();
        if(array[3].value =='' || array[4].value =='' || array[5].value==''){
            
            $('.resp').html('<div class ="erros"><p>informe seus perfis sociais para avançar</p></div>');
        }else{
           $('.resp').html('');
           next($(this));
        }
    });
    
    $('input[type=submit]').click(function(evento){
        var array = formulario.serializeArray();
        if(array[6].value == '' || array[7].value == '' || array[8].value == ''){
            
            $('.resp').html('<div class ="erros"><p>informe suas informaçoes pessoais para ser efetuado o cadastro</p></div>');
        }else{
            $.ajax({
                type:'post',
                url:'cadastrar.php',
                dataType:'json',
                data: {cadastrar:'sim', campos: array},
                beforeSend: function(){
                    $('.resp').html('<div class="erros"><p>Aguarde enquanto processamos seus dados...</p></div>');
                },
                success: function(valor){
                    if(valor.erro == 'sim'){
                        $('.resp').html('<div class="erros"><p>'+valor.getErro+'</p></div>');
                    }else{
                        $('.resp').html('<div class="ok">'+valor.msg+'</div');
                    }
                } 
            });
        }
        evento.preventDefault();
    });
});


	

 

forunimaster.png

Share this post


Link to post
Share on other sites

Segue código:

 

CÓDIGO

// ...
} else {
	//$('.resp').html('<div class="ok">'+valor.msg+'</div');
	window.location.href = "index.php";
}
// ...

 

Share this post


Link to post
Share on other sites

eu não sei oque houve mas não funcionou, apenas cadastrou e não direcionou para index.php, vou colocar o link nos inputs de cadastar  para direcionar para index. obrigado pela ajuda.

Share this post


Link to post
Share on other sites

O problema é que sua mensagem não vai aparecer, pelo fato que o script vai redirecionar assim que executado.

Enfim...

 

Alí onde você marcou a linha de vermelho:

header('index.php');

 

Ou sando javascript que dar no mesmo resultado:

echo ("<script>window.location.href = 'index.php';</script>");

 

 

Share this post


Link to post
Share on other sites
Em 18/06/2019 at 17:00, Omar~ disse:

header('index.php');

Corrigindo quando usando o PHP, porque esqueci de escrever

O correto é usar a realocação 

header('Location: index.php');

 

23 horas atrás, ricardonews disse:

 tem rasão é isso mesmo.

Uma solução quando usando javascript

// A linha de vermelho que você marcou seria aqui
?>
<div id="resultado"></div>
<script>
  document.getElementById('resultado').innerHTML = "O texto ou uma formatação HTML que preferir";
  setTimeout(function () {
    window.location.href = 'index.php';
  }, 2000); // 2000 equivale a 2 segundos
<script>
<?php

Quando o script for executado ele vai pegar a tag div#Resultado e vai compor a marcação.

Logo em seguida começa uma contagem de tempo para redirecionar automaticamente.

 

Só não sei se realmente funciona com esse negócio de jQuery pois só uso javascript nativo.

 

Share this post


Link to post
Share on other sites

Estranho acho que deveria funcionar com o ajax da biblioteca jQuery.

Por essas e outras que a muito aboli completamente o uso dessa biblioteca que no meu ponto de vista é desnecessário em qualquer situação.

 

O que posso fazer por você então é lhe ajudar com um script meu mesmo para o uso de ajax.

Segue o exemplo:

Digamos que esse seja o index ou qualquer outro arquivo onde tenho um formulário cujo quero enviar os dados para outro.

<link href="AjaxRequest.css" rel="stylesheet" type="text/css"/>
<script src="AjaxRequest.js" type="text/javascript"></script>

<div id="resultado"></div>
<form id="exemplo" onsubmit="return ajax.form('exemplo', 'resultado', 'post.php');">
    <input type="text" name="texto-a-enviar" />
    <input type="text" name="texto-a-enviar-b" />
    <button>Executar exemplo</button>
</form>

<script>
    var ajax = new AjaxRequest();
</script>

Logo então nos parâmetros do método são

1 - O ID do formulário

2 - Onde mostrar o resultado

3 - Arquivo ao qual os dados serão enviados

No caso é post.php

<?php
if (!isset($_POST['texto-a-enviar'])) {
    echo ("Algo errado o primeiro input não foi recebido");
} else if (!isset($_POST['texto-a-enviar-b'])) {
    echo ("Algo errado o segundo input não foi recebido");
} else if (empty($_POST['texto-a-enviar'])) {
    echo ("Digite algo no primeiro input");
} else if (empty($_POST['texto-a-enviar-b'])) {
    echo ("Digite algo no segundo input");
} else {
    echo ("<pre>"
              . var_dump($_POST)
          ."</pre>"
          . "<hr />"
          . "Aguarde 2 segundos"
          . "<script>"
          .     "setTimeout(function () {"
          .         "window.location.href = 'index.php';"
          .     "}, 2000);"
          . "</script>");
}

Você pode encontrar essa classe que desenvolvi para ajax tanto para GET quanto para POST através do meu GIT:

https://github.com/Spell-Master/sm-web/tree/master/scripts/AjaxRequest

 

Caso queira mais exemplos de uso dessa classe javascript pois existem outros métodos segue o link de download dos exemplos:

https://drive.google.com/file/d/1vCvakLXwvYRhCW8-B3GpGKucpOINGl-l/view?usp=sharing

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 opl12
      Olá Mestres
       
      Estou testando enviar email pelo PHP,
       
      No windows 10 Instalei o Xampp, e fiz as configurações abaixo: 
      Configurei o arquivo php.ini com:  sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
       
      configurei o arquivo sendmail.ini com: smtp_server=smtp.gmail.com
      smtp_port=587
      auth_username= meu_email@gmail.com
      auth_password= minha_senha_do_email
       
       
      Pelo código php não retorna em erro, apenas diz que foi enviado com sucesso. 
      mas o email nunca chega hahahahah nem está no lixo eletônico
       
      Sabem se falta algo?

       
       
       
       
    • By alexandre_xto
      Bom dia amigos, este é meu primeiro post, espero que consiga lhes passar meu problema
      Eu possuo várias imagens de vários tamanhos e dimensões.
      De cada uma quero realizar uma copia quadrada.
      por exemplo, se a imagem  tiver 800x600 quero criar uma 800x800, esse 200 a mais de lagura quero que fique branco sem esticar as fotos.
      Se tenho uma foto 300x600 quero que ela fique com 600x600.
      O Script deve identificar se ela é mais alta ou mais baixa e criar uma cópia baseando-se no que for maior e deve fazer isso sem distorcer a imagem.
      Se for colocado uma 1500x300 ela deve sair 1500x1500, a diferença de 1200 a mais deve ser branca.

    • By RodrigoWD3
      Boa tarde pessoal estou com uma dúvida, seguinte estou criando uma pagina de blog para teste de url amigável ja configurei o .htaccess  , o banco de dados , as postagem com slugs , o problema e que só consigo exibir a noticia completa quando ha uma categoria exemplo .
       
      O site exibe assim :  meusite.com.br/noticias/post-da-noticia/   
      Queria desse jeito: meusite.com.br/post-da-noticia/
       
      porem não queria exibir a categoria noticias, pois os posts vão esta na index
      vou colocar o código da index, acredito que a configuração seja nela
       
      INDEX.PHP
      <?php include "admin/conexao.php"; require_once("include/header.php"); @$url = $_GET['url']; $urlE = explode('/',$url); @$arquivo = $urlE['0']; @$post = $urlE['1']; $paginas = array('empresa','noticias','categoria','contato'); if(isset($post) && $post != ''){ include "single.php"; }elseif(isset($arquivo) && in_array($arquivo, $paginas)){ include "$arquivo.php"; }elseif(isset($arquivo) && $arquivo == ''){ include "home.php"; }else{ include "categoria.php"; } require_once("include/footer.php"); ?>  
    • By opl12
      Olá Mestres
      Podem dar uma direção?
      Estou apanhando em algo que aparentemente é fácil
      Preciso: 
                  *Tenho um Banco de Dados com as Colunas: Id, nome, password, data, nivel             ... na coluna "nivel" tem duas informações ou é "staff" ou é "operacao"               *no 1º Select ele vai validar se o usuário e a senha estão corretos conforme no Banco de Dados do PhpMyAdmin             pelas variáveis $nome e $password               *no 2º Select ele valida o nível de acesso, se é "staff" ou "operacao"             se o $nome pertencer a um "staff".. então abre o "Site A"... se pertencer a um "operacao" vai para o "Site B"  
      <!DOCTYPE html> <html lang="pt-br"> <head> <title>Comprovar Usuário</title> <meta charset="utf-8"> </head> <body> <?php try { $base=new PDO("mysql:host=localhost;dbname=painel","root",""); $base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // ....... select para validar login e senha se estão ok $sql="SELECT * FROM login WHERE nome= :nome AND password= :password"; $resultado=$base->prepare($sql); $nome=($_POST["nome"]); $password=($_POST["password"]); $resultado->bindValue(":nome",$nome); $resultado->bindValue(":password",$password); $resultado->execute(); $numero_registro=$resultado->rowCount(); //Validar Camada de Nível $sql2="SELECT * FROM login WHERE name= :nome AND nivel = 'staff'"; $resultado2=$base2->prepare($sql2); $nome=($_POST["nome"]); $resultado2->bindValue(":nome",$nome); $resultado2->execute(); $numero_registro2=$resultado2->rowCount(); if($numero_registro!=0) { //echo "<h1>Logado com Sucesso</h1>"; ...Se Login e Senha estão ok, então abre a página session_start(); $_SESSION["usuario"] = $_POST["nome"]; header("Location:reports.php"); }else { echo "Senha incorreta, favor verificar! <br><br>"; echo '<a href="index.php">Clique aqui para tentar novamente!</a>'; //header("Location:index.php"); } }catch(Exception $e) { die("Error" . $e->getMessage()); } ?> </body> </html>  
    • By opl12
      Olá Mestres,
      Não achei um tópico com este assunto
       
      No Código abaixo, eu dou um echo e me retorna o valor de um array,
      *que é o resultado de um SELECT feito no Banco de Dados PhpMyAdmin
      *no banco tenho a tabela LOGIN, com as colunas: Nome, Password, Nivel
       
      no PHP eu carrego as variáveis $nome e $password
      com isso eu faço um select com uma condição na coluna "nivel" .. para me trazer apenas o resultado onde consta a palavra "staff" na coluna "nivel"
       
      ao dar um echo:
      echo $key.": ".$value."<br>";  
      o PHP me retorna:
      nome: jeferson
      password: 123
      nivel: staff
       
      ***a pergunta:
      Tem como eu gravar o resultado da coluna "nivel" ( que neste caso é "staff" ) em uma variável?? ao ponto de dar um echo e aparecer apenas a palavra "staff" ?
       
      Se puderem me ajudar, já agradeço
       
      <!DOCTYPE html> <html lang="pt-br"> <head> <title>Comprovar Usuário</title> <meta charset="utf-8"> </head> <body> <?php $nome = "jeferson"; $password = "123"; try { $base=new PDO("mysql:host=localhost;dbname=painel","root",""); $base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql="SELECT nome, password, nivel FROM login WHERE nome= :nome AND password= :password"; $resultado=$base->prepare($sql); $resultado->bindValue(":nome",$nome); $resultado->bindValue(":password",$password); $resultado->execute(); $result = $resultado->fetch(PDO::FETCH_ASSOC); foreach ($result as $key => $value) { echo $key.": ".$value."<br>"; } }catch(Exception $e) { die("Error" . $e->getMessage()); } ?> </body> </html>  
       
       
       
×

Important Information

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