-
Total de itens
400 -
Registro em
-
Última visita
Posts postados por wash
-
-
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:
Se ainda estiver funcionando mysql_* aí, é altamente recomendável que você atualize seu php
-
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
-
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);
-
-
-
No trecho acima, não vi onde é usada a variável $where.
Prezado Jamiel.
O sr. está fazendo uso exagerado e desnecessário do @
Habilite o error_reporting(E_ALL) e remova todos esses arrobas aí
-
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>'); } ?>
-
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>';
-
Olá!
mostre-nos o trecho com o array e onde você gera os checkboxes
-
Olá! aparentemente é um fecha aspas depois que fecha o parêntesis do md5
-
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:
-
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>';
}
-
Olá johnhey!
Afinal... já solucionou?
-
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:
Talvez tenha comido mais alguns caracteres
-
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>
-
hummm...
Não percebi onde estão as variáveis de sessão
-
Olá!
Mostre o trecho onde você monta a query de inserção
-
Olá!
Creio que seja realmente necessário reescrever a variável quando usar operadores lógicos. Veja: http://php.net/manual/pt_BR/language.operators.logical.php
-
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
-
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:
5) Se puder, atualize seu php
Imagem da 1)
-
Olá!
Verifique no seu php.ini o valor definido para max_post_size ou upload_max_filesize, o padrão parece ser 2M, tente aumentar um pouco e veja o resultado.
Se não tiver acesso ao seu php.ini, provavelmente poderá ser definido no arquivo .php assim:
ini_set('post_max_size', '50M'); ini_set('upload_max_filesize', '50M');
-
Ôppa! Que bom que solucionou!
-
Hummm...
Percebi! Vou ter que entender melhor a lógica das queries de busca do seu sistema...
-
Ôppa! Creio que agora entendi!
Onde presenca = 1 você quer exibir a letra P, onde não for, você precisa exibir a letra F
Use um if na sua query assim:
(IF(presenca=1,'P','F')) as presenca
Update Imagem
em PHP
Postado
Talvez o arquivo da imagem esteja no cache
use ctrl+f5 no browser pra recarregar tudo, só pra conferir