Ir para conteúdo
Fórum Script Brasil

mbleonardo

Membros
  • Total de itens

    650
  • Registro em

  • Última visita

Posts postados por mbleonardo

  1. ahh só uma observação pra sua query:

    SELECT * FROM espera [red]ORDER by id ASC[/red]

    Se o id for AUTO_INCREMENT, essa parte da sua query é desnecessária e diminui um pouquinho a performance da sua query. Os últimos ids (os maiores) sempre vão estar no final da tabela e conseqüentemente sempre serão retornados em ordem crescente. Use só assim:

    SELECT * FROM espera

  2. Acho que a melhor solução para seu caso é apagar os dados quando eles expirarem. Não tem como garantir que algo será executado se o usuário fechar a janela.

    Crie um campo DATETIME com a hora que os dados foram inseridos lá, e a cada visita na página você apaga os registros mais antigos, da mesma forma que é feito num sistemas de usuários online.

    $time = now();

    $expirados = date('Y-m-d H:i:s', $time - (30*60)); //meia hora atrás

    DELETE FROM tabela WHERE criado <= '$date'

  3. Está faltando ASPAS em todas as tags e javascript é junto, não separado:

    if(strlen($fields[2]) >1200)
        print '<img src="mini_imagem.jpg" style="float:left">'.$titulo.$data.cortaTexto($descricao , 1200).' <a href="java script:abrir(<?php echo $fields[0]; ?>);">..Ver toda notícia</a>";  
        
        else  print '<img src="mini_imagem.jpg" style="float:left">'.$titulo.$data.$descricao;

  4. O PHP é server-side, o que significa que não é possível realizar operações no HD do cliente e apenas do servidor. Imagine se isso pudesse ser feito, seria uma enorme brecha de segurança para os usuários.

    Você falou em sockets. Eu já consegui fazer uma conexão entre PHP e um programa em VB que usava Winsock. Talvez esse seja o melhor caminho para o que você quer fazer. O programa (em Delphi, no caso) abre uma conexão de socket com seu site e envia as informações sobre o HD do usuário, mas roteadores e coisas do tipo podem atrapalhar a comunicação e você deverá deixar bem explicado aos usuário porquê é necessário instalar esse programa, se não muitos acharão que é vírus (e na verdade não deixa de ser um Trojan) e qualquer firewall poderá bloquear o acesso.

  5. Sessões são melhores que cookies, porque são gravadas no servidor e suportam uma grande quantidade de dados (coisa que um cookie não suporte), mas de qualquer forma é preciso ter um cookie para fazer o "track". Não use banco de dados só para guardar os produtos do carrinho. Se alguém conseguir acesso ao arquivo de sessão do carrinho e não haver nenhuma informação sobre o cliente que está comprando, não deve ser um grande risco de segurança, mas você pode/deve usar criptografia para melhorar a segurança.

  6. Você pode usar o strpos para verificar se tem tal conteudo na variável:

    if(strpos($variavel, "t") === null){

    echo "não tem a letra 'T'!";

    }

    else{

    echo "tem a letra 'T'!";

    }

    Outras funções que podem ser uteis: strrpos() e strstr(). Verifique na documentação.

  7. Alguém tem um exemplo de como pegar as chaves definidas num objeto Dictionary, e como fazer um loop para relacionar as chaves e os valores (eu preciso dos dois)

    Por exemplo, em php eu faria assim:

    foreach($dic as $key => $value)

    onde $key guardaria a chave e $value o valor.

    Muito obrigado!

  8. Desde que o interpretador PHP esteja instalado instalado na máquina onde o script será rodado, obviamente funciona. Se você não tiver o PHP mas se o seu servidor tiver, sem problemas (a não ser que esteja alguma coisa configurada incorretamente ou a função esteja bloqueada)

  9. Você pode fazer um loop com todos os arquivos enviados assim:

    foreach($_FILES as $value){
    
    /* os dados do arquivo atual estarão disponíveis assim:
    $value['name'] = nome do arquivo
    $value['type'] => tipo mime
    $value['tmp_name'] => caminho temporário
    $value['error'] => erro
    $value['size'] => tamanho
    */// Exemplo de como fazer o upload:
    
    if(empty($value["name"])) continue; //campo em branco, pula para o próximo
    
    move_uploaded_file($value['tmp_name'], "DIRETORIO_DESTINO");
    
    }
    

  10. Ao "chamar" um classe você está inicializando um objeto, é útil para manipulação de várias coisas juntas, por exemplo:

    <?php

    class Carros { //exemplo clássico

    var modelo;

    var marca;

    var ano;

    function Carro(){ // construtor

    return true

    }

    function define_marca($marca){

    $this -> marca = $marca

    }

    function pega_marca(){

    return $this -> marca;

    }

    function define_modelo($modelo)

    $this -> modelo = $modelo

    }

    ....

    }

    //Agora você manipula o objeto

    $carro = new Carros();

    $caro -> define_marca("VW");

    $carro -> define_modelo("Gol");

    ....

    ?>

    Ou seja, classes são conjuntos de funções para trabalhar com um mesmo objeto. Para funções simples do tipo substr(), é muito melhor só utilizar funções.

    Na classe mysqli do PHP5 por exemplo, eu utilizo a estrutura orientada a objetos porque eu gosto mais de sua sintaxe, mas a orientada a funções funciona da mesma forma. Só que tem alguns casos que é muito melhor utilizar classes. Por exemplo, a classe Archive::Zip do Pear, que cria arquivos ZIP, seria muito trabalhoso fazer o que ela faz sem uma classe.

  11. Você deveria postar isso no fórum de JavaScript!

    Tenho um código parecido, ele adiciona campos para recomendar para amigos, mas você pode adaptar:

    O Script:

    <script language="JavaScript" type="text/JavaScript">
    var id=2;
    function AddMore() {
    if(id==6){return alert("O limite é de 5 amigos");}else{
    obj="To"+id; 
    next_id=id+1; 
    obj2="To"+next_id;
    
    newText="<table width=\"100%\" border=\"0\" cellpadding=\"0\"><tr><td align=\"right\" width=\"114\"><strong>Nome #"+id+"</strong></td><td><input type=\"text\" name=\"name"+id+"\"></td></tr><tr><td align=\"right\"><strong>E-mail #"+id+"</strong></td><td><input type=\"text\" name=\"email"+id+"\"></td></tr></table><hr><div id="+obj2+"></div>"; 
    
    with (document.getElementById(obj)) 
    
    if (document.layers) {
        document.write(newText);
        document.close();
    } 
    else {
        innerHTML = newText;
    }
    document.getElementById('total_friends').value=id;
    id=id+1;
    }}</script>
    
    O id começa no 2 porque o 1 é o que já aparece na tela. Código no form:
    <div id="To1"> <table width="100%" border="0" cellpadding="0"> <tr> <td width="114" align="right"><strong>Nome #1</strong></td> <td><input name="name1" type="text" id="name1"></td> </tr> <tr> <td align="right"><strong>E-mail #1</strong></td> <td><input name="email1" type="text" id="email1"></td> </tr> </table> </div> <hr> <div id="To2"> </div>
    O link:
    <a href="#" onClick="AddMore()">Adicionar mais</a>

    Funciona assim: Quando o usuário clica no link, o innerHTML vai adicionar a variável newText (que é a tabela e o código html do novo campo) dentro da <div> que eu destaquei em azul e vai criar uma nova <div> com id+1 para ir colocando mais tabelas e a <div> com id seguinte.

    Espero ter ajudado, qualquer coisa grita aí!

  12. O código PHP pode ser inserido em qualquer parte do código, depende do que você precisa que ele faça.

    Ex:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

    <title><?php print "Este título pode variar!"; ?></title>

    </head>

    <body>

    <?php print "Olá!"; ?>

    </body>

    </html>

    Existe um manual online onde você pode aprender como instalar o PHP como, como é a estrutura da linguagem e como utilizar todas as funções.

    http://br.php.net/manual/pt_BR/

  13. Este segundo código está dentro de um loop for com os mesmos dados do que gerou os checkboxes ?

    Seu erro é do HTML oO. Seu código não define um "value". Você usa $i no for, mas na hora de mostrar o value você usa $id !! Ou seja, todos os campos irão ter o mesmo nome e valor. E se $id for vazio não terá valor!

    Acho que não é uma boa fazer esta verificação com isset(). Tente assim:

    Checkbox

    <input type="checkbox" name="cb3" value="ok" />

    //PHP

    <?php

    if($_POST["checkbox"] == "ok"){

    // Checked

    }else{

    //Não ticado

    }

    ?>

  14. Então você terá que revisar seu código. Supondo que $i = 3 e ele não encontre mais linhas do banco de dados, $i não será subtraído e a condição do 1º While ($i > 0) vai se tornar sempre verdadeira e o processamente ficará preso no loop.

    Mais uma coisa, na 1ª linha, você não deve usar aspas para valores booleanos:

    $there_is = "false"; // errado, $there_is será avaliado como true por não estar vazio

    $there_is = false; // correto

    Voltando ao seu problema, você pode tentar fazer algo mais ou menos assim:

    $res = 0; //Nº da linha exibida

    $res2 = mysql_num_rows($query)-1; // Total de linhas

    while ($i > 0){

    while ($line = mysql_fetch_array($query,MYSQL_ASSOC)){

    if ($mem[$i][1] == $line['id']){

    $mem[$i][2] = $line['apelido'];

    echo "<A href='ver.php?id=".$mem[$i][1]."'>".$mem[$i][2]."</A><BR>";

    $i -= 1;

    }

    $res++;

    }

    if($res >= $res2) break;

    }

×
×
  • Criar Novo...