Ir para conteúdo
Fórum Script Brasil

wash

Membros
  • Total de itens

    400
  • Registro em

  • Última visita

Posts postados por wash

  1. Olá!

    Possíveis drivers de conexão:

    PDO

    mySqli

    mysql_*

    Com mysql_* use: mysql_set_charset('utf8');

    Com mysqli: mysqli->set_charset('utf8');

    Com PDO: new PDO("mysql:host=$hostname;dbname=$database;charset=utf8", ...

    Você está usando alguma dessas 3 maneiras de se conectar ao mysql, ou outra?

    Só lembrando que o php.net há vários anos vem recomendando não se usar as extensões mysql_* nunca mais, veja:

    mysql_.jpg

    Se ainda estiver funcionando mysql_* aí, é altamente recomendável que você atualize seu php

  2. Olá!

    você precisa definir o charset tb com a conexão com o banco de dados.

    Que driver de conexão você usou?

    Use HTML5:

    <meta charset='utf-8'>

    Antigamente essa meta tag precisava estar nos primeiros k de seu documento já renderizado

  3. Olá!

    Não entendi onde você pega os dados do usuário.

    algumas percepções:

    a) em $dati = explode("-", $dato[$j]); não existem as variáveis $dato, nem a variável $j

    b) logo, não vai existir o índice $j em $dataconvertida[$j] nem os índices da variável $dati em: $dataconvertida[$j] = $dati[2] . "/" . $dati[1] . "/" . $dati[0];

    c) em <td style="padding-left:35px;"> R$<?php echo $produtos[$cont][valor_produto]; ?></td></td> faltam aspas simples em ['valor_produto']

    d) em <td style="padding-left:30px;"><?php echo $produtos[$cont][nome_produto] ?></td></td> faltam aspas simples em ['nome_produto']

     

    Atualize seu php

    Em ambiente de desenvolvimento use sempre o:

    error_reporting(E_ALL);

  4. Olá!

    percebi duas coisas

    1) A id de tab_entradaestoque é automática! creio que não deve ser declarada na query de inserção.

    2) você está misturando pdo com mysql_*

    use apenas um driver

    há uns 4 anos que o php.net recomenda não usar mysql_* nunca mais

    veja:

    mysql_.jpg

  5. Olá Jamiel!

    Tá faltando avisar pra sua query de busca, que é pra buscar somente o post que tem determinada id:

    Segue sugestão para o Código da página single-post:

    <?php
                // pega a id da url:
                if (isset($_GET['id'])) {
                   $id = intval($_GET['id']);
                   // avisa pra query de busca que é pra buscar somente o post com aquele $id
                   $sql = "select * from post p, categoria c where p.cat_id = c.cat_id AND post.id=$id LIMIT 1";
                   $qry = mysqli_query($sql);
                   $linha = mysqli_fetch_array($qry);
                } else {
                   die('<p class="error">Tá faltando a id, chefe!</p>');
                }
                ?>

     

  6. Segue sugestão para solução:

    <?php
    // array q vai gerar os checkboxes:
    $a = [
        'João',
        'José',
        'Maria',
        'Fernando',
        'Pedro',
        'Larissa'
    ];
    // variácel com o início do form
    $form = '<form method="post">';
    // percorre o array
    foreach ($a as $id => $value) {
       // inicia a variável que vai deixar os checkboxes marcados
       $checked = null;
       // se a id tive sido postada
       if(isset($_POST['produtolist']) && in_array($id, $_POST['produtolist'])){
          // altera a variável que vai deixar os cheboxes marcados
          $checked = ' checked';
       }
       // inclui os checkboxes em $form
       $form .= "<input id='ck_$id' name='produtolist[]' value='$id' type='checkbox'$checked> <label for='ck_$id'>$value</label><br>";
    }
    // exibe o $form na tela
    echo $form . '<br><input type="submit" value="Salvar"></form>';

     

  7. Olá!

    A função md5 existe no php e no mysql.

    Tente assim:

    mysql_query("UPDATE clientes SET cliente='$_POST[form_cliente]',login='$_POST[form_login]',senha=MD5('$_POST[form_senha]'),...

    Mas não sei dizer se é uma boa prática!

    Talvez fosse melhor escapar todas essas strings e criptografar antes de montar a query. Pra evitar sql injection

    E a cerca de uns 4 anos q o php.net recomenda a não usar as extensões mysql_* nunca mais, veja:

    mysql_.jpg

  8. O select tá aparecendo corretamente no browser?

    Se não estiver, tente isso:

    while ($dados = mysql_fetch_array($resultado)) {
    echo '<pre>'; print_r($dados); echo '</pre>';
                  $nome_tabela = $dados[];

    Só não tá enviando os valores em <option value='?'>

    então tente isso, no início do arquivo .php:

    <?php

    if(sizeof($_POST)){

    echo '<pre>'; print_r($_POST); echo '</pre>';

    }

  9. Olá!

    Tente assim:

    Arquivo connection.php

    <?php
    
    // variáveis para conexão com banco de dados online
    $host = 'localhost';
    $user = 'root';
    $password = '';
    $database = 'scriptbrasil';
    
    // estabelecer conexão:
    $sqli = new mysqli($host, $user, $password);
    
    // verificando se conectou de boas:
    if ($sqli->connect_error) {
       // se houver alguma falha, exibe mensagem:
       echo '<p class="error">Falha na conexão: ' . $sqli->connect_error . '</p>';
    }
    
    // definir o padrão de caracteres
    if (!$sqli->set_charset('utf8')) {
       // se não conseguir definir o padrão de caracteres, exibe o padrão disponível
       echo "<p class='error'>Seu charset não é utf8, chefe!<br>$sqli->character_set_name()</p>";
    }
    
    // selecionar/abrir o banco de dados para trabalhar
    if (!$sqli->select_db($database)) {
       // se o banco de dados não for encontrado
       echo "<p class='error'>Banco de dados não encontrado, chefe!</p>";
    }

    Outro arquivo:

    <?php
    error_reporting(E_ALL);
    include 'connection.php';
    // inicia as variáveis do formulário:
    $datacomp = $carro = $anomod = $placa = $cor = $origem = $valorcomp = $situa = $info = null;
    
    $error = isset($_GET['sizeof']) ? $_GET['sizeof'] : null;
    
    if (isset($_POST['datacomp'])) { // se datacomp foi postada
    
    // Recebendo valores
       extract($_POST);
    // define as mensagens de erro para cada campo
       $error_msgs = [
           'datacomp' => 'Preencha a Data',
           'carro' => 'Preencha o nome do Carro',
           'anomod' => 'Preencha o Ano/Modelo',
           'placa' => 'Preencha o nome do Carro',
           'cor' => 'Preencha a cor do Carro',
           'origem' => 'Preencha a origem (nac/Imp) do Carro',
           'valorcomp' => 'Preencha o Valor Pago',
           'situa' => 'Preencha a Situação do Carro',
       ];
       // checar se algum dos campos em $error_msgs está vazio:
       foreach ($error_msgs as $k => $v) {
          if (empty($$k)) {
             $error[] = $v;
          }
       }
    // Caso não haja nenhum erro
       if (sizeof($error) == ) {
    
          $save = $sqli->query("INSERT INTO veiculos VALUES ('', '$datacomp', '$carro', '$anomod', '$placa', '$cor', '$origem', '$valorcomp', '$situa', '$info')");
    
          if ($sqli->error) {
             echo "<script language='javascript'>alert('Não foi possivel realizar o cadastro no momento')</script>" . $sqli->error;
          } else {
             echo "<script language='javascript'>alert('Cadastro efetuado com sucesso')</script>";
          }
       }
    }
    ?>
    <!doctype html>
    <html lang='pt-br'>
       <head>
          <meta charset='utf-8'>
          <title>Cadastro de Veículos</title>
          <link href="estilo.css" rel="stylesheet">
       </head>
    
       <body>
          <div id="principal">
             <h1>Cadastro de Veículos</h1>
             <?php
    // Caso haja erros
             if (sizeof($error)) {
                // Exibe os erros
                foreach ($error as $err) {
                   echo "<font color='red'><b>" . $err . '</b></font><br>';
                }
             }
             ?>
             <form method="post">
                <p><strong>Data da Compra:</strong><br>
                   <input name="datacomp" type="date" value="<?= $datacomp ?>" required></p>
                <p><strong>Carro:</strong><br>
                   <input name="carro" type="text" value="<?= $carro ?>" ></p>
                <p><strong>Ano / Modelo:</strong><br>
                   <input name="anomod" type="text" value="<?= $anomod; ?>"></p>
                <p><strong>Placa:</strong><br>
                   <input name="placa" type="text" value="<?= $placa; ?>"></p>
                <p><strong>Cor:</strong><br>
                   <input name="cor" type="text" value="<?= $cor; ?>"></p>
                <p><strong>Origem:</strong><br>
                   <input name="origem" type="text" value="<?= $origem; ?>"></p>
                <p><strong>Valor da Compra:</strong><br>
                   <input name="valorcomp" type="text" value="<?= $valorcomp; ?>"></p>
                <p><strong>Situação:</strong><br>
                   <input name="situa" type="text" value="<?= $situa; ?>" required></p>
                <p><strong>Informações Adicionais:</strong><br>
                   <textarea name="info" cols="30" rows="5"><?= $info; ?></textarea></p>
                <p><input type="submit" value="Cadastrar" ></p>
             </form>
          </div>
          <a href='index.php'>Voltar</a>
       </body>
    </html> 

     

    Ué! O sistema do fórum comeu um zero ali:

    sahncBX.png

    Talvez tenha comido mais alguns caracteres

  10. Olá!

    Dentro de aspas duplas, use aspas simples.

    Use html5

    Segue sugestão de solução:

    <!doctype html>
    <html>
       <head>
          <meta charset="utf-8">
          <title>Page Title</title>
       </head>
       <body>
          <?php
          echo '<form method="post">
           <input type="submit" name="enter" value="começar">
          </form>';
          if (isset($_POST['enter'])) {
             echo '<form method="post">
           <input type="text" name="n" placeholder="Digite o tamanho do vetor">
          <input type="submit">
          </form>';
          }
          if (isset($_POST['n'])) {
             $n = $_POST['n'];
             $i = ;
             echo '<form method="post">';
             for ($i = ; $i <= $n; $i++) {
                echo "Entrada $i: <input type='number' name='entradas[$i]' required><br><br>";
             }
             echo '<input type="submit" name="vetor"></form>';
          }
          if (isset($_POST['vetor'])) {
             // soma os valores no array:
             $total = array_sum($_POST['entradas']);
             // quantidade de valores no array:
             $quantidade = sizeof($_POST['entradas']);
             // calculo da média: soma dos valores / quantidade de valores
             $media = $total / $quantidade;
             // faz uma cópia do array:
             $ordered = $_POST['entradas'];
             // ordena do menor para o maior:
             sort($ordered);
             // pega o menor valor:
             $menor = array_shift($ordered);
             // pega o maior valor:
             $maior = array_pop($ordered);
             // pega a posição do menor valor:
             $menorPos = array_search($menor, $_POST['entradas']);
             // pega a posição do maior valor:
             $maiorPos = array_search($maior, $_POST['entradas']);
    
             echo "A média é: $media; <br>
              O menor valor é: $menor <br>
              A posição do menor valor é: $menorPos <br>
              O maior valor é: $maior <br>
              A posição do maior é: $maiorPos <br>";
          }
          ?>
       </body>
    </html>

     

  11. Olá evod! Que bom que já resolveu!

    Sugiro apenas que troque o campo de texto por um campo do tipo tinyint, que assim seu banco de dados ficara mais leve e mais rápido!

    Segue sugestão testada:

    Arquivo .sql

    -- remover banco de dados se ele existir
    DROP SCHEMA IF EXISTS evod;
    -- criar banco de dados
    CREATE SCHEMA evod;
    -- usar o banco de dados
    USE evod;
    
    --
    -- utilizadores
    --
    
    CREATE TABLE utilizadores (
      id int(11) primary key auto_increment NOT NULL,
      utilizador varchar(60),
      `pagina-inicial` tinyint(1) DEFAULT ,
      `pagina-produtos` tinyint(1) DEFAULT 
    ) ENGINE=InnoDB;
    
    
    INSERT INTO utilizadores (utilizador, `pagina-inicial`, `pagina-produtos`) VALUES
    ('João Mariano', 1,1),
    ('Maria Fernanda', 1,),
    ('Pedro Rangel', ,),
    ('Cláudia Rabello', ,1);

    connect.php Arquivo de conexão com o banco de dados:

    <?php
    
    // definição de variáveis para conexão
    $host = 'localhost'; // endereço do banco
    $user = 'root'; // usuário
    $pass = '';  // senha
    $database = 'evod'; // nome do banco de dados
    
    // estabelecer conexão:
    $sqli = new mysqli($host, $user, $pass);
    
    // verificando se conectou de boas:
    if ($sqli->connect_error) {
        // se houver alguma falha, exibe mensagem:
        echo '<p class="error">Falha na conexão: ' . $sqli->connect_error . '</p>';
    }
    
    // definir o padrão de caracteres
    if (!$sqli->set_charset('utf8')) {
        // se não conseguir definir o padrão de caracteres, exibe o padrão disponível
        echo "<p class='error'>Seu charset não é utf8, chefe!<br>$sqli->character_set_name()</p>";
    }
    
    // selecionar/abrir o banco de dados para trabalhar
    if (!$sqli->select_db($database)) {
        // se o banco de dados não for encontrado
        echo "<p class='error'>Banco de dados não encontrado, chefe!</p>";
    }
    
    

    Arquivo com o formulário, contendo os input[type=radio] sendo carregados de acordo com o que está no banco de dados:

    <?php
    // conecta com o mysql
    require 'sql/connect.php';
    
    // trata id da url
    $id = isset($_GET['id']) ? $_GET['id'] : 1;
    $total_registros = 3;
    $next = $id + 1 > $total_registros ? 1 : $id + 1;
    
    //rotina para atualização:
    if (sizeof($_POST)) {
       echo '<p class="warning">A rotina para salvar não foi escrita, chefe!</p>';
    }
    
    // defique query de busca do utilizador
    $query = 'SELECT * FROM utilizadores WHERE id = ' . $id;
    // executa a query
    $result = $sqli->query($query);
    // verifica se houve algum erro na execução da query
    if ($sqli->error) {
       echo '<p class="error">Falha ao executar busca, chefe!<br>' . $sqli->error . '</p>';
    } elseif ($result->num_rows) { // se não houve falhas e existe algum resultado
       $dados = $result->fetch_all(MYSQLI_ASSOC)[];
    } else { // se não há nenhum resultado:
       echo '<p class="warning">Nenhum registro de utilizadores, chefe!</p>';
    }
    ?>
    <!doctype html>
    <html>
       <head>
          <meta charset='utf-8'>
          <title>title</title>
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
       </head>
       <body>
          <main>
             <h1><?= $dados['utilizador'] ?></h1>
             <form method="post">
                Página Inicial:<br>
                <?php
                // define as opções
                $podeEditar = ['Não Pode Editar', 'Pode Editar'];
                // monta os radios para página inicial:
                foreach ($podeEditar as $key => $value) {
                   $checked = $key == $dados['pagina-inicial'] ? ' checked' : null;
                   echo "<input type='radio' name='pagina-inicial' id='inicial$key' $checked> <label for='inicial$key'>$value</label> ";
                }
                ?>
                <hr>
                Página Produtos:<br>
                <?php
                // define as opções
                $podeEditar = ['Não Pode Editar', 'Pode Editar'];
                // monta os radios para página inicial:
                foreach ($podeEditar as $key => $value) {
                   $checked = $key == $dados['pagina-produtos'] ? ' checked' : null;
                   echo "<input type='radio' name='pagina-produtos' id='produtos$key' $checked> <label for='produtos$key'>$value</label> ";
                }
                ?>
                <hr>
                <input type="submit" value='Salvar'>
             </form>
             <p>
                <a href="?id=<?= $next ?>">Próximo Utilizador</a>
             </p>
          </main>
       </body>
    </html>

    Obs.: Testado no php 5.5.19  e no 7.0.5

  12. Olá @evod! Não entendi. Mesmo assim seguem algumas sugestões:

    1) O que não funciona? Os input[type=radio]?
    Em HTML use apenas a palavra checked, veja:

    2) Ou o que não funciona é a restrição de acesso a apenas determinado menu?

    3) Por quê você usa um array nos name dos input (pagina-inicial[] e pagina-produtos[]) se somente uma única opção poderá ser marcada?

    4) O php.net recomenda não usar mais as extensões mysql_* veja:

    mysql_.jpg

    5) Se puder, atualize seu php

     

     

     

    Imagem da  1)

    WPyQXTp.png

×
×
  • Criar Novo...