Ir para conteúdo
Fórum Script Brasil

mJi

Membros
  • Total de itens

    429
  • Registro em

  • Última visita

Tudo que mJi postou

  1. fgets() lê strings com espaço. Acho que gets() também. É possível usar uma expressão regular no scanf() para que ele leia espaços... Exemplo: scanf("%[^\n], string); Sobre getline(), você precisa compreender como ela funciona, quais são os parâmetros. Dá uma conferida. Mas como acredito que seja C++ e você está fazendo em C, não deve usar getline.
  2. mJi

    Ajuda em c

    É melhor fazer um for para cada tipo. Facilita para visualizar a disposição dos endereços de memória. Mas é isso ae que o Dan postou.
  3. mJi

    Ajuda em c

    Basicamente, percorra cada vetor e dê um printf com o argumento %p. O %p imprime o endereço da variável na memória (em hexadecimal). Exemplo considerando vetores de 5 posições: for(i=0;i<5;i++) printf("%p ", v[i]);
  4. mJi

    Calendario php

    Crie uma tabela no banco de dados com dias que são feriados; Para colocar a manutenção a cada X meses, multiplique a quantidade de meses pelo número de dias de cada mes (o que lhe dará a quantidade de dias a cada manutenção) e ao exibir o calendário, coloque a manutenção a cada tantos dias. Se cair num feriado, some mais um dia. Se cair em outro, some mais um... vá fazendo isso até cair num dia útil.
  5. Não espera que façamos seu dever de casa, não é? Poste o que conseguiu fazer
  6. No cadastro de fotos, você pode usar uma tabela com um ID que identifique a foto, um ID que identifique o álbum ao qual a foto pertence, e o caminho para a foto no servidor. Assim, ao visualizar um album, basta dar um SELECT em todas as imagens que possuem o ID do álbum ...
  7. getline() não é C++? Tá realmente difícil entender esse código. Por exemplo, o terceiro parâmetro de getline() deve ser um caractere delimitador, mas você colocou 'fp', que está definido como a função fopen abrindo o arquivo 'lista'... Aí é complicado de entender.
  8. mJi

    Listar penultimo resultado;

    Faz um SELECT com LIMIT 2 e ORDER BY ID DESC Você terá o último e penúltimo. Armazene-os num array e terás o penúltimo na 2ª posição do array.
  9. mJi

    Renomear imagem no upload PHP

    $numero = rand(000000000,999999999); As chances de repetir são quase nulas... Mas você pode gerar o número, conferir se ele já foi usado, e se foi, gerar outro número. Fazer isso até gerar um número que não foi usado. Use uma função para isso. Exemplo: function detectaIguais($diretorio, $numero){ $ptr = opendir($diretorio); while($nome_itens = readdir($ptr)) if(($nome_itens[0] != '.') && (!is_dir($nome_itens))) if($nome_itens == $numero."gif") return(1); return(0); } Recebe o diretório e o número, Percorre os ítens do diretório fazendo verificações. Se encontra algum arquivo que possui o número como nome (e gif como extensão), retorna 1. Senão, retorna 0. Para ir gerando números randômicos até gerar um que não existe... do{ $numero = rand(000000000,999999999); } while(detectaIguais($sTmpFolder, $numero)); Você também pode ir gerando números consecutivos... 1, 2, 3, 4... Basta pegar os nomes dos arquivos , ordenar, e gerar o número consecutivo ao último nome já existente.
  10. Resolvi praticar um pouco, e fiz o contador. arquivo 'conecta_db.php' <?php //CONEXÃO COM O BANCO DE DADOS //Informações de conexão ao banco de dados $servidor = "localhost"; $user = "root"; $senha = "root"; $nome_db = "contacliques"; $nome_tabela = "links"; /************************************/ $sql = @mysql_connect($servidor, $user, $senha); $sel_db = @mysql_select_db($nome_db); if(!$sql){ echo "Impossível conectar ao banco de dados."; exit(); } if(!$sel_db){ echo "Impossível selecionar o banco de dados."; exit(); } ?> arquivo 'links.php' <?php //Conecta-se ao banco de dados require_once("conecta_db.php"); //Pega o ID do parceiro, que esta na URL. //Exemplo: http://www.site.com.br/links.php?id=123456 $id = $_GET['id']; if(!isset($id)){ echo "Erro: Impossível identificar o ID do link."; exit(); } //Incrementa o número de acessos $incrementar = @mysql_query("UPDATE `".$nome_tabela."` SET `acessos` = `acessos` + 1 WHERE `id` = '".$id."'"); //Pegar a URL que será redirecionada $pegarURL = @mysql_query("SELECT `link` FROM `".$nome_tabela."` WHERE `id` = '".$id."'"); $url = @mysql_fetch_array($pegarURL); if((!$incrementar) || (!$pegarURL)){ echo "Erro nas consultas."; exit(); } //Desconecta do banco de dados mysql_close($sql); //Redireciona header("Location: ".$url[0].""); ?> É mais ou menos isso ae, considerando um banco de dados chamado 'contacliques', uma tabela 'links', com os campos id: tipo inteiro, com auto_increment acessos: inteiro, inicializado com zero link: endereço que será redirecionado.
  11. mJi

    Acessar Variável Externa

    Sem GET tem que fazer gambiarra. Antes de redirecionar, você pode gravar o valor da variável num arquivo de texto no servidor. Depois de redirecionar, pegue o valor do arquivo de texto, atribua á uma variável e delete-o. É uma das maneiras.
  12. O host de seu site lhe fornece um banco de dados MySQL? Se sim, basta criar uma tabela, com os seguintes campos: ID: Um número que identifica o link link: o endereço que será redirecionado acessos: o número de acessos. Todos os links devem estar 'cadastrados' nesse banco de dados. Por exemplo... o link cujo ID é 12 é acessado pela url http://www.site.com.br/links.php?id=12 Então, a página parceiros pega o ID via GET, faz a consulta no banco para incrementar o campo 'acessos' do ID 12, e pega a url que está no campo 'link' do ID 12. Depois, só redirecionar para a url que foi pega no banco de dados.
  13. O resultado da query é um recurso SQL, quando a query é executada com sucesso, ou um FALSE caso haja falha. Ou seja, o problema está na consulta SQL, e não no fetch. Verifique se essa consulta realmente retorna resultados, se os nomes dos campos e tabela estão certinhos, se aquele require realmente estabelece a conexão...
  14. Desenvolver uma função dessas em PHP é bem fácil. Fiz uma aqui em C para um trabalho da universidade. Crie vetores de strings contendo, cada posição, o nome por extenso dos números: - De 0 até 19; - Das dezenas (10 até 90); - Das centenas (100 até 900); - Palavras especiais (mil, milhões, bilhões...); Após, separe o número e vá pegando o conteúdo dos vetores, concatenando numa string final. Se lê um número que identifica a centena, pegue o valor do vetor '$centena[$numero]', por exemplo.
  15. Na verdade, a maneira que ele fez é válida: struct { ....conteudo.... } comprador[dim]; É possível declarar uma variável ou vetor na própria estrutura, colocando o nome da variável após a declaração da estrutura. Também, quando se declara todas as variáveis de tal tipo na própria estrutura, não é necessário colocar um identificador para a estrutura. Forma geral: struct identificador { conteudo... } variavel, variavel2, variavel3; Uma coisa que está errada nesta estrutura é comprador[dim]; Pelo que eu leio por aí, acredito que não seja recomendado, ou até mesmo não seja válido declarar um vetor com uma variável identificando o tamanho do mesmo. O resto nem olhei.
  16. É relativamente fácil... Faça uma página de redirecionamento. Ela deve receber via GET um id da página (ou até mesmo o endereço da página). Então, ela grava no banco de dados o acesso e redireciona. Um exemplo de url comum... http://www.site.com.br/parceiros.php?id=23 Ou seja, a página 'parceiros' recebe o id 23. Vai até o banco de dados, incrementa o contador de acessos, pega o endereço do site e redireciona a página.
  17. mJi

    Qual estado?

    Acredito que não há maneira. Talvez até haja, detectando o endereço IP ou ISP do visitante, mas as chances de acertar não são lá tão boas. Por isso que grandes empresas que atuam em vários estados pedem para que o visitante selecione seu estado, nos sites. Eu moro no Rio Grande do Sul, mas na maioria dos sites com detecção de localização, mostra que estou em São Paulo.
  18. mJi

    Somatório Número Digitado

    Aproveitando a levada também... Solução recursiva para o problema: #include <stdio.h> int somatorio(int num){ if(num) return(num + somatorio(num-1)); else return(0); } int main(){ int num; printf("Digite um numero: "); scanf("%d", &num); printf("O somatorio e: %d.\n", somatorio(num)); return(0); }
  19. mJi

    Mkdir sem permissão

    Já tentou sem o terceiro parâmetro, que por default, é false? Ah, e
  20. mJi

    preciso de ajuda com datas

    Prefira gmmktime() ao invés de mktime(). Estas funções que retornam timestamp devem receber inteiros, que representam ano, dia, mes, etc... Provavelmente você conseguiu tais informações de uma string, através de um explode, ou alguma expressão regular. As informações presentes no array $arr são strings. O que você deve fazer é convertê-las para valores inteiros antes de submeter á função gmmktime(). Tente utilizando casts. Nem vou postar exemplo, pois você acha vários na própria documentação da linguagem.
  21. Diga no que você tem dificuldade... não é algo que possamos adivinhar.
  22. mJi

    preciso de ajuda com datas

    O segundo parâmetro de date() deve ser um timestamp. Para conseguir o timestamp de uma data GMT, use gmmktime().
  23. mJi

    preciso de ajuda com datas

    A função 'strtotime' requer, no máximo, 2 parâmetros (e no mínimo 1). Você passou 6 parâmetros. Você deve passar uma string com um formato de data válido.
  24. Dei uma olhada bem por cima... Na função tipoB(), isso aqui n == nn; É uma comparação. Basicamente é uma operação lógica que retorna zero caso falsa, ou um valor diferente de zero caso verdadeira. Caso você queira atribuir o valor de 'nn' á 'n', o correto é usar apenas um sinal de igual: n = nn; No seu programa, isso também é incorreto, pois 'nn' não foi inicializado. Ainda: float numeros[n]; Prefira usar alocação dinâmica. Foi-me dito que isto é incorreto. Pessoalmente nunca usei declarações dessa maneira. E... declare as variáveis no começo do programa (ou função). O ministério da interpretação de algoritmos recomenda.
×
×
  • Criar Novo...