Ir ao conteúdo

PHP Site com tela login em php


Ir à solução Resolvido por DiF,

Posts recomendados

Postado

Eu estou tentando fazer uma tela de login em php pelo vídeo da Danki Code no youtube, mas não está dando certo.

 

"https://www.youtube.com/watch?v=YaZJZ01MKP4&t=550s"

 

<php session_start() ?>
<!DOCTYPE html>
<html>
<head>
<title>Login  </title>
</head>
<body>

<?php

if(!isset($_SESSION['login'])){

 if(isset($_POST['acao'])){
$login = 'rubens';
$senha = '123456';

$loginform = $_POST['login'];
$senhaform = $_POST['senha'];


if($login == $loginform && $senha == $senhaform){
//logado com sucesso!
$_SESSION['login'] = $login;
header('location: index.php');

}else{
    //algum erro ocorreu
echo 'dados invalidos!';

}



 }
    
 include('login.php');   
}
else{
    if(isset($_GET['logout']){
    unset($_SESSION['login'])
    session_destroy();
    header('location: index.php');
}
include('home.php');


}





?>

</body>














</html>

 

 

<form method="post">
    <input type="text" name="login">
    <input type="password" name="senha">
    <input type="submit" name="acao" vale="Enviar!">





</form>

 

 

 

<?php

echo '<h2>Bem-Vindo.'.$_SESSION['login']. '</h2>';
echo '<a href="?logout">Fazer logout!</a>';

?>

 

  • Moderador
Postado

@Berus-kun O form, fica no mesmo arquivo do php que recebe os dados?  Se não estiver, falta um parâmetro ali no form que é o action.

 

Você também está testando com um isset($_POST['acao']) onde você não usa em lugar algum esse "acao"

 

 

  • Moderador
Postado

@Berus-kun Ok,  só vi agora que você mencionou.

Basicamente pelo que eu vi no vídeo,  existem 3 arquivos.. que são index.php, login.php e home.php.

O index.php é onde contém a estrutura principal. O login, contém apenas o formulário e o home contem apenas a chamada da sessão.

 

Bom.. analisando seu código e comparando com o do vídeo, são praticamente idênticos. Mas, no seu caso, está faltando um "ponto e virgula" na linha do unset($_SESSION['login'])

 

Qual o erro que está dando?

 

 

Postado

@DiF quando eu faço o "login certo" não aparece o bem vindo

 

 

e tem essa linha que dá erro:

 if(isset($_GET['logout']){

    unset($_SESSION['login'])

    session_destroy();

    header('location: index.php');

}

 

 

 

e a parte de formulario enviado/enviar formulario fica dando erro

  • Moderador
  • Solução
Postado

@Berus-kun Quais exatamente são as mensagens de erro?

 

Sinceramente, a abordagem do vídeo não é das melhores. Digamos que seja, só o conceito básico de um login, ele não serve para nada.

Ok,  depois de analisar seu código com mais calma, há alguns erros e bem simples!

 

O primeiro está lá no topo, onde esqueceu de colocar o ? na frente de <?php

 

O segundo erro, está nos fechamentos de chaves dos blocos de IF e ELSE.   Recomendo não usar  { } quando for um if else interno.

Troque para esta estrutura:

if(setença) :
  algo
else:
  algo
endif;

 

Seu código corrigido fica assim:

Index.php

<?php session_start() ?>
<!DOCTYPE html>
<html>
<head>
    <title>Login </title>
</head>
<body>
<?php


if(!isset($_SESSION['login'])){

    if(isset($_POST['acao'])):
        $login = 'rubens';
        $senha = '123456';

        $loginform = $_POST['login'];
        $senhaform = $_POST['senha'];


        if($login == $loginform && $senha == $senhaform):
            //logado com sucesso!
             $_SESSION["login"] = $login;
            header('Location: index.php');
        else:
            //algum erro ocorreu
            echo 'dados invalidos!';
        endif;
    endif;
    
    include('login.php');  

}else{
    if(isset($_GET['logout'])):
        unset($_SESSION["login"]);
        session_destroy();
        header('Location: index.php');
    endif;
    include('home.php');
}

?>
</body>
</html>

 

login.php

<form method="post">
    <input type="text" name="login">
    <input type="password" name="senha">
    <input type="submit" name="acao" vale="Enviar!">
</form>

 

home.php

<?php
    echo '<h2>Bem-Vindo '.$_SESSION['login']. '</h2>';
    echo '<a href="?logout">Fazer logout!</a>';
?>

 

Testei aqui e funciona corretamente.

Repare que os blocos de IF e ELSE internos, estão diferentes do comum... justamente para diferenciar e não se atrapalhar com o monte de chaves espalhadas.  O seu maior erro estava no posicionamento errado das chaves.

Postado

@DiF eu tinha entendi, mas demorei para responder, e uma duvida, tipo. eu tenho q criar um  formulário em que o usuário insere seus dados principais( nome,sobrenome, rg, cpf, telefone, endereço....) e usando checkboxes , e então uma lista de Hobbes e outro com carros, retornando os resultados favoritos. Usando o select você escolhe qual sua modalidade de esporte.  (Usando vetor no php)

 

 

 <form action="views/user_info_view.php" method="post">                              
              <div class="field">
                <label class="label">Nome: </label>
                <div class="control has-icons-left has-icons-right">
                  <input class="input" name="nome" type="text" placeholder="Nome">
                  <span class="icon is-small is-left">
                    <i class="faz fa-user"></i>
                  </span>              
                </div>            
              </div>
              
              <div class="field">
                <label class="label">Sobrenome: </label>
                <div class="control has-icons-left has-icons-right">
                  <input class="input" name="sobrenome" type="text" placeholder="Sobrenome">
                  <span class="icon is-small is-left">
                    <i class="faz fa-user"></i>
                  </span>              
                </div>            
              </div>    
              <div class="field">
                <label class="label">RG: </label>
                <div class="control has-icons-left has-icons-right">
                  <input class="input" name="rg" type="text" placeholder="RG - Apenas números">
                  <span class="icon is-small is-left">
                    <i class="faz fa-user"></i>
                  </span>              
                </div>            
              </div>    
              <div class="field">
                <label class="label">CPF: </label>
                <div class="control has-icons-left has-icons-right">
                  <input class="input" name="cpf" type="text" placeholder="CPF - Apenas números">
                  <span class="icon is-small is-left">
                    <i class="faz fa-user"></i>
                  </span>              
                </div>            
              </div>    
              <div class="field">
                <label class="label">Telefone: </label>
                <div class="control has-icons-left has-icons-right">
                  <input class="input" name="telefone" type="text" placeholder="Apenas números">
                  <span class="icon is-small is-left">
                    <i class="faz fa-user"></i>
                  </span>              
                </div>            
              </div>    
              <div class="field">
                <label class="label">Estado: </label>
                <div class="control has-icons-left has-icons-right">
                  <input class="input" name="estado" type="text" placeholder="Estado - Nome completo">
                  <span class="icon is-small is-left">
                    <i class="faz fa-user"></i>
                  </span>              
                </div>            
              </div>    
              <div class="field">
                <label class="label">Cidade: </label>
                <div class="control has-icons-left has-icons-right">
                  <input class="input" name="cidade" type="text" placeholder="Cidade">
                  <span class="icon is-small is-left">
                    <i class="faz fa-user"></i>
                  </span>              
                </div>            
              </div>    
              <div class="field">
                <label class="label">Rua: </label>
                <div class="control has-icons-left has-icons-right">
                  <input class="input" name="rua" type="text" placeholder="Rua">
                  <span class="icon is-small is-left">
                    <i class="faz fa-user"></i>
                  </span>              
                </div>            
              </div>    
            
            <h1 class="title">Hobbies</h1>
            <?php                                              
                $sql = "SELECT * FROM hobby";                
                $result = $conn->query($sql);                      
                if ($result->num_rows > 0) {
                    while($row = $result->fetch_assoc()){
                        echo "<div class='field'> <label class='checkbox'> <input type='checkbox' name='hobby[]' value='" . $row["nome"] . "'>
                            ". $row["nome"] . "
                        </label>
                      </div>";                        
                    }           
                }               

            ?>     
            <h1 class="title">Carros</h1>
            <?php                                              
                $sql = "SELECT * FROM carro";                
                $result = $conn->query($sql);                      
                if ($result->num_rows > 0) {
                    while($row = $result->fetch_assoc()){
                        echo "<div class='field'> <label class='checkbox'> <input type='checkbox' name='carro[]' value='" . $row["marca"] . " - " . $row["modelo"] . "'>
                            ". $row["marca"] . " - " . $row["modelo"] . "
                        </label>
                      </div>";                        
                    }           
                }               

            ?>     
            <div class="field">
              <div class="select">
                <select name="esporte">
                  <?php
                    $sql = "SELECT * FROM esporte";                
                    $result = $conn->query($sql);                      
                    if ($result->num_rows > 0) {
                        while($row = $result->fetch_assoc()){                            
                            echo '<option value="' . $row["modalidade"] . '"> ' . $row["modalidade"] . '</option>';                            
                        }           
                    }               
                  ?>
                </select>
              </div>                               
            </div>     
            <div class="field">
              <div class="control">
                <input type="submit" class="button is-link" value="Salvar dados">
              </div>            
            </div>
        </form>

 

  • Moderador
Postado
Em 08/02/2022 às 12:31, Berus-kun disse:

e uma duvida, tipo. eu tenho q criar um  formulário em que o usuário insere seus dados principais( nome,sobrenome, rg, cpf, telefone, endereço....) e usando checkboxes , e então uma lista de Hobbes e outro com carros, retornando os resultados favoritos. Usando o select você escolhe qual sua modalidade de esporte.  (Usando vetor no php)

Qual a dúvida em especifico?  Qual o erro que está tendo e etc...

  • Moderador
Postado

@Berus-kun Você pode colocar tudo junto no mesmo formulário.

Você praticamente já fez isso ali no post #07

 

No caso, você só precisa pegar os arrays passados no checkbox e iterar com um foreach e fazer um insert na tabela de hobbies e outra tabela para carros.

A mágica acontece ali no primeiro insert na tabela de usuários.

Assim que você insere um dado na tabela de usuários, você pode retornar último ID inserido. Esse último ID, é o valor do campo auto increment usado para ser a chave primária da tabela. Ou seja, será o ID do usuário.

Para pegar esse valor, no php é usado a função  mysqli_insert_id($link) 

Você pode armazenar essa função em uma variável por exemplo  

$usuario_id = mysqli_insert_id($link);

 

Com ele, você pode fazer a verificação, se foi bem sucedido no primeiro insert,  faz uma varredura do array e dentro do do loop você faz um insert na tabela hobbies  ou carros. Aí no caso, nesse insert, você vai passar por exemplo a modalidade de esporte e o ID do usuário.  A tabela ficaria preenchida assim:

 

ID modalidade     ID_usuario
1   Corrida           1
2   Arco e flecha     1 
3   Futebol           2

Esse campo ID_usario, seria um campo de chave estrangeira, que é ligado no campo ID chave primária da tabela usuário 

 

Com o checkbox de carro é a mesma coisa, você tem ali um array de marcas e modelos, que pelo jeito é tudo um valor só.   tipo "Fiat - Palio" .. Nesse caso fica bem fácil. 

Segue o mesmo modelo do outro de pegar o ultimo id inserido,  faz a verificação se o insert do usuário teve sucesso, se sim, faz um insert na tabela de carros. Novamente inserindo o value do checkbox "Fiat - Palio"  e  o ID do usuário sendo uma chave estrangeira  do campo ID de usuário também.

 

Exemplo no php:

 

<?
   //Vetor de carros checkbox
   $carros = $_POST["carros"];

   //Pega o valor ID do usuario depois de ter feito o insert na tabela usuário
   $id_usuario = mysqli_insert_id($conexao);  

   //Percorre o vetor de carros e faz um insert na tabela de carros
   foreach($carros as $carro):      
       $insert = mysqli_query($conexao, "INSERT INTO carros(carro, ID_usuario) VALUES($carro, $id_usuario)");
   foreach; 

 

PS: dica, evite de colocar mais de um valor no atributo value.  Sempre tente colocar uma coisa só.

 

Em tempo, para que sistema funcione como esperado, recomendaria você  modelar seu banco de dados, respeitando pelo menos a NF1 e NF2.

Se não sabe sobre o assunto, você pode ler este artigo: Normalização em banco de dados

 

Seu banco de dados deve ter pelo menos 3 tabelas: 

Tabela usuário

Tabela carro

Tabela esporte

 

Onde ambas tabelas carro e esporte, irão conter uma chave estrangeira referente ao campo ID da tabela usuário.  É importante que ao criar os relacionamentos das tabelas, acionar o recurso "delete on cascade"  Isso você vai encontrar, por exemplo, no modo designer do phpmyamin.  Esse recurso indica para a tabela, que um registro da tabela de usuários for deletado, o registro na tabela carro e esporte cujo o ID do registro foi deletado, vai ser deletado também... Pois estas duas tabelas carro e esporte são dependentes da tabela usuário. ( NF2)

 

Bom  é por aí..   

Postado

eu tenho q criar um  formulário em que o usuário insere seus dados principais( nome,sobrenome, rg, cpf, telefone, endereço....) e usando checkboxes , e então uma lista de Hobbes e outro com carros, retornando os resultados favoritos. Usando o select você escolhe qual sua modalidade de esporte.  (Usando vetor no php) (eu já tinha feito um tópico desse naquele outro, mas resolvi fazer assim)

 

 

Index.php

 

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    
    <title>Informações</title>
</head>
<body>
    <main class="container">
        <header class="container__header">
            <h1>Cadastro de Informações</h1>
            <p>Deixe-nos entender quais são seus gostos e interesses</p>
        </header>
        <form action="user.php" class="form-container" method="POST">
            <fieldset class="form-container__fieldset">
                <legend>Dados pessoais: </legend>
                <div class="form-container__input-container">
                    <input type="text" id="name" name="name" required />
                
                    <label for="name">
                        <strong>Nome: </strong>
                    </label>
                    
                </div>
                <div class="form-container__input-container">
                    <input type="text" id="last-name" name="last-name" required />
                
                    <label for="last-name">
                        <strong>Sobrenome: </strong>
                    </label>
                </div>
                <div class="form-container__input-container">
                    <input type="email" id="email" name="email" required />
                
                    <label for="email">
                        <strong>E-mail: </strong>
                    </label>
                </div>
                <div class="form-container__input-container">
                    <input type="text" id="phone-number" name="phone-number" required />
                
                    <label for="phone-number">
                        <strong>N° de celular: </strong>
                    </label>
                </div>
                <div class="form-container__input-container">
                    <input type="text" id="address" name="address" required />
                    <label for="address">
                        <strong>Endereço: </strong>
                    </label>
                </div>
            </fieldset>
            <fieldset class="form-container__fieldset">
                <legend>Hobbies: </legend>
               <div class="form-container__checkbox-container">
                    <p>Escolha seus Hobbie: </p>
                    <section>
                    <label for="imperative" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming-paradigms[]" value="Imperativo" id="imperative">
                            <span>Anime</span>
                        </label>
                        <label for="declarative" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming-paradigms[]" value="Declarativo" id="declarative">
                            <span>Manga</span>
                        </label>
                        <label for="functional" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming-paradigms[]" value="Funcional" id="functional">
                            <span>Light Novel</span>
                        </label>
                        <label for="logical" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming-paradigms[]" value="Lógico" id="logical">
                            <span>Fanfic</span>
                        </label>
                        <label for="object-oriented" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming-paradigms[]" value="Orientado a Objetos" id="object-oriented">
                            <span>Jogar vídeo Game</span>
                        </label>
                    </section>
                </div>
                <div class="form-container__input-container-wrapper">
                    <div class="form-container__input-container" data-select>
                        <input name="programming-language" id="programming-language" type="text" required class="multiple-select-wrapper">
                        <label for="programming-language">
                            <strong>preferência em tema: </strong>
                        </label>
                    </div>

                    <fieldset class="form-container__fieldset">
                <legend>Esporte: </legend>
               <div class="form-container__checkbox-container">
                    <p>Escolha seu Esporte: </p>
                    <section>
                        <label for="imperative" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming-paradigms[]" value="Imperativo" id="imperative">
                            <span>Futebol</span>
                        </label>
                        <label for="declarative" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming-paradigms[]" value="Declarativo" id="declarative">
                            <span>Basquete</span>
                        </label>
                        <label for="functional" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming-paradigms[]" value="Funcional" id="functional">
                            <span>Handebol</span>
                        </label>
                        <label for="logical" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming-paradigms[]" value="Lógico" id="logical">
                            <span>Tenis</span>
                        </label>
                        <label for="object-oriented" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming-paradigms[]" value="Orientado a Objetos" id="object-oriented">
                            <span>Ping Pong</span>
                        </label>
                    </section>
                </div>
                <div class="form-container__input-container-wrapper">
                    <div class="form-container__input-container" data-select>
                        <input name="programming-language" id="programming-language" type="text" required class="multiple-select-wrapper">
                        <label for="programming-language">
                            <strong>preferência modalide: </strong>
                        </label>
                    </div>
                   
                    <fieldset class="form-container__fieldset">
                <legend>Carros: </legend>
               <div class="form-container__checkbox-container">
                    <p>Escolha seu Caro: </p>
                    <section>
                        <label for="imperative" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming-paradigms[]" value="Imperativo" id="imperative">
                            <span>Fusca</span>
                        </label>
                        <label for="declarative" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming-paradigms[]" value="Declarativo" id="declarative">
                            <span>Picape</span>
                        </label>
                        <label for="functional" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming-paradigms[]" value="Funcional" id="functional">
                            <span>Hatch</span>
                        </label>
                        <label for="logical" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming-paradigms[]" value="Lógico" id="logical">
                            <span>Cupê</span>
                        </label>
                        <label for="object-oriented" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming-paradigms[]" value="Orientado a Objetos" id="object-oriented">
                            <span>Jipe</span>
                        </label>
                    </section>
                </div>
                <div class="form-container__input-container-wrapper">
                    <div class="form-container__input-container" data-select>
                        <input name="programming-language" id="programming-language" type="text" required class="multiple-select-wrapper">
                        <label for="programming-language">
                            <strong>Marca: </strong>
                        </label>
                    </div>


                </div>
            </fieldset>
            <fieldset class="form-container__fieldset">
                <button class="form-container__send-button">Enviar dados</button>
            </fieldset>
        </form>
        <footer class="container__footer">
        </footer>
    </main>
    <script src="./scripts/index.js"></script>
</body>
</html>

 

 

Users.php

 

<?php 
    $username = $_POST['name'];
    $lastname = $_POST['last-name'];
    $email = $_POST['email'];
    $phonenumber = $_POST['phone-number'];
    $address = $_POST['address'];
    $programming_paradigms = $_POST['programming-paradigms'];
    $programming_languages = $_POST['programming-language'];
?>


<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

   <title>Dados cadastrados</title>
</head>
<body>
    <main class="container">
            <header class="container__header">
                <h1>Parabéns!! </h1>
            </header>

        <section class="container__data">
            <ul>
                <li>
                    <strong>Nome completo: </strong>
                    <span> <?php echo $username . " " . $lastname ?> </span>
                </li>
                <li>
                    <strong>E-mail: </strong>
                    <span> <a href=<?php echo "mailto:" . $email ?>><?php echo $email ?></a> </span>
                </li>
                <li>
                    <strong>N° do celular: </strong>
                    <span> <?php echo $phonenumber ?> </span>
                </li>
                <li>
                    <strong>Endereço: </strong>
                    <span> <?php echo $address ?> </span>
                </li>
                <li>
                    <strong>hobbies: </strong>
                    <span> <?php echo implode(", ", $programming_paradigms) ?> </span>
                </li>
                <li>
                    <strong>Temas: </strong>
                    <span> <?php echo $programming_languages ?> </span>
                </li>

                <li>
                    <strong>Esporte: </strong>
                    <span> <?php echo implode(", ", $programming_paradigms) ?> </span>
                </li>
                <li>
                    <strong>Carros: </strong>
                    <span> <?php echo $programming_languages ?> </span>
                </li>


            </ul>
        </section>
       
    </main>
</body>
</html>

 

 

Tem alguma coisa haver com esses dois aqui né? 

$programming_paradigms = $_POST['programming-paradigms'];

    $programming_languages = $_POST['programming-language'];

 

 

Ele fica assim oh: 

 

 

eu dei uma eitada na foto para n aparecer as minhas informações pessoais(foi automatico)

Capturar.JPG

  • Moderador
Postado

@Berus-kun Então, metodo que está tentando fazer não está certo.

Lembre que quando você passa os dados do form em checkbox,  você está passando um vetor de dados.  Então naturalmente você deve e  precisa iterar esse vetor de dados.

 

Exatamente como eu expliquei no post #10 ali em cima. 

Postado

@DiF eu fiz outro negocio, por isso outro topico, achava  tinha algo haver

 

 

a tela é assim, e tem q ficar daquele jeito, hobbie, preferência tema/ esporte/ modalidade/ carro e marca.

 

tem alguma coisa dentro do code que dá erro, no enviar dados fica

 

hobbies: Funcional, Lógico, Lógico, Declarativo

Temas: djd

Esporte: Funcional, Lógico, Lógico, Declarativo

Carros: djd

 

e já tentei mudar ate tirando o   Funcional, Lógico, Lógico, Declarativo

djjk.JPG

  • Moderador
Postado

@Berus-kun Certo, mas você precisa de alguma forma percorrer o vetor que você tem para fazer o insert na tabela destino.

 

No caso, em todos os checkbox você precisa de:

forach(vetor as novoNome-do-vetor){
    faz algo

}

Sem percorrer ele, você não consegue nem mostrar os dados em tela.

A melhor coisa é que você pode sempre tentar dar um echo nas variáveis para saber qual o valor que elas possuem.  tem que ver se elas realmente estão tendo algum valor...

 

Fora isso, tem diversas maneiras de resolver... uma delas por exemplo, é criar um índice para cada checkbox e o campo input e então depois percorrer com um foreach nesse modelo aqui:

Neste link: inserir multiplos checkbox e campo input

 

Postado

@DiF Eu consegui fazer aparecer tudo, mas agr tá dando erro em cpf e rg

 

 

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    
    <title>Hobbies</title>
</head>
<body>
    <main class="container">
        <header class="container__header">
            <h1>Cadastro de suas informações</h1>
            <p>Deixe-nos entender quais são seus gostos e interesses</p>
        </header>
        <form action="user.php" class="form-container" method="POST">
            <fieldset class="form-container__fieldset">
                <legend>Dados pessoais: </legend>
                <div class="form-container__input-container">
                    <input type="text" id="name" name="name" required />
                
                    <label for="name">
                        <strong>Nome: </strong>
                    </label>
                    
                </div>
                <div class="form-container__input-container">
                    <input type="text" id="last-name" name="last-name" required />
                
                    <label for="last-name">
                        <strong>Sobrenome: </strong>
                    </label>
                </div>
                <div class="form-container__input-container">
                    <input type="email" id="email" name="email" required />
                
                    <label for="email">
                        <strong>E-mail: </strong>
                    </label>
                </div>
                <div class="form-container__input-container">
                    <input type="text" id="phone-number" name="phone-number" required />
                
                    <label for="phone-number">
                        <strong>N° de celular: </strong>
                    </label>
 </div>

 <div class="form-container__input-container">
                    <input type="text" id="cpf_number" name="cpf-number" required />
                
                    <label for="cpf-number">
                        <strong>CPF: </strong>
                    </label>
 </div>


 <div class="form-container__input-container">
                    <input type="text" id="rg_number" name="rg-number" required />
                
                    <label for="rd-number">
                        <strong>RG: </strong>
                    </label>
 </div>



                <div class="form-container__input-container">
                    <input type="text" id="address" name="address" required />
                    <label for="address">
                        <strong>Endereço: </strong>
                    </label>
                </div>
            </fieldset>
            <fieldset class="form-container__fieldset">
                <legend>Seus Hobbis: </legend>
                <div class="form-container__checkbox-container">
                    <p>Diga seus Hobbies: </p>
                    <section>
                        <label for="Manga" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming_hobbis[]" value="Manga" id="Manga">
                            <span>Manga</span>
                        </label>
                        <label for="Anime" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming_hobbis[]" value="Anime" id="Anime">
                            <span>Anime</span>
                        </label>
                        <label for="Ligh Novel" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming_hobbis[]" value="Ligh Novel" id="Ligh Novel">
                            <span>Ligh Novel</span>
                        </label>
                        <label for="Livros" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming_hobbis[]" value="Livros" id="Livros">
                            <span>Livros</span>
                        </label>
                        <label for="Fanfics" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming_hobbis[]" value="Fanfics" id="Fanfics">
                            <span>Fanfics</span>
                        </label>
                    </section>
                </div>
                <div class="form-container__input-container-wrapper">
                    <div class="form-container__input-container" data-select>
                        <input name="programming_genero" id="programming_genero" type="text" required class="multiple-select-wrapper">
                        <label for="programming_genero">
                            <strong>Generos: </strong>
                        </label>
                    </div>
                    <select class="multiple-select" multiple>
                            <option value="Romance">Romance</option>
                            <option value="Aventura">Aventura</option>
                            <option value="Isekai">Isekai</option>
                            <option value="Hentai">Hentai</option>
                            <option value="Comedia">Comedia</option>
                        </select>
                </div>

                <fieldset class="form-container__fieldset">
                <legend>Esports: </legend>
                <div class="form-container__checkbox-container">
                    <p>Diga seus Esportes que você gosta: </p>
                    <section>
                        <label for="Futebol" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming_sport[]" value="Futebol" id="Futebol">
                            <span>Futebol</span>
                        </label>
                        <label for="Basquete" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming_sport[]" value="Basquete" id="Basquete">
                            <span>Basquete</span>
                        </label>
                        <label for="Handebol" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming_sport[]" value="Handebol" id="Handebol">
                            <span>Handebol</span>
                        </label>
                        <label for="Ping Pong" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming_sport[]" value="Ping Pong" id="Ping Pong">
                            <span>Ping Pong</span>
                        </label>
                        <label for="Tenis" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming_sport[]" value="Tenis"" id="Tenis">
                            <span>Tenis"</span>
                        </label>
                    </section>
                </div>
                <div class="form-container__input-container-wrapper">
                    <div class="form-container__input-container" data-select>
                        <input name="programming_time" id="programming_time" type="text" required class="multiple-select-wrapper">
                        <label for="programming_time">
                            <strong>Times: </strong>
                        </label>
                    </div>
                    <select class="multiple-select" multiple>
                            <option value="São Paulo"O T>São Paulo</option>
                            <option value="Santos">Santos</option>
                            <option value="Palmeiras">Palmeiras</option>
                            <option value="Flamengo">Flamengo</option>
                            <option value="Curintia">Curintia</option>
                        </select>
                </div>



                <fieldset class="form-container__fieldset">
                <legend>Esports: </legend>
                <div class="form-container__checkbox-container">
                    <p>Diga seu carro e marca favoritos: </p>
                    <section>
                        <label for="Fusca" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming_carro[]" value="Fusca" id="Fusca">
                            <span>Fusca</span>
                        </label>
                        <label for="Picape" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming_carro[]" value="Picape" id="Picape">
                            <span>Picape</span>
                        </label>
                        <label for="Hatch" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming_carro[]" value="Hatch" id="Hatch">
                            <span>Hatch</span>
                        </label>
                        <label for="Cupê" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming_carro[]" value="Cupê" id="Cupê">
                            <span>Cupê</span>
                        </label>
                        <label for="Jipe" class="form-container__input-container__checkbox">
                            <input type="checkbox" name="programming_carro[]" value="Jipe"" id="Jipe">
                            <span>Jipe"</span>
                        </label>
                    </section>
                </div>
                <div class="form-container__input-container-wrapper">
                    <div class="form-container__input-container" data-select>
                        <input name="programming_marca" id="programming_Marca" type="text" required class="multiple-select-wrapper">
                        <label for="programming_marca">
                            <strong>Marcas: </strong>
                        </label>
                    </div>
                    <select class="multiple-select" multiple>
                            <option value="Fiat"O T>Fiat</option>
                            <option value="Volk">Volk</option>
                            <option value="Ford">Ford</option>
                            <option value="Nissan">Nissan</option>
                            <option value="Toyota">Toyota</option>
                        </select>
                </div>











            </fieldset>
            <fieldset class="form-container__fieldset">
                <button class="form-container__send-button">Enviar dados</button>
            </fieldset>
        </form>
       
    </main>
    <script src="./scripts/index.js"></script>
</body>
</html>

 

 


<?php 
    $username = $_POST['name'];
    $lastname = $_POST['last-name'];
    $email = $_POST['email'];
    $phonenumber = $_POST['phone-number'];
    $address = $_POST['address'];
    $programming_hobbis = $_POST['programming_hobbis'];
    $programming_genero = $_POST['programming_genero'];
    $programming_sport = $_POST['programming_sport'];
    $programming_time = $_POST['programming_time'];
    $programming_genero = $_POST['programming_genero'];
    $programming_carro = $_POST['programming_carro'];
    $programming_marca = $_POST['programming_marca'];



?>

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Dados cadastrados</title>
</head>
<body>
    <main class="container">
            <header class="container__header">
                <h1>Rubão o dono do Mundo</h1>
                <p>Esses são os seus gostos pessoais</p>
            </header>

        <section class="container__data">
            <ul>
                <li>
                    <strong>Nome completo: </strong>
                    <span> <?php echo $username . " " . $lastname ?> </span>
                </li>
                <li>
                    <strong>E-mail: </strong>
                    <span> <a href=<?php echo "mailto:" . $email ?>><?php echo $email ?></a> </span>
                </li>
                <li>
                    <strong>N° do celular: </strong>
                    <span> <?php echo $phonenumber ?> </span>
                </li>


                <li>
                    <strong>CPF: </strong>
                    <span> <?php echo $cpfnumber ?> </span>
                </li>



                <li>
                    <strong>RG: </strong>
                    <span> <?php echo $rgnenumber ?> </span>
                </li>




                <li>
                    <strong>Endereço: </strong>
                    <span> <?php echo $address ?> </span>
                </li>
                <li>
                    <strong>Hobbies favoritos: </strong>
                    <span> <?php echo implode(", ", $programming_hobbis) ?> </span>
                </li>
                <li>
                    <strong>Generos: </strong>
                    <span> <?php echo $programming_genero ?> </span>
                </li>

                <li>
                    <strong>Esports: </strong>
                    <span> <?php echo implode(", ", $programming_sport) ?> </span>
                </li>
                <li>
                    <strong>Generos: </strong>
                    <span> <?php echo  $programming_time  ?> </span>
                </li>

                <li>
                    <strong>Carro: </strong>
                    <span> <?php echo implode(", ", $programming_carro) ?> </span>
                </li>
                <li>
                <strong>Marca: </strong>
                    <span> <?php echo  $programming_marca  ?> </span>
                </li>


                </ul>
        </section>
               


            </ul>
        </section>
       
    </main>
</body>
</html>

 

  • Moderador
Postado

@Berus-kun Nenhuma,  você precisa adicionar.  Ali em cima onde você pega os dados do form...

Você simplesmente esqueceu de escrever essas duas linhas para pegar os valores dos campos de cpf e rg.  

Do jeito que está, ele vai acusar erro nas variáveis inexistentes.

 

<?php 
    $username = $_POST['name'];
    $lastname = $_POST['last-name'];
    $email = $_POST['email'];
 
    //as duas variáveis que faltam 
    $cpfnumber  = $_POST["cpf-number"];
    $rgnenumber = $_POST["rg-number"]; 

    $phonenumber = $_POST['phone-number'];
    $address = $_POST['address'];
    $programming_hobbis = $_POST['programming_hobbis'];
    $programming_genero = $_POST['programming_genero'];
    $programming_sport = $_POST['programming_sport'];
    $programming_time = $_POST['programming_time'];
    $programming_genero = $_POST['programming_genero'];
    $programming_carro = $_POST['programming_carro'];
    $programming_marca = $_POST['programming_marca'];

 

  • Moderador
Postado

@Berus-kun De que vetor você diz? Os únicos que precisam de vetor ali são os grupos de checkbox.  

Notei que no seu formulário tem um campo de texto pra escrever caso não tenha marcado algum checkbox.. nesse caso acho que você pode fazer um teste ali caso nenhum checkbox foi ativado, o valor será do campo de texto.

  • Moderador
Postado

@Berus-kun Eu ainda não entendi de QUAL vetor você está se referindo..  

Pelo que eu vi no seu código, você já criou os vetores necessários de cada grupo de checkbox.

 

Não testei, mas creio que seja possível integrar um valor de campo de texto no mesmo array de um checkbox...  adicionando no name do campo o array dos checkbox

 

Ou você pode separar as coisas..  do tipo, adicionar um radio button, para a pessoa escolher se quer usar o valor do campo texto ou os checkbox... bem.. mas como eu não entendi direito sua pergunta... eu que presumi isso. 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...