Ajuda - Busca - Membros - Calendário
Versão Completa: Tutoriais
Fórum Script Brasil > Programação & Desenvolvimento > PHP > Tutoriais & Dicas - PHP
Fox Trot
INSTALAÇÃO DO POSTNUKE

1) Introdução.

O PostNuke (postnuke.com) surgiu como uma dissidência do PHP-Nuke 5.0, e tem a reputação de ter melhor suporte ao usuário e mais estabilidade. Suas características são semelhantes aos do PHP-Nuke, mas a filosofia é diferente: um núcleo comum pequeno e características adicionais definidas em módulos instalados conforme necessário. Para instalar em um servidor, você precisa do Apache, PHP e MySQL pré-configurados.

Quais sistemas operacionais são suportados?

Linux
Unix
OS/2
Windows
MacOS
FreeBSD

2) Colocando a mão na massa.

Com o trio (Apache, PHP e MySQL) instalado e configurado em seu servidor é hora de colocar a mão na massa.
Entre em www.postnuke.com entre na seção downloads e faça o download da ultima versão do Postnuke. Os formatos disponibilizados no site são gzip e zip.
Em nosso caso escolhemos o *.zip.

Para descompatar no Windows, utilize o Winzip e no Linux utilize o Unzip.

Linux
unzip Arquivo.zip

Com os arquivos ja descompactado é hora de mandar os arquivos para o servidor.

Localmente: Transfira todo o conteudo da pasta do postnuke para pasta raiz do seu Servidor de Web.

Remotamente: Transfira todo o conteudo da pasta do postnuke para pasta raiz do seu Servidor de Web utilizando um client de FTP.

Em nosso caso criamos uma pasta chamada postnuke e colocamos o conteudo dentro deste diretorio.

Por motivos de segurança crie uma database nova para o Postnuke em seu banco de dados. Em nosso caso utilizamos o nome: postnuke

Utilize o phpmyadmin (www.phpwizard.net) ou acesse diratamente via console.

mysqladmin -u root -p create postnuke
password:********

3) Instalação.

A instalação do Postnuke é bem simples basta seguir os passos abaixo:

Execute via browser:
http://localhost/postnuke/install.php

Selecione o idioma e clique sem set Language.

Na proxima tela aparecera uma tela confirmando as permissoes dos arquivos, se todos os arquivos tiverem com permissao 666 a instalacao tera progresso caso contrario a instalacao nao tera continuidade.

Agora especifique todas as informações pedidas:

Database Host: (Host do Banco de Dados)
Database Username: (nome do usuario)
Database Password: (senha do usuario)
Database Name: (Nome do Banco de Dados do Postnuke) em nosso caso: postnuke
Table Prefix: nuke (Prefixo da Tabela)
Database Type: MySQL (tipo do Banco de Dados)

E clique em submit.

Agora aparecera todos os modulos instalados em sua tela clique em continue.

Nesta tela como voce pode observar abaixo é necessario completar os campos com as preferencias do do Administrador do PostNuke:

Login Admin: (Login do Administrador)
Admin Name: (Nome do Administrador)
Admin Password: (senha do Administrador)
Admin E-mail: (email do administrador)
url admin: (Url de administração).
Apos completar todos os campos clique em finish.

Agora acesse seu site:

http://localhost (url do seu servidor)

Url de Administração:

http://localhost/user.php

Ou clique em login user:

Entre com os passwords que foram setados acima.

Apos logar vc tera abaixo todas as ferramentas de configuração e customização do Postnuke. Confira na tela abaixo:

Pronto a instalação do PostNuke foi realizada com sucesso, conforme dito acima a instalação e bem simples e não exige muito conhecimento sobre programação em PHP.

4) Links

www.postnuke.com (Site Oficial)
www.postnuke.com.br (Site Brasileiro sobre PostNuke)
www.nukethemes.de (Site com Themes para PostNuke)

5) Suporte:

Alem do suporte que é oferecido no site, a equipe da PostNuke tambem oferece suporte via IRC (irc.postnuke.com)

#postnuke-support
#postnuke-chat
#postnuke


6) Conclusão:

O Postnuke é um excelente sistema de portais, bastante robusto e com muitas opções para customizações, ideal para pessoas que trabalham com portais de pequeno e medio porte, além de contar um excelente suporte o software se encontra sob licensa GPL.

7) Por: Eduardo Luis de Medeiros
edgar2000br
Função Mail()
Data: 22/12/2003



Oi PessoALL,

Hoje vou falar de um assunto bastante abordado nos fóruns e listas de discussões. Como mandar e-mail utilizando PHP?
Ao contrário de outras linguagens que exigem muita programação e experiência, em PHP a história é outra, basta conhecer o mínimo de programação para conseguir ajustar esta função.
A linguagem PHP tem uma função chamada mail(), onde voce configura apenas o destinatario, o assunto e a mensagem que vai no corpo do e-mail, mais simples que isso somente usando o seu programa de e-mail mesmo. =)

Bom vamos ao que interessa, neste script usaremos apenas uma pagina ".php" para fazer o form e o script que vai enviar o e-mail, conforme segue abaixo.

mail.php
CODE
<HTML>
<HEAD>
<TITLE>Formulário</TITLE>
</HEAD>
<body>

<?
if (! isset ($valor)){  // Verifica se o form ainda não foi preenchido
    //monta o fomulario
    echo ("<form name='email' action='mail.php' method='Post'>");
    echo ("<input type='hidden' name='valor' value='t'>"); // esta linha manda a variavel $valor oculta para a condicao acima mudar o caminho quando for clicado no botao envia-email.
    echo ("<BR>Nome: <input type='text' name='nome' size='20'>");
    echo ("<BR>E-mail: <input type='text' name='email' size='15'>");
    echo ("<BR>Sexo: <select name='sexo'><option value='Masculino'>Masculino</option>");
    echo ("<option value='Feminino'>Feminino</option></select>");
    echo ("<BR><input type='submit' value='Enviar E-mail'>");
}else{
      $recipiente = "eu@provedor.com.br"; // email de quem vai receber o form
      $assunto = "Formulario - Utilizando PHP";
      // Caso queira usar HTML para enviar o e-mail utilize o $headers
      $headers  = "MIME-Version: 1.0\r\n";
      $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
      $headers .= "From: $email";
      $mensagem = "Oi,";
      $mensagem.= "<BR><BR>Segue informações do formulário";
      $mensagem.= "<br><b>Nome:</b> $nome";
      $mensagem.= "<br><b>E-mail:</b> $email";
      $mensagem.= "<br><b>Sexo:</b> $sexo";
      $enviar=mail($recipiente,$assunto,$mensagem,$headers);
      if ($enviar=="1"){ // checa se e-mail foi enviado
          echo ("<center>E-mail enviado com sucesso!</center>");
      }else{
          echo ("<center>Erro ao enviar o e-mail, tente novamente.</center>");
      }
}
?>

</body>
</HTML>


Viram como é fácil? Caso vocês queiram mandar um e-mail automático para quem preencheu o formulário é só adicionar outra função mail() no script com o e-mail da pessoa e criar uma mensagem para o corpo do site.
Deem Críticas e/ou sugestões e opinem sobre assuntos para os próximos artigos.

Edgar Fialho Lopes
WEB Designer/Developer
Site: http://www.edgar.k6.com.br
e-mail: edgar@mybox.it
M@luco Belez@
eu tenho visto bastante gente perguntar como listar os resultados mysql em duas colunas por exemplo, e na maioria das vezes as pessoas acabam ficando sem resposta, então fiz esse pequeno script(tutorial) para fazer a listagem em colunas e linhas.

CODE

<?
require("conecta.php");
$sql = mysql_query("Select * from usuario") or die ("erro de sql:".mysql_error());
echo "<table border=0 cellpading=0 cellspacing=0 width=100%>";
for($i=0;$i<mysql_num_rows($sql);$i++) {
$id = @mysql_result($sql,$i,"id_user");
$nome = @mysql_result($sql,$i,"nome");
$idade = @mysql_result($sql,$i,"idade");
echo "<tr>";
echo "<td>$id</td>";
echo "<td>$nome</td>";
echo "<td>$idade</td>";
$i++;
$id = @mysql_result($sql,$i,"id_user");
$nome = @mysql_result($sql,$i,"nome");
$idade = @mysql_result($sql,$i,"idade");
echo "<td>$id</td>";
echo "<td>$nome</td>";
echo "<td>$idade</td>";
echo "</tr>";
}
echo "</table>";
?>


bem , o que nós fazemos é listar os resultados usando for ao invés do while, e pegar os dados com o mysql_result, ao invés do mysql_fetch_array...
é muito importante o uso do @ antes do mysql_result, pois suponhamos que tenha um núm. ímpar de resultados em um número par de colunas, uma linha não teria resultados para preencher tds as colunas, o que causaria um erro, então com o uso do @ esse erro não aparece...

qq dúvida sobre o código é só perguntar que eu tentarei ajudar.... wink.gif
Fabyo
Utilizando a função implode ()



Ae vai dois exemplos interessantes onde o primeiro trata-se da função implode() e o outro gera automaticamente uma tabela partindo de valore de um Array.
.


<?

$meu_nome[0] = "Paula";
$meu_nome[1] = "Pereira";
$meu_nome[2] = "dos Santos";

$completo = implode(" ", $meu_nome);
print("$completo");

?>

2º Exemplo

<?

$nome[0]="Cleidite";
$nome[1]="Creise Leid";
$nome[2]="Jacutinga";
$nome[3]="Pafunça";
$nome[4]="Cremilda";

print("<table border="1"><tr><th>Nomes Lindos</th></tr>");

for($index=0; $index<5; $index++)
{
print("<tr><td>$nome[$index]</td></tr>");

}


print("</table>");

?>
Heldinho
Olá gente.. Dessa vez eu vim para ensinar...biggrin.gif

Vamos começar...

1º passo: pegar uma tesoura sem ponta...rsrsrsrs

na boa.. : 1º passo: entre em algum editor de textos e digite o seguinte código no arquivo que vai ter uma variavel com o numero de visitas:(data.dat)
CODE

<?
$contador = '0'; // Atribui o valor 0 a variavel $contador (0 visitas)
?>


2º passo: Criar um arquivo para adicionar + 1 nesta variavel.:(add.php)

CODE

<?
include("data.dat");  // inclue o arquivo data.dat, que contem o numero de visitas atual(0)
$contadornovo = $contador + "1";  // Atribui o valor 1 para a variavel $contadornovo, pois $contador = 0 . 0 + 1 = 1 duh!
unlink("data.dat");  // deleta o arquivo com a visita antiga
$fs = fopen("data.dat","a");  // cria o arquivo data.dat(que foi deletado)
fwrite($fs , "<? \n
$"."contador = '$contadornovo' \n
?>"); // Escreve isto: "$contador = $contadornovo(aki é o valor do contador novo)" em data.dat.Depois eu explico porque que eu coloquei $"."contador = '$contadornovo'.
fclose($fs);  // fecha o arquivo data.dat
echo"Você é o visitante nº $contadornovo";  // Escreve na tela: "Você é o visitante nº [aki vem o valor da variavel $contadornovo]"
?>

Bom, onde está escrito $"."contador = '$contadornovo', eu nao poderia ter colocado $contador = '$contadornovo', pois ao inves de escrever $contador, ele escreveria o valor da variavel $contador. Deu para entender? e usando ., eu juntei $ , com contador, escrevendo $contador, e nao o valor de $contador.. << ficou complicado neh?


3º passo é o mais simples... o código para acionar o add.php. OBS: Escreva-o onde quer que o contador apareça.:

CODE

<?
include("add.php");
?>


Bom.. agora espero que comentem o código... flw!!
Heldinho
Olha eu aki... biggrin.gif

Bom, dessa vez estou aqui para ensinar a criar um banner rotativo com link, e explicar um pouco sobre a função rand() em uma array().

Digamos que existam 3 banners no meu site.. e eu estou querendo desocupar um espaço na pagina, pois nao tem onde escrever mais nada... A solução está em um banner rotativo..
Vamos deixar de papo e mãos a obra..
Observem o seguinte código:
CODE
<?
$matriz = array("oi.jpg","valor01.jpg","v93.jpg");
$matriz2 = array("oi.htm","valor01.htm","sitedov93.htm");
$valor_sorteado = rand(0,2);
echo"<a href='$matriz2[$valor_sorteado]'><img src='$matriz[$valor_sorteado]'></a>" // escreve o valor sorteado das arrays

?>

a variavel $matriz, é um array, ou seja, uma variavel com varios valores. o 1º valor dela, é o oi.jpg, mas nao é bem assim... É muito importante saber que os valores de um array começam a serem contados do 0.

Estamos fugindo do código acima, onde eu usei a função rand para "sortear" um valor das duas arrays (imagem e link), que comecem de 0 até 2.
Agora veremos como mostrar esse valor, de tal array:

$valor_sorteado = rand(0,2) // a função rand, esta na variavel $valor_sorteado
$matriz = array("oi.jpg","valor01.jpg","v93.jpg"); // monta a array das imagens
$matriz2 = array("oi.htm","valor01.htm","sitedov93.htm"); // monta as arrays dos links
echo $matriz[2] // escreve o valor nº 2 da $matriz
echo $matriz[$valor_sorteado] // escreve um valor qualquer de $matriz
echo $matriz2[$valor_sorteado] // escreve este mesmo valor qualquer, pois a função rand, é transformada em um numero de 0 a 2.

acho que com isso dá para entender... o código correto é o que está no início. Quem não tiver conseguido entender, envie uma mensagem... Espero realmente que tenham entendido..
azizvc
Autenticação com imagem

Link: http://portal.zgames.com.br/Downloads/imgauth.zip
Exemplo: http://portal.zgames.com.br/ImgAuth

esse script trabalha com Session

no index.php ele gera um numero aleatório ente 1000 e 9999 e guarda no session

quando o index.php e exibido o navegador tenta abrir a imagem que se refere ao arquivo imgauth.php

o igmauth.php pega o numero gerado no session e cria a imagem

ao clicar em ok o auth.php confere se o numero que foi digitado está igual ao numero gravado no session


Aziz vicentini
azizvc@yahoo.com.br
Cliford
Este script com ele vc n precisara utilizar frame, seu site contera apenas uma pagina. Os comentarios te ajudara melhor:

So lembrando q os comentarios começam com se n souberem //

QUOTE
<HTML>
<HEAD>
</HEAD>
LAYOUT CIMA DE SEU SITE. VEM ANTES O CONTEÚDO DE SEU SITE.

<?

####################################
#                                                                            #
# Paginação                                                            #
#                                                                            #
####################################


########################
#    Modo de usar    #
########################
// Basta você modificar as linhas abaixo.
// Salve uma página *.php e depois digite:
// http://www.seusite.com.br/?pag=NOME_DA_PAGINA

// Nome da pasta onde ficarão as páginas .php (sem barra no final)
$paginas="paginas";
// Arquivo da página inicial
$inicio="home.php";
// Arquivo de erro
$erro="erro.php";

########################
#  Não Edite Abaixo  #
########################

if(file_exists("$paginas/$pag.php")){
include("$paginas/$pag.php");
}

else if($pag == index  || $pag == home || $pag == ''){
include("$paginas/$inicio");
}

else{
include("$paginas/$erro");
}
########################
#  Não Edite Acima    #
########################
?>

LAYOUT BAIXO DE SEU SITE. VEM APÓS O CONTEÚDO DE SEU SITE.
</HTML>
bolomaster
Precedência De Operadores

Para Evitar Erros De Lógica Em Seus Programas É Fundamental Que Você Conheça A Ordem Utilizada Pelo Php Para Tratar Os Operadores
A Tabela A Seguir Mostra A Ordem Decrescente De Precedência Que O Php Segue Ao Encontrar Diversos Operadores No Programa:

Operadores Descrição
(- ! ~ ++ --) -> Negativo, Não-Logico, Inversão De Bits, Incremento E Decremento
(* / %) - > Multiplicação. Divisão E Resta Da Divisão
(+ - .) - > Adição, Subtração E Concatenação
(<< >>) -> Deslocamentos Binários
(> < >= <=) -> Maior, Menor, Maior Igual, Menor Igual
(&) -> And Binário
(^) -> Xor Binário
(|) -> Or Binário
(== != <>) -> Igual E Diferente
(&&) -> And Lógico
(||) -> Or Lógico
( ?: ) -> Operador Ternário*
(= += -= *= /= %=
&= ~= <<= >>= ^=) -> Operadores De Atribuição
(And) -> And Lógico (Menor Prioridade)
(Xor) -> Xor Lógico (Menor Prioridade)
(Or) -> Or Lógico (Menor Prioridade)

É Importante Lembrar Que Primeiro O Php, Executará Todas As Operações Que Estiverem Entre Parênteses. Se Dentro Dos Parênteses Houver Diversas Operações, A Precedência De Operadores Será Usada Para Definir A Ordem. Depois Resolver Todas As Operações Que Aparecem Entre Parênteses, O Php Resolverá O Resta Da Expressão Baseando-Se Na Tabela Anterior Para Determinar A Ordem De Avaliação Dos Operadores.
Quando Houver Operadores De Mesma Prioridade Em Uma Mesma Expressão, E Não Existirem Parênteses, O Php Resolverá A Expressão Da Esquerda Para A Direita.


* -> Operador Ternário É Uma Forma Abreviada De Usar O Comando Condicional If. Uma Condição É Avaliada, E. Se Ela For Verdadeira, Atribui-Se Uma Valor À Variável E Se A Condição For Falsa Atribui-Se Um Outro Valor.

Confira A Sintaxe: Cond? Expressao1 : Expressao2

Exemplo:

$Peso = ($Gramas >= 0.75) ? ($Peso+2) : ($Peso-2);

Artigo Escrito Por: Rafael Marciano(Bolomaster)

Espero que tenham gostado, abraços

Fui
ursolouco
Brothers!!

Não sei ao certo, pois ainda sou pré-aprendiz de PHP, mas achei algo sobre diferenças entre datas em PHP, achei muito interessante e resolvi deixar em aberto para comunidade.

Calculating date differences !!!

Todos os créditos, códigos e direitos de mensagens são de seu devido autor, não tendo como responsabilidade alguma !

Abraços!!!
[urso]
Gulliva
Descubrindo O Tamanho Das Imagens...

Para fazer esse tutorial vou lembrar que a
largura da imagem é representada por X
E a altura é representada por Y.

Então vamos lá:


CODE

$img = 'minha_imagem.jpg'; //Seta a imagem a ser verificada

$y = imagesy($img); //pega o valor da altura
$x = imagesx($img); //pega o valor da largura
echo"A imagem tem $x pixels de largura e $y de altura.";


Só isso...É bem simples...
Obs: necessário biblioteca GD 2 ou superior

Achei um fórum melhor!
Gulliva
Busca no Mysql.

Nesse método de busca um pouo mais preciso que outros,
pois ele pode procurar em textos por uma palavra.

Para fazer a busca usamos a função strstr().
Essa função faz uma busca na variavel1 pela variavel2,

exemplo:

CODE

$ve_se_tem = strstr($texto, "PHP");


Esse código irá procurar no Texto($texto) pela string "PHP"
Com base nisso vamos fazer o Script inteiro:

CODE

$procura_por = $_GET['busca_por'];

$registros = mysql_query("SELECT * FROM noticias");

while($regs = mysql_fetch_array($registros)){

$results = array();

$titulo = $regs['titulo'];
$noticia = $regs['noticias'];

      if(strstr($titulo,$procura_por) || strstr($noticia,$procura_por)){
       echo('$titulo<br>$noticia <br><br><br><br>');
       $conta = array_push($results, "ok");
      }

}

if(count($results) == 0){
       echo('Nenhum registro encontrado!');
}


Uma dica é aprender mais sobre expressões regulares para poder "modelar" mais a busca...

E é isso pessoal, bom proveito!

OBS: O uso dos arrays é para ver se foi achado ou não um resultado.
Gulliva
Sortear Um Registro Do Banco...

Olá pessoal... Bom , nada de papo... Vamos trabalhar.
Nesse tuto vamos fazer um sorteio no nosso banco de dados....

Para fazer essa rotina usaremos arrays:
array(); , array_push() e array_rand().

Como de costume usarei um exemplo com notícias...

CODE

$registros = mysql_query("SELECT * FROM noticias");
$ids = array();

while($regs = mysql_fetch_array($registros)){

  $numero = $regs['id'];    
   array_push($ids, $numero);

} // Esse while adiciona id por id num array.


$id = array_rand($ids, 1); // Sorteia 1 id


Bom esse código irá retornar um id sorteado...
E então fazemos com esse id uma busca:

CODE

$busca = mysql_query("SELECT * FROM noticias WHERE id='".$id[0]."'");


FLW!
Atentado
Ae vai um link massa sobre sessions:


http://www.linhadecodigo.com.br/artigos.asp?id_ac=258&pag=1

facilzinho de entende
ffiction
Script para mostrar resultados em linhas da tabela
QUOTE

<?

require_once ("cnx.php"); // conecão com o banco
$s = mysql_query("SELECT * FROM tabela") or die(mysql_error()); // query de seleção
$x = mysql_fetch_array($s);

print "<table>";
print "<tr>";

$coluna = 0;

while($x != false){
$count +1;

        $var = $x['var'];

print "<td id=".$coluna++.">";

print "teste com $var";

print "</td>";

if ($coluna == 3) // mude aki o valor das colunas...

{

print "</tr><tr>";
$coluna = 0;

}

$x = mysql_fetch_array($s);

};
print "</tr></table>";

?>


malz ai error.. gladisson muda o post faz favor!!!!!! naum vi na hora de posta!!!! malz msm!!! rolleyes.gif
taudujas
Trabalhando com Access no PHP.

O tutorial se encontra nestes links:

PHP c/ Access

PHP Access

Falow.
taudujas
Modelando dados

Muito bom.
amos
Tenho visto muita gente no fórum com dúvidas em como fazer consultas no mysql...
E resolvi escrever um tutorial pra isso... Afinal eu nunca tinha feito um tutorial antes... e agora... já posso dizer que tenho...
Aí vai!!!
Tutorial de Consultas no Mysql - Arthur Morales Sampaio
É meio ridículo, mas pows espero ter ajudado alguém!!! hehehe
Gulliva
Como Por Seu Logotipo Em Uma Imagem

Nesse tuto irei anexar essa imagem
Meu Logo
No canto inferior direito desta: Wallpaper.

Aki vai o código com os coments.
CODE

<?
$logo = "meu_logo.jpg";//endereço da sua logomarca
$imagem = "pai_e_filho.jpg";//endereço da imagem

@header("Content-type: image/jpeg");
#define o tipo de material utilizado daqui para frente... nesse caso eh jpg...

$original = imagecreatefromjpeg($imagem);// copia a imagem
$meu_logo = imagecreatefromjpeg($logo);// copia o logo

$imagem_x = imagesx($original);// pega o valor da largura da imagem
$imagem_y = imagesy($original);// pega o valor da altura da imagem

$logo_x = imagesx($meu_logo);// pega o valor da altura do logo
$logo_y = imagesy($meu_logo);// pega o valor da altura dologo


imagecopymerge($original , $meu_logo , $imagem_x - ($logo_x + 10) , $imagem_y - ( $logo_y + 10 ) , 0 , 0 , $logo_x , $logo_y , 100);
//Essa função poem no canto inferior direito o logo
//para explicar , tipo , cada etapa eh uma vírgula...
//1° imagem onde outra imagem será anexada...
//2° imagem a ser anexada...
//3° isso diz aonde irá posicionar o logo em relação a largura. Suponha que a imagem tem 800px de largura
//e o logo tem 100px. O php vai calcular 800 - 110, pq 110? pq eu coloquei o 10 para
//dar um pequene espaço antes da borda, balaca mesmo...
//4° a mesma coisa só que para a altura.
//5° Define apartir de que pixel do logo a marca deve ser adicionada.(largura)
//6° Mesma coira que o 5° , mas para altura...
//7° diz por quantos pixels o logo deve ser mostrado , para por todo o logo ponha a largura total do logo.
//8° mesma coisa q o 7° mas para a altura...
//9° e último. Esse é o mais interessante, Ele diz a transparência em que a imagem deve aparecer.
//Se vc por 0 o logo simplismente não aparece, mas se vc por 100 a imagem vai aparecer com 100% da sua coloração.
//Isso eh bom para tipo, se vc que por uma marca no seu site e naum quer que outras pessoas copiem sua imagem ou apenas
//apaguem seu logo... assim se ele apagar o logo ele acaba estragando a imagem;P

################### Dica: ###############################
//Para por o logo no canto Superior esquerdo substitua o 3° e 4° passo pelo valor zero.
//Ficando assim: imagecopymerge($original , $meu_logo , 0 , 0 , 0 , 0 , $logo_x , $logo_y , 100);
//Para ficar no campo inferior direito deixe assim:
// imagecopymerge($original , $meu_logo , 0 , $imagem_y - ( $logo_y + 10 ) , 0 , 0 , $logo_x , $logo_y , 100);
//Para ficar no canto superior direito use:
// imagecopymerge($original , $meu_logo , $imagem_x - ($logo_x + 10) , 0 , 0 , 0 , $logo_x , $logo_y , 100);

imagejpeg($original);

@imagedestroy($original); //Libera memória que estava sendo usada pela cópia da imagem
@imagedestroy($meu_logo); //Libera memória que estava sendo usada pelo logo    
?>



Eh isso pessoal, espero ter ajudado.
Error404
Instalando o Apache2 e o MySQL como Serviços [Win2k/XP]

Pra instalar o Apache como serviço, abra o prompt, vá até a pasta dir._raiz_do_apache\bin\
QUOTE
apache -k install -n "NomeDoServiço" //Dúvidas com o Apache


Pra instalar o MySQL, mesma coisa, abra o prompt, vá até a pasta dir._raiz_do_mysql\bin\
QUOTE
mysqld --install //Dúvidas com o MySQL


Pra configurar os serviços, já em Painel de Controle, então abra Ferramentas Administrativas e então, Serviços...

Ali dentro você vai poder ver que existem vários serviços, alguns estão automáticos, outros manuais, outros desabilitados...

Então você clica com o botão direito sobre o serviço que quiser, abre as propriedades, então edita o tipo de incialização. O ideal para o apache e para o mysql é o manual, que vai permitir que você rode o serviço, mas não vai iniciar automaticamente com o windows...

Depois, no prompt, em qualquer pasta:
QUOTE
NET START NomeDoServiço //inicia o serviço
NET STOP NomeDoServiço //encerra o serviço


Dá pra criar atalhos também, é só escrever a mesma coisa que eu disse acima ao invés do caminho do arquivo... cool.gif

Está pronta a configuração.

Lembrando que isso só vale pro Windows 2000/Xp. cool.gif
Fabyo
Tutorial basico e simples dos comandos sql

QUOTE
* SELECT - Seleciona dados da tabela

SELECT [nome do campo | *] FROM [tabela] WHERE [campo] = [valor] ORDER BY [campo] [ASC | DESC]

- SELECT  = seleciona
- FROM    = da/de/do
- WHERE    = aonde
- ORDER BY = organizar por
- |        = ou
- ASC      = Ascendente
- DESC    = Descendente


WHERE condicao for verdadeira

codicoes
- campo = valor
- campo > valor
- campo < valor
- campo >= valor
- campo <= valor
- campo like "%texto%" // % = qualquer caracter, _ = um unico caracter
- campo BETWEEN valor_minimo AND valor_maximo  // BETWEEN = ENTRE UM E OUTRO


select * from usuarios where nome like "a%" and idade > 15;
+----+-------+-------+------+---------------------+
| id | nome  | idade | sexo | data_cadastro      |
+----+-------+-------+------+---------------------+
|  9 | andre |    14 | M    | 2004-02-25 19:04:56 |
+----+-------+-------+------+---------------------+


mysql> select * from usuarios where idade < 30 order by nome desc;
+----+--------+-------+------+---------------------+
| id | nome  | idade | sexo | data_cadastro      |
+----+--------+-------+------+---------------------+
| 10 | paulo  |    19 | F    | 2004-02-25 19:10:35 |
|  1 | natan  |    20 | M    | 2004-02-25 18:07:25 |
|  8 | fabyo  |    20 | M    | 2004-02-25 18:12:01 |
|  4 | carla  |    20 | F    | 2004-02-25 18:19:23 |
|  9 | andre  |    14 | M    | 2004-02-25 19:04:56 |
+----+--------+-------+------+---------------------+

mysql> select nome, idade, sexo from usuarios where idade between 20 and 30;
+--------+-------+------+
| nome  | idade | sexo |
+--------+-------+------+
| natan  |    20 | M    |
| fabyo  |    20 | M    |
| carla  |    20 | F    |
| raul  |    30 | M    |
| andre  |    20 | M    |
+--------+-------+------+


================================================================

* INSERT - Insere dados na tabela

INSERT INTO tabela (campo1, campo2, campo3, ...) VALUES (valor1, valor2, valor3, ...)
INSERT INTO tabela VALUES (valor1, valor2, valor3, valor4, ...)

Quando não for passado o nome dos campos entre parenteses após a tabela, o servidor entenderá que você
quer inserir todos os campos na ordem que estão da tabela.

- INSERT  = inserir
- INTO    = dentro de
- VALUES  = valores


insert into usuarios (nome, idade, sexo, data_cadastro)
              values ("Paulo", 27, "M", "1999-12-31 12:00:00");

insert into usuarios values ("", "Sandro", 29, "M", NOW());
================================================================

* UPDATE - Atualiza valores na tabela

UPDATE tabela SET campo1 = valor1, campo2 = valor2, campo3 = valor3 WHERE campo = valor

- UPDATE = Atualiza
- SET    = Defina
- WHERE  = Aonde

update usuarios, set nome = "Carlos", idade = 18 where id = 7;
================================================================

* DELETE - Apaga registro da tabela

DELETE FROM tabela WHERE campo = valor

- DELETE - Apaga
- FROM  - de/do/da
- WHERE  - Aonde

delete from usuarios where id = 7;
rptl
Tutorial sobre CHMOD

Não tem haver somente com PHP ou hospedagem de páginas via FTP. Quem usa sistemas operacionais Unix Like (linux, *bsd, solaris, aix, hp-ux, etc) também usa MUITO o chmod.
Muitas vezes a pessoa não sabe nem o que esta fazendo, quando da uma permissão 777 ou 455 pra um arquivo. Vamos explicar mais a fundo o funcionamento do CHMOD.

Um 'ls -la' no Linux tem o seguinte output:
CODE
drwxr-xr-x    2 root     root         4096 Set 22 10:08 temp
-rwxrwxr-x    1 garcia   garcia       1088 Jul  5 16:17 torpedo
-rw-rw-r--    1 garcia   garcia      18283 Ago  3 13:10 videoteca.tar.gz
-rw-------    1 garcia   garcia       4857 Ago 11 11:46 .viminfo
drwxr-xr-x    2 garcia   garcia       4096 Jul 15 11:34 vlc
-rw-rw-r--    1 garcia   garcia   14872515 Jul 15 11:30 vlc-binary.tar.gz
drwxr-xr-x    2 garcia   garcia       4096 Mar  4  2004 webalizer-2.01-10-linuxelf-x86
-rw-rw-r--    1 garcia   garcia     557825 Abr 17  2002 webalizer-2.01-10-linuxelf-x86-bin.tgz


onde constam varios atributos como nome, data, usuario proprietario e as PERMISSÕES do arquivo. As permissões estão na primeira coluna, são aquelas letras "drwx".

Funciona da seguinte forma: o primeiro caratectere dos atributos diz se o arquivo é um diretório ou um arquivo. Se tiver o "d" indica que é diretório.

Os próximos caracteres se dividem em 3 Grupos de 3 Caracteres.

Então, fica subdividido dessa forma:
d rwx rwx rwx

1o. Caracter: tipo de arquivo (diretório)
1o. Grupo: permissões do proprietário e/ou usuário
2o. Grupo: permissões para usuários do mesmo grupo
3o. Grupo: permissões para todos usuários

Mas o que significa rwx?
r - read (permissão de leitura)
w - write (permissão de escrita)
x - execute (permissão de execução. No DOS ou Windows, quando queremos executar um arquivo temos que usar extensão .exe, .com, .bat, etc. Em unix vc seta como permissão).

Ahh ta entendi o que significa das letras, mas... o que significa CHMOD 455??? De onde vem esses números??
O chmod tem a flexibilidade de trabalhar com valores decimais de 0 a 7. Cada valor tem uma combinação de permissões pelos 3 grupos de caracteres que expliquei acima. Vamos a elas.

0 : --- (nenhuma permissão)
1 : --x (somente execução)
2 : -w- (somente escrita)
3 : -wx (escrita e execução)
4 : r-- (somente leitura)
5 : r-x (leitura e execução)
6 : rw- (leitura e escrita)
7 : rwx (leitura, escrita e execução)

Vamos a exemplos práticos para que vocês entedam como funcionam isso na prática.

chmod 755 arquivo.ext
atribui permissão de leitura, escrita e execução para o dono do arquivo (7), leitura e execução para usuarios do mesmo grupo(5) e tb para outros usuários(5).

chmod 640 arquivo.ext
atribui permissão de leitura e escrita (6) para o dono do arquivo, somente leitura para usuários do mesmo grupo (4) e nenhuma permissão para outros usuarios (0).

chmod 777 arquivo.ext
permissão total de leitura, escrita e execução para TODOS!. Se o servidor que vc hospeda seus sites deixar brexa para acessarem ou simplesmente listarem seu diretorio ou pasta, outros usuários poderão modificar seus arquivos. por isso é convieniente usar com cuidado.

Acho que consegui esclarecer um pouco sobre permissões de arquivos. Espero que isso ajude quem ainda tinha dúvidas sobre o assunto.
kafunga
ai galera umas coisas boa de classe, espero que ajude quem precisa saber sobre orientação objeto!

Classes
*Uma classe é o projeto/planta de um objeto.
*Não é um objeto em si, e sim a especificação para a criação de um objeto.
*Toda instância de uma classe é um objeto.
*Vários objetos podem ser criados a partir da mesma classe – mas serão objetos diferentes um do outro, com as mesmas propriedades


O que é uma classe?
*Uma classe é uma coleção de variáveis e funções que manipulam estas variáveis
*Variável --> propriedade
*Função --> método


Exemplo de classe
class Cesta
{
var $itens; // Itens da nossa cesta de compras

function adiciona_item ($artnr, $num) {
$this->itens[$artnr] += $num;
}

function remove_item ($artnr, $num) {
if ($this->items[$artnr] > $num) {
$this->items[$artnr] -= $num;
return true;
} else {
return false;
}
}
}


Restrições:
No PHP, somente inicializações tipo constante podem ser feitas em variáveis tipo var.
Se vc quer inicializar uma variável tipo var utilizando funções, vc deve criar uma função dentro da classe para inicializar este objeto. Esta função é automaticamente chamada quanto o objeto é criado, e se chama função tipo CONSTRUCTOR e tem o memo nome que o nome da classe que a define.


Instanciando um objeto
Uma classe é na verdade um tipo que vc cria.
Para criar um objeto (instância de uma classe), vc precisa usar o operador new

$cesta = new Cesta;
$cesta->adiciona_item("10", 1);

$outra_cesta = new Cesta;
$outra_cesta->adiciona_item("0815", 3);


Explicação do Exemplo
Neste exemplo definimos a classe Auto_Cesta, que é uma Cesta + um construtor que inicializa a Cesta com um item do tipo numero “10” toda vez que uma nova Auto_Cesta for criada com o operador new.
Construtores podem levar argumentos, que podem ser opcionais – tornando eles assim muito mais úteis. Para poder continuar usando a classe sem parâmetros, todos os construtores devem ser opcionais. Isto é alcançado através de valores default nos parâmetros.

kafunga
Aqui vai umas dicas do mysql:

MySQL - Características
Manipula um número ilimitado de usuários simultâneos
Alta velocidade de execução
Possui APIs C, C++, Eiffel, Java, Perl, PHP, Python e TCL
Trabalha com diferentes plataformas: Unix, Windows etc.
Disponibiliza diversos tipos de dados: INT (inteiros sinalizados e não-sinalizados de 1, 2,
3, 4 e 8 bytes), FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET e ENUM
Alta velocidade na execução de joins usando multi-join otimizado
Suporte completo a operadores e funções nas cláusulas SELECT e WHERE;
Suporte às cláusulas GROUP BY e ORDER BY e a funções de grupo (COUNT(), AVG(), STD(), SUM(), MAX() e MIN());
Possibilidade de misturar tabelas de diferentes bancos de dados na mesma query;


MySQL - Vantagens
Fácil de instalar
Fácil de usar
Robusto
Extremamente rápido para SELECT's
Gratuito (a não ser que você modifique o código e venda o produto)


MySQL - Desvantagens
Transações
Sub-selects
Locking a nível de tabela
Elimina controle de relacionamento entre as tabelas – quem lida com isso é a sua aplicação


MySQL - Produto
Sistema cliente/servidor.
Mysqld / mysqld-ntexecutável do servidor (/bin)
Mysql executável do cliente (/bin)
Mysqladmin / winmysqladminexecutável administrador do banco (/bin)
Mysqldump (/bin) – para exportar banco


MySQL - Cliente
Podemos verificar depois da instalação, que o mysql cria dois bancos de dados default.
Mysql e test
Mysql e o banco que guarda todas as informações administrativas do banco – NÃO PODE SER EXCLUIDO!
Test pode ser exlcuido, pois serve só para testes.


Conectando ao MySQL(MS-DOS)
Carregar o servidor (só uma vez)
C:\mysql\bin> mysqld-max-nt
Executar o cliente
C\mysql\bin\mysql
Verificar os bancos de dados no mysql
mysql> show databases;
Selecionar um banco para uso/manipulação
mysql> use (nome_do_banco);


MySQL - Tabelas
Ver lista de tabelas de um banco
mysql> show tables;
Ver esquema de uma tabela
mysql> describe (tabela);
Criar um banco de dados
mysql> create database acesso;
Excluir um banco de dados
mysql> drop database acesso;


MySQL – Criar Tabelas
Create table acesso (
email varchar(50) NOT NULL,
nome varchar(20) NOT NULL DEFAULT ””,
sobrenome varchar(20) NOT NULL DEFAULT ””,
ultimo_acesso DATETIME NOT NULL,
senha char(8) NOT NULL,
PRIMARY KEY(email)) TYPE=MyIsam;


MySQL – Tipos de colunas
CHAR(M): strings de tamanho fixo entre 1 e 255 caracteres;
VARCHAR(M): strings de tamanho flexível entre 1 e 255 caracteres. VARCHAR ocupa sempre o menor espaço possível, no entanto é 50% mais lento que o tipo CHAR;
FLOAT [(M,D)]: números decimais com D casas decimais;
INT(M) [Unsigned]: números inteiros entre -2147483648 e 2147483647. A opção "unsigned" pode ser usada na declaração mudando o intervalo para 0 e 4294967295 para inteiros não-sinalizados;
DATE: armazena informação relativa a datas. O formato default é 'YYYY-MM-DD' e as datas variam entre '0000-00-00' e '9999-12-31'. O MySQL provê um poderoso conjunto de comandos para formatação e manipulação de datas;


MySQL – Opções de colunas
TEXT/BLOB: strings entre 255 e 65535 caracteres. A diferença entre TEXT e BLOB é que no primeiro o texto não é sensível ao caso e no segundo sim;
SET: conjunto de valores strings;
ENUM: conjunto de valores strings, difere do SET pois só são armazenados valores previamente especificados.


MySQL – INSERT
Inserir um record
INSERT INTO (tabela) (lista de campos)VALUES (lista de valores)
exemplo:
INSERT INTO acesso (email,nome,sobrenome,ultimo_acesso,senha) VALUES
(‘kafunga@hotmail.com',‘kafunga', 'net','2002-06-12 08:11:34’,’1234’);


MySQL – UPDATE
Modificar um record
UPDATE (tabela) SET (coluna)=(valor), ...WHERE
Exemplo:
UPDATE acesso SET ultimo_acesso = now();
UPDATE acesso SET nome = 'kafunga';


MySQL – DELETE
EXCLUI um record
DELETE FROM (tabela) WHERE (condição)
Exemplo:
DELETE FROM acesso WHERE email = ‘kafunga@hotmail.com‘;
DELETE FROM acesso WHERE date <= now() AND email LIKE '%hotmail.com';


MySQL – SELECT
Para obter dados
SELECT (coluna,coluna,...)
FROM (tabela,tabela,...)
[WHERE (condição)]
[ORDER BY (coluna,coluna,...)]
[GROUP BY (coluna,coluna,...)]
[ LIMIT (offset,numero_records)]
Exemplo:
Select email,login,senha FROM acesso;
SELECT * FROM acesso WHERE login = 'chaves' AND senha = 'abc123';
SELECT nome,sobrenome FROM acesso WHERE ultimo_acesso < DATE_SUB( now(), INTERVAL – 7 DAY)


MySQL – MySQL DUMP
Para salvar o banco
Mysqldump
-a (incluir todos os comandos de CREATE)
-c (comando insert completo)
--add-drop-table
-u(usuário)
-p(senha)
BANCO > arquivo.sql


PHPMyAdmin
http://www.phpmyadmin.net
Ferramenta gratuita para a administração de bancos de dados que utilizam o MySQL
Fácil de usar
Administração do banco via browser
Agilidade para criar bancos e tabelas
Verificação do status do MySQL


mysql_connect e mysql_close
mysql_connect(<host>,<user>,<passwd>);
mysql_close(<conexão);
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
or die("Could not connect");
print ("Connected successfully");
mysql_close($link);
?>


mysql_pconnect e mysql_pclose
Primeiro tenta achar um link com o mesmo host,username,password. Se existir aberto, retorna o link_identificador da conexão existente em vez de abrir outra conexão Persistente – o link não é cortado no término da execução do script.
mysql_close não fecha um link mysql_pconnect, tem que usar mysql_pclose
As 4 funções com os mesmo parâmetros mysql_select_db
Exemplo:
$ok = mysql_select_db('acesso',$conection);
bool mysql_select_db (string banco, [recurso link])
/* se o link não for especificado, o último link aberto será usado */


mysql_query
É a função utilizada para executar o SQL.
Recurso mysql_query (string query [, recurso link_identificador])
Se recurso não for especificado, ele utiliza o último link aberto. Se não houver link, executa mysql_connect sem argumentos.

Exemplo:
$sql = 'SELECT * from acesso LIMIT 5';
$resultado = mysql_query($sql);
$nu_resultados = mysql_num_rows($resultado);
if ($nu_resultados > 0) {
while ($row = mysql_fetch_array($resultado)) {
echo $row['nome'].'<br>';
echo $row['sobrenome'].'<br>';
echo $row['email'];}
}
mysql_close();

kafunga
algumas coisa de funções e estruturas de controle!

Estruturas de controle - if
if (<condição>) {
<comandos>
}
if (<condição>) {
<comandos>
} else {
<comandos>
}


Estruturas de controle - while
while (<condição) {
<comandos>
}
---------------------------------------------------------------------
do {
<comandos>
}

while (<condição>);


Estruturas de controle - for
for (<valor inicial>; <condição>; <incremento>) {
<comandos>
}
Exemplo:
$fatorial5 = 1;
for ($i=1;$i<=5;$i++) {
$fatorial5 *= $i;
}


Estruturas de controle - foreach
foreach (array as variable)
{
<comandos>
}

$a = array (1, 2, 3, 17);
foreach ($a as $v)
{
print "Valor atual de \$a: $v.\n";
}


Estruturas de controle - switch
switch (variable)
{
case valor1:
comandos1
...
case valorN:
comandosN
default:
comandosDefault
}

Exmplo:
<?php
$sexo = “M”;
switch ($sexo) {
case “M”:
echo “Sexo masculino”;
break;
case “F”:
echo “Sexo feminino”;
break;
default:
echo “Sexo indefinido”;
?>


Funções
<?php
function nome ($arg1,$arg2,...,$argn) {
echo “Exemplo de função”;
$a = 10;
$taxa = 10;
$valor = $a * 1+$taxa/100;
return $valor;
}
?>

-Precisam ser declaradas
-Parâmetros por valor ou referência
-Quantidade variável de parâmetros
-Os parâmetros podem ser definidos com um valor default para parâmetros
-Não pode ser redefinida
-Retorna apenas um valor


Funções-Argumentos
Por padrão, argumentos de função são passados por valor, ou seja, se forem modificados dentro da função, não serão alterados fora da função.
Se você quiser que uma função modifique os seus argumentos, deverá passá-los por referência.
<?php
function muda_string(&$string){
$string .=" e alguma coisa.";
}
$str = "Isto e uma string, ";
muda_string($str);
echo($str);
//Imprime na tela Isto e uma string, e alguma coisa
?>

Valores padrões para argumentos devem ser sempre uma constante
function compras ($frutas = “bananas”) {
$duzia = “Duas dúzias de $frutas”;
return $duzia;
}
echo compras();
echo compras(“laranja”);

function compras ($frutas = "bananas", $verduras)
{
$duzias = "Duas dúzias de $frutas e um pé de $verduras<br>";
return $duzias;
}
echo compras("alface");
Irá dá um erro.
Warning: Missing argument 2 for compras() in test.php on line 2

function compras ($verduras, $frutas = "bananas")
{
$duzias = "Duas dúzias de $frutas e um pé de $verdura<br>";
return $duzias;
}
echo compras("alface");

Se atribuir uma chamada a uma função a uma variavel e depois chamar está variavel usando ( ) no final, o php irá procurar por uma função com este nome.
<?php
function ficaVermelho($string){
$str="<font color=\"red\">".$string."</font>";
return $str;
}
$vf = "ficaVermelho";
echo($vf("Testando!!!!!"));
?>


ps: outras coisas aqui: http://br.php.net/manual/pt_BR/language.operators.php[/B]
Fabyo
varios tutorias sobre Expressoes Regulares

http://aurelio.net/er/
fsphp
INSTALAR A BIBLIOTECA GD NO EASYPHP 1.7

Para resumir eu fiz o seguinte:

1- Acessei o site www.boutell.com/gd/

2- Lá em baixo de tudo eu cliquei no arquivo Download.zip

QUOTE
Version 2.0.33 (Stable)
Documentation
Supported out of the box in PHP 4.3.x and 5.x
Windows DLL .zip (NOT CURRENTLY FOR PHP)
Download .tar.gz
Download .zip


3- Descompactei o mesmo dentro do diretório php. Quando descompactado ele aparece como gd-2.0.33, aí eu renomeei para gd2

4- Acessei o php.ini (está na pasta Apache, dentro do EasyPHP1-7) procurei a linha (mais ou menos a 550 ou 1081, depende, tem que procurar), que tem ";extension=php_gd.dll" e retirei o ; (ponto e virgula) que estava na frente.

5- Reiniciei o windows, acessei o php_info e a GD apareceu lá .

Mais uma vez obrigado a todos. smile.gif
setokaiba
Ai galera to postando um exemplo pratico de como fazer um portal de noticia

vou dividir em varias partes é basico mais porem muito versatil pode ser de grande ajuda pra quem ta começando a trabalhar co mysql
Essa e do banco de dados mysql
SQL
CREATE TABLE noticias (
id int(5) NOT NULL auto_increment,
nome char(30) NOT NULL ,
sobrenome char(30) NOT NULL ,
cidade char(50) NOT NULL ,
estado char(2) NOT NULL ,
email char(80) ,
data date NOT NULL,
hora time NOT NULL ,
titulo char(100) NOT NULL ,
subtitulo char(200) ,
texto text NOT NULL ,
ver char(3) DEFAULT 'off' ,
PRIMARY KEY (id),
UNIQUE id (id)
);


Se você já tiver uma base de conhecimento em SQL, poderá saber o que cada linha acima realizará. Irei especificar o que você irá cadastrar em cada campo:
id = Campo de identificação da notícia (não é necessário cadastrar nenhum dado, pois ele já está habilitado com a função auto_increment que, automaticamente, irá inserindo novos valores)
nome = Primeiro nome do autor da notícia
sobrenome = Sobrenome do autor da notícia
cidade = Cidade do autor
estado = Estado da cidade (especificada com apenas 2 caracteres)
email = Email do autor, para contatos
data = Data utilizada, para saber quando foi realizado o cadastro (não será necessário nenhum cadastro, pois faremos isso no php automaticamente, inserindo a data atual)
hora = Hora utilizada no cadastro da notícias (também não é necessário o cadastro, pois será feito automaticamente com o PHP)
título = Título da notícia (máximo de 100 caracteres)
subtítulo = Pequeno resumo da sua notícia (máximo de 200 caracteres)
texto = Agora sim, o texto da sua notícia, sem limite de caracteres
ver = Este campo é curioso. Ele será utilizado para o webmaster poder autorizar cada notícia, pois caso não tivesse um campo parecido, toda notícia cadastrada iria para o site. É como um controle de notícias. O padrão aqui, é off, assim toda notícia primeiro será passada para o webmaster, para depois ser validada. * são campos obrigatórios no cadastro Agora com o banco de dados preparado, é hora de criarmos o sistema de cadastro de notícias do seu site. Este será o 2.º passo! 2º Passo - Criando o sistema de cadastro de notíciasEste é um passo importante, onde um script criado em PHP irá inserir dados no banco de dados MySQL. Aqui iremos utilizar os conhecimentos passados no tutorial anterior, sobre questões básicas de PHP/MySQL. Primeiramente será criado o arquivo em HTML (formulário) para o cadastro de notícias. Vamos lá:

ARQUIVO cadastra.php

CODE



<?php

$data = date("Y-m-d");
$hora = date("H:i:s");
$novadata = substr($data,8,2) . "/" .substr($data,5,2) . "/" . substr($data,0,4);
$novahora = substr($hora,0,2) . "h" .substr($hora,3,2) . "min";

echo "<h1>Sistema de Cadastro de Notícias</h1>";
echo "<hr><br>";
echo "<form action='inserir.php' method='post'>";
echo "Nome:<input name='nome' type='text' size=30> *<br>";
echo "Sobrenome:<input name='sobrenome' type='text' size=30> *<br>";
echo "Cidade:<input name='cidade' type='text' size=30> *<br>";
echo "Estado:<i>(Exemplo: SP, RS, BA)</i><input name='estado' type='text' size=5> *<br>";
echo "Email: <i>(Exemplo: feitosac@yahoo.com)</i><input name='email' type='text' size=30><br><br>";
echo "Título do Texto:<input name='titulo' type='text' size=30> *<br>";
echo "Subtítulo do Texto:<textarea name='subtitulo' rows=5 cols=30></textarea><br>";
echo "Texto:<textarea name='texto' rows=10 cols=30></textarea> *<br>";
echo "<input name='data' type='hidden' value='$data'<>input name='hora' type='hidden' value='$hora'>";
echo "<input type='submit' value='Cadastrar'>";
echo "</form>";
echo "<br><hr>";
echo "<i>Campos marcados com <b>*</b> são obrigatórios no cadastro.<br>";
echo "<b>Observação</b>: Será inserido no seu cadastro a data atual, bem como a hora atual do cadastro<br>";
echo "Data: $novadata - Hora: $novahora<br>";

?>


FIM DO ARQUIVO cadastra.php

Vamos realizar uma pequena análise neste arquivo. Repare que os dados do formulário serão enviados para o script "inserir.php", este, por conseguinte, será o responsável pela inserção desta notícia no MySQL. Outro ponto, é que não existem os campos id, ver, estes, como expliquei, serão inseridos automaticamente pelo MySQL, e os campos data, hora, serão inseridos pelo PHP.
Agora é hora de criar o script PHP responsável por isto tudo. Vamos nessa:

ARQUIVO inserir.php
CODE



<?php

//Vamos definir as variáveis de data e hora
//para inserção no banco de dados

//Agora com as variáveis de data e hora criadas
//vamos criar uma variável especial para a querie sql

$sql = "INSERT INTO noticias (nome, sobrenome, cidade, estado, email, data, hora,
titulo, subtitulo, texto) VALUES ('$nome', '$sobrenome', '$cidade', '$estado',
'$email', '$data', '$hora', '$titulo', '$subtitulo', '$texto')";

//Agora é hora de contatar o mysql

$conexao = mysql_connect("localhost", "root", "root")
or die ("Configuração de Banco de Dados Errada!");

//Substitua os valores acima caso não esteje de acordo com sua máquina
//Selecionando o banco de dados...

$db = mysql_select_db("noticias")
or die ("Banco de Dados Inexistente!");

//Inserindo os dados

$sql = mysql_query($sql)
or die ("Houve erro na gravação dos dados, por favor, clique em voltar e verifique os campos obrigatórios!");

echo "<h1>Cadastro efetuado com sucesso!</h1>";

?>




FIM DO ARQUIVO inserir.php


Você pode aperfeiçoar muito mais o script. Por exemplo, personalizar a mensagem de erro e de êxito, inserir um link para cadastrar novamente, etc.
Agora vamos para o próximo e último passo, "Recuperando os dados cadastrados" 3.º Passo - Recuperando os dados cadastradosIrei mostrar como selecionar, por exemplo, as últimas 15 notícias inseridas no MySQL; isto é muito útil, para sites que têm seções do tipo "Últimas Notícias". Isto é feito com PHP novamente; faça conforme o exemplo abaixo, e salve como um arquivo em PHP.

ARQUIVO noticias.php
CODE



<?php

//Vamos precisar contar o MySQL novamente

$conexao = mysql_connect("localhost","root","root");
$db = mysql_select_db("noticias");

//Agora é realizar a querie de busca no banco de dados

$sql = "SELECT * FROM noticias WHERE ver = 'on' ORDER BY id DESC LIMIT 15";

// Irá selecionar as últimas 15 notícias inseridas

// O curioso aqui, é que ele só irá selecionar os campos onde
// estiver o ver=on, isto foi discutido logo atrás, como um
// controle de notícias pelo webmaster
// Por padrão o MySQL colocou off, mas o webmaster terá que
// revisar as notícias e alterar o campo ver para as que quiser validar.

$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta ao banco de dados");

// Agora iremos "pegar" cada campo da notícia
// e organizar no HTML

while ($linha=mysql_fetch_array($resultado)) {

$id = $linha["id"];
$nome = $linha["nome"];
$sobrenome = $linha["sobrenome"];
$cidade = $linha["cidade"];
$estado = $linha["estado"];
$email = $linha["email"];
$data = $linha["data"];
$hora = $linha["hora"];
$titulo = $linha["titulo"];
$subtitulo = $linha["subtitulo"];
$texto = $linha["texto"];
$ver = $linha["ver"];

$novadata = substr($data,8,2) . "/" .substr($data,5,2) . "/" . substr($data,0,4);
$novahora = substr($hora,0,2) . "h" .substr($hora,3,2) . "min";

echo "<b>Código da Notícia</b>: $id";
echo "<br>";
echo "Autor: $nome $sobrenome - ($email)";
echo "<br>";
echo "Cidade: $cidade - Estado: $estado";
echo "<br>";
echo "Data: $novadata - Horário: $novahora";
echo "<br>";
echo "Título da Notícia: $titulo";
echo "<br>";
echo "Subtítulo da Notícia: <i> $subtitulo </i>";
echo "<br>";
echo "Notícia: $texto";
echo "<br>";
echo "Validado pelo Webmaster: ";
if ($ver=on) { echo "Sim"; } else { echo "Não"; }
echo "<hr>";

}

?>



FIM DO ARQUIVO noticias.php

Viu como é super simples? Neste script criamos uma variável para cada campo da tabela, assim fica mais fácil de manusear os dados de qualquer forma. Nas variávels novadata, novahora, crie uma função para mostrar as variáveis de uma forma melhor. (agradecimentos a RENAS - Amigão!)
Você ainda pode personalizar estas notícias, deixando o layout do seu jeito!
OBS: para mostrar todas as notícias em vez de só as últimas 15, apenas crie uma nova variável $sql, como esta abaixo:
$sql = "SELECT * FROM noticias WHERE ver = 'on' ORDER BY id DESC";

Pronto! Foi só retirar "LIMIT 15". wink.gif 4.º Passo - Controle de Notícias para WebmasterNeste passo irei explicar como mostrar todos os dados da tabela, para podermos modificá-los, apagá-los, etc. Primeiramente, devemos criar um arquivo PHP para mostrar todos os dados na tela, para depois podermos manuseá-los. Faça como o exemplo abaixo:


ARQUIVO controle.php
CODE




<?php

$conexao = mysql_connect("localhost","root","root");
$db = mysql_select_db("noticias");
$sql = "SELECT * FROM noticias ORDER BY id DESC";
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta ao banco de dados");

echo "<table width=740 border=1 cellpadding=1 cellspacing=1>";
echo "<tr>";
echo "<th width=15>ID:</th>";
echo "<th width=100>Nome:</th>";
echo "<th width=100>Sobrenome:</th>";
echo "<th width=100>Cidade:</th>";
echo "<th width=15>UF:</th>";
echo "<th width=100>Email:</th>";
echo "<th width=30>Data:</th>";
echo "<th width=30>Hora:</th>";
echo "<th width=100>Título:</th>";
echo "<th width=50>Disponível?</th>";
echo "<th width=50>Alterar</th>";
echo "<th width=50>Excluir</th>";
echo "</tr>";

while ($linha=mysql_fetch_array($resultado)) {
$id = $linha["id"];
$nome = $linha["nome"];
$sobrenome = $linha["sobrenome"];
$cidade = $linha["cidade"];
$estado = $linha["estado"];
$email = $linha["email"];
$data = $linha["data"];
$hora = $linha["hora"];
$titulo = $linha["titulo"];
$ver = $linha["ver"];

$novadata = substr($data,8,2) . "/" .substr($data,5,2) . "/" . substr($data,0,4);
$novahora = substr($hora,0,2) . "h" .substr($hora,3,2) . "min";


echo "<tr>";
echo "<th width=15>$id<br></th>";
echo "<th width=100>$nome<br></th>";
echo "<th width=100>$sobrenome<br></th>";
echo "<th width=100>$cidade<br></th>";
echo "<th width=15>$estado<br></th>";
echo "<th width=100>$email<br></th>";
echo "<th width=30>$novadata<br></th>";
echo "<th width=30>$novahora<br></th>";
echo "<th width=100>$titulo<br></th>";
echo "<th width=50>$ver<br></th>";
echo "<th width=50><a href='alterar.php?id=$id'>Alterar</a><br></th>";
echo "<th width=50><a href='excluir.php?id=$id'>Excluir</a><br></th>";
echo "</tr>";
echo "<br>";

}

echo "</table>";

?>



FIM DO ARQUIVO controle.php

O próximo passo agora é criar os arquivos alterar.php e excluir.php, responsáveis pela alteração e exclusão dos dados. É muito simples o código, veja só:

ARQUIVO excluir.php
CODE




<?php

$conexao = mysql_connect("localhost","root","root");
$db = mysql_select_db("noticias");
$sql = “DELETE FROM noticias WHERE id='$id'”;
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a exclusão dos dados.");
echo “<h1>A notícia foi excluída com êxito!</h1>”;

?>



FIM DO ARQUIVO excluir.php

ARQUIVO alterar.php
CODE



<?php

$conexao = mysql_connect("localhost","root","root");
$db = mysql_select_db("noticias");
$sql = "SELECT * FROM noticias WHERE id='$id'";
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta ao banco de dados");

while ($linha=mysql_fetch_array($resultado)) {
$id = $linha["id"];
$nome = $linha["nome"];
$sobrenome = $linha["sobrenome"];
$cidade = $linha["cidade"];
$estado = $linha["estado"];
$email = $linha["email"];
$data = $linha["data"];
$hora = $linha["hora"];
$titulo = $linha["titulo"];
$subtitulo = $linha["subtitulo"];
$texto = $linha["texto"];
$ver = $linha["ver"];

$novadata = substr($data,8,2) . "/" .substr($data,5,2) . "/" . substr($data,0,4);
$novahora = substr($hora,0,2) . "h" .substr($hora,3,2) . "min";

echo "<h1>Alterar Cadastro...</h1>";
echo "<hr><br>";
echo "<form action='alterar_db.php?id=$id' method='post'>";
echo "Código da Notícia: <input name='id_novo' type='text' value='$id' size=20><br>";
echo "Data: $novadata<br>";
echo "Hora: $novahora<br>";
echo "Nome:<input name='nome_novo' type='text' value='$nome' size=30> *<br>";
echo "Sobrenome:<input name='sobrenome_novo' type='text' value='$sobrenome' size=30> *<br>";
echo "Cidade:<input name='cidade_novo' type='text' value='$cidade' size=30> *<br>";
echo "Estado:<i>(Exemplo: SP, RS, BA)</i><input name='estado_novo' type='text'
value='$estado' size=5> *<br>";
echo "Email: <i>(Exemplo: feitosac@yahoo.com)</i><input name='email_novo' type='text'
value='$email' size=30><br><br>";
echo "Título do Texto:<input name='titulo_novo' type='text' value='$titulo' size=30> *<br>";
echo "Subtítulo do Texto:<textarea name='subtitulo_novo' rows=5 cols=30>$subtitulo</textarea><br>";
echo "Texto:<textarea name='texto_novo' rows=10 cols=30>$texto</textarea> *<br>";
echo "Disponibilizar? (on ou off): <input name='ver_novo' type='text' value='$ver' size=5><br>";
echo "<input type='submit' value='Alterar'>";
echo "</form>";
echo "<br><hr>";
}

?>



FIM DO ARQUIVO alterar.php
Agora basta criarmos o arquivo alterar_db.php que irá receber os dados deste arquivo (alterar.php) e alterará seus respectivos dados no MySQL. É muito simples:

ARQUIVO alterar_db.php
CODE



<?php

$conexao = mysql_connect("localhost","root","root");
$db = mysql_select_db("noticias");
$sql = "UPDATE noticias SET id='$id_novo',nome='$nome_novo'
,sobrenome='$sobrenome_novo',cidade='$cidade_novo',estado='$estado_novo'
,email='$email_novo',titulo='$titulo_novo',subtitulo='$subtitulo_novo'
,texto='$texto_novo',ver='$ver_novo' WHERE id='$id'";
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta ao banco de dados");
echo "<h1>Notícia alterada com sucesso!</h1>";

?>

FIM DO ARQUIVO alterar_db.php


Qualquer coisa post ai biggrin.gif

fonte ñ sei de quem e o script
blood
sei que aqui nao eh o lugar correto, mas...

http://forum.wmonline.com.br/index.php?sho...547

conhecidência ?

desculpe, mas se o script não é seu... deveria pelo menos colocar de onde tirou ele... wink.gif
lemissel
Bem pessoal, o que eu vou escrever aqui não é bem um tutorial, nem um script, mas eu acho q se encaixa melhor em tutorial (sintam-se a vontade para mudar heheh).

Eu gostaria de falar sobre a função extract.

Está função tem como sinaxe:

CODE
int extract ( array var_array [, int extract_type [, string prefix]])


Ela simplesmente faz o trabalho daquelas funções que a maioria de nós fazemos para "abreviar" as variáveis com foreach e que no meu caso, raramente funfa hehehe.

Eu a achei por acaso no manual do php ( http://br.php.net/manual/pt_BR/function.extract.php ) e postei aqui pq achei q poderia ajudar mais alguém, pq pra mim fui mto útil...

O parâmetro array var_array é o array a ser "extraído";
O parâmetro int extract_type é o tipo d eextração;
E por fim o parâmetro string prefix é a strinf de prefixo.

A lista dos tipos de extração pode ser encontrada na íntegra no manual do php.

Se chamarmos a função sem esse parâmetro ele utiliza o padrão que é EXTR_OVERWRITE. Isso significa que se ele encontrar uma variável existente ele vai subtituí-la.

O último parâmetro, depende do tipo de extração escolhido. Digamos que eslhessemos o tipo EXTR_PREFIX_SAME
(Se tiver colisão, cria uma var com o prefixo definido em prefix), enão o parâmetro 'prefix' criaria um prefixo para a variável de colisão.

CODE
<?php

$cor = "preto";
$var = array ("fruta" => "pera", "fruteira"  => "zé verdura", "cor" => "verde");
extract ($var, EXTR_PREFIX_SAME, "subs");

echo "$fruta, $fruteira, $cor, $subs_cor\n";

/*Esse cód retornaria
pera, zé verdura, verde, preto
pq ele verificou que já existia um índice 'cor' em $var, então atribuiu o prefixo na nova var
*/
?>


Acho que é isso pessoal, só ainda n sei quanto a segurança do código e tals, mas acho que n muda muito, pq a função é alicada depois dos forms etc... acho que seria o mesmoq o foreach q tanto usamos e q ficar passando a var $var=$_POST['var']; $bar=$_POST['bar']; $foo=$_POST['foo']; ... cavalisticamente hehhe (com eu fazia até hj heheh)

Abraço, espero ter ajudado (e postado no lugar certo ehhe)

Fonte: www.php.net
host designer
Trabalhando com links dinamicos simples

Exemplo: http://www.topbaladas.com/?acao=colunas

Bom primeiramente você deve ter uma noção básica de PHP ou coisa parecida(apesar disso ser simples demais)...
Vamos ao que interessa:

Nosso exemplo terá um sistema de links dinâmicos os quais redirecionam o usuário a determinado endereço ou arquivo...

Pra que serve isso?

Bom como já havia dito acima ele serve pra redirecionar ou direcionar o usuário de forma que não sera possível ao usuário ver qual o endereço da pasta(no caso de download) ou ver o nome da pagina que esta sendo mostrada de forma que ele não possa acessa-la sem ver sua pagina PADRÃO(home ou outra definida por voce).

Então depois de tanto enrrolar vamos ver na pratica...

Como eu disse e bem simples... porem muito util

Vamos usar a função IF(entendemos IF como Se) OBS: "IF é usado para comparar valores ou condições";
E também a função _GET(entendemos _GET como PEGA ou PEGAR) OBS: "_GET deve ser digitada domente em maiúsculo para não ter erros";

Agora que já sabemos o mais importante vamos ao código...

If($_GET[pagina] == "noticias"){#Verifica o conteudo da IF(link)
Include "noticias.php";#inclui a pagina noticias.php
}

Agora vamos explicar isso mais detalhadinho

If($_GET[pagina] == "noticias"){ esta linha confere se o conteudo do link e igual a NOTICIAS(note que ele esta dentro de duas chaves) e diz que se for igual inclua(include) a pagina noticias.php
Include "noticias.php"; inclui a pagina noticias.php

Bom nisso ae eu coloquei apenas um link ou melhor apenas o código de uma pagina mas podem ser colocados inúmeros para demostrar eu colocarei três aqui

if($_GET[acao] == ''){
include "home.php";
}
If($_GET[pagina] == "noticias"){
Include "noticias.php";
}
If($_GET[pagina] == "eventos"){
Include "eventos.php";
}


Para chamar estes links através do navegador apenas digite seus links assim:
<a href ="?pagina=eventos">eventos</a> e assim por diante

Galera algumas coisas eu devo ter esquecido de falar ou alguma coisa do tipo...
qualquer coisa me manda um MP que eu respondo direitinho


Falopa!
lukascolette
E ae galera, bele? Bom, hj eu vou postar aki um tuto de sistema de login, eh bem legal e facil de se usar. Utilizaremos: mysql e cookies.
O sistema será dividido em tres partes:

* Página de login, que recebe os dados do usuário, verifica se ele está cadastrado e cria os cookies

* Rotina de validacao para ser utilizada nas páginas que fazem parte das areas restritas

* Página de logout para os usuarios que estao autentificados

----------------------------------------------------------------------------
Abra seu mysql e digite:

QUOTE

create table usuarios
(
username varchar(10) NOT NULL,
senha varchar(10) NOT NULL,
nome varchar(80) NOT NULL,
email varchar(80) NOT NULL,
cidade varchar(40) NOT NULL,
estado char(2) NOT NULL,
primary key(username)
);

insert into usuarios values ('usuario,'senha',nome','email','Cidade','estado');


Repare que utilizamos o campo username como chave primária, pois isso nos garante q nao poderá haver nenhum username repetido em nosso bd.

Crie uma pagina chamada config.php com os seguintes codigos:
QUOTE

<?php
// configurações do banco de dados
$servidor = "localhost";
$usuario_bd = "usuario";
$senha_bd = "sua senha";
$banco = "nome_do_seu_banco";
$con = mysql_connect($servidor, $usuario_bd, $senha_bd);
mysql_select_db ($banco);
?>


Agora criaremos o form q irá inserir o cadastros dos usuarios

form.html
QUOTE

<form action="enviar_cadastro.php" method="post">
        <table width="456" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="175">&nbsp;</td>
            <td width="281">&nbsp;</td>
          </tr>
          <tr>
            <td colspan="2"> <div align="center"><strong><font color="#006699">Por
                favor, informe seus dados para poder se cadastrar<br>
                <br>
                </font></strong><font color="#006699"> <font color="#FF0000">ATEN&Ccedil;&Atilde;O!
                Todos os campos s&atilde;o de preenchimento obrigat&oacute;rio.
                </font></font></div></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td><div align="right"><font color="#0066CC">Login:</font></div></td>
            <td><input name="username" type="text" id="username"></td>
          </tr>
          <tr>
            <td height="17"> <div align="right"><font color="#0066CC">Senha:</font></div></td>
            <td><input name="senha" type="password" id="senha"></td>
          </tr>
          <tr>
            <td height="17"> <div align="right"><font color="#0066CC">Repita a
                senha:</font></div></td>
            <td><input name="senha2" type="password" id="senha2"></td>
          </tr>
          <tr>
            <td><div align="right"><font color="#0066CC">Nome:</font></div></td>
            <td><input name="nome" type="text" id="nome" size="40"></td>
          </tr>
          <tr>
            <td><div align="right"><font color="#0066CC">E-mail:</font></div></td>
            <td><input name="email" type="text" id="email" size="40"></td>
          </tr>
          <tr>
            <td><div align="right"><font color="#0066CC">Cidade:</font></div></td>
            <td><input name="cidade" type="text" id="cidade" size="25"></td>
          </tr>
          <tr>
            <td><div align="right"><font color="#0066CC">Estado:</font></div></td>
            <td><select name="estado" size="1" id="estado">
                <option value="RJ">RJ</option>
                <option value="MG">MG</option>
                <option value="ES">ES</option>
                <option value="PR">PR</option>
                <option value="SC">SC</option>
                <option value="RS">RS</option>
                <option value="MS">MS</option>
                <option value="MT">MT</option>
                <option value="GO">GO</option>
                <option value="RO">RO</option>
                <option value="AC">AC</option>
                <option value="AM">AM</option>
                <option value="RR">RR</option>
                <option value="PA">PA</option>
                <option value="TO">TO</option>
                <option value="BA">BA</option>
                <option value="SE">SE</option>
                <option value="AL">AL</option>
                <option value="PE">PE</option>
                <option value="PB">PB</option>
                <option value="RN">RN</option>
                <option value="CE">CE</option>
                <option value="PI">PI</option>
                <option value="MA">MA</option>
                <option value="AP">AP</option>
                <option value="DF">DF</option>
                <option selected>SP</option>
              </select>
              &nbsp;</td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td><br> <input type="submit" name="Submit" value="Efetuar cadastro" style="cursor: hand">
              <input type="reset" name="Submit2" value="Limpar dados" style="cursor: hand"></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
        </table>
  </form>


criaremos a pagina q irá receber os valores q foram digitados no form e colocaremos no bd, bom, esta parte eu adaptei com um sisteminha q eu tinha aki no meu PC com o sistema q o balala postou na parte de tutoriais

enviar_cadastro.php
QUOTE

<?
include "config.php"; //aqui inserimos as váriaveis da página de configuração
$pesquisar = mysql_query("SELECT * FROM usuarios WHERE username = '$username'"); //conferimos se o login escolhido já não foi cadastrado
$contagem = mysql_num_rows($pesquisar); //traz o resultado da consulta acima

if ( $contagem == 1 ) {
  $errors .= "Login escolhido já cadastrado.<br>"; //se o login já existir, ele adiciona o erro
  }

if ( $username == "" ) {
  $errors .= "Você não digitou um login<br>"; //confere se o campo login não ficou vazio
  }

if ( $senha == "" ) {
  $errors .= "Você não digitou uma senha<br>"; //confere se o campo senha não ficou vazio
  }

if ( $senha != $senha2 ) {
  $errors .= "Você digitou 2 senhas diferentes.<br>"; //adiciona o erro caso o usuário digitou 2 senhas diferentes
  }
  if ( $nome == "" ) {
  $errors .= "Você não digitou seu nome<br>"; //confere se o campo senha não ficou vazio
  }
    if ( $email == "" ) {
  $errors .= "Você não digitou seu e-mail<br>"; //confere se o campo senha não ficou vazio
  }
    if ( $cidade == "" ) {
  $errors .= "Você não digitou o nome de sua cidade<br>"; //confere se o campo senha não ficou vazio
  }
 
if ( $errors == "" ) { //checa se houve ou não erros no cadastro

  $cadastrar = mysql_query("INSERT INTO usuarios (username, senha, nome, email, cidade, estado)
    VALUES ('$username', '$senha', '$nome', '$email', '$cidade', '$estado')"); //insere os campos na tabela

    if ( $cadastrar == 1 ) {
      echo "<div align=center><font color=#0066cc><br>Cadastro efetuado com sucesso.<br><br><a href=\"login.php\"><b>Clique aqui</b></a> para se logar no site</font></div>"; //se cadastrou com sucesso o usuário aparece essa mensagem
      } else {
    echo "<div align=center><font color=#0066cc>Ocorreu um erro no servidor ao tentar se cadastrar.</font></div>";
  }
  } else {
    echo "<div align=center><font color=#0066cc><b>Ocorreu os seguintes erros ao tentar se cadastrar:</b><br>$errors<br><br> <a href=\"javascript: history.back()\">« voltar</a></font></div>"; }
?>


Login

Após a criacao da tabela e inclusao de alguns usuarios, o proximo passo é fazer um programa de login, q recebe o username e senha.

login.html
QUOTE

<html>
<body>
<form method="POST" action="login.php">
  <p align="center">Nome de usuário: <input type="text" name="username" size="10"></p>
  <p align="center">Senha: <input type="password" name="senha" size="10"></p>
  <p align="center"><input type="submit" value="Enviar" name="enviar"></p>
</form>
</body>
</html>


Ao clicar em enviar será ativado o programa login.php, q deve analisar as informacoes e retornar uma resposta para o usuario ou rendirecioná-lo para outra pagina.

login.php

QUOTE

<?php
// obtém os valores digitados
$username = $_POST["username"];
$senha = $_POST["senha"];

// acesso ao banco de dados
include "config.php";
$resultado = mysql_query("SELECT * FROM usuarios where username='$username'");
$linhas = mysql_num_rows ($resultado);
if($linhas==0)  // testa se a consulta retornou algum registro
{
echo "<html><body>";
echo "<p align=\"center\">Usuário não encontrado!</p>";
echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>";
echo "</body></html>";
}
else
{
    if ($senha != mysql_result($resultado, 0, "senha")) // confere senha
{
  echo "<html><body>";
  echo "<p align=\"center\">A senha está incorreta!</p>";
  echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>";
  echo "</body></html>";
}
else  // usuário e senha corretos. Vamos criar os cookies
    {
        setcookie("nome_usuario", $username);
        setcookie("senha_usuario", $senha);
        // direciona para a página inicial dos usuários cadastrados
        header ("Location: pagina_inicial.php");
    }
}
mysql_close($con);
?>


Veja que primeiro foi feita uma consulta ao banco de dados para verificar se o usuario existe.

AUTENTIFICAÇÃO

Depois q o usuario fez o login, os cookies ja foram armazenados na maquina dele.
Agora vamos validar estes cookies.

valida.php
QUOTE

<?php
if(IsSet($_COOKIE["nome_usuario"]))
    $nome_usuario = $_COOKIE["nome_usuario"];
if(IsSet($_COOKIE["senha_usuario"]))
    $senha_usuario = $_COOKIE["senha_usuario"];

if(!(empty($nome_usuario) OR empty($senha_usuario)))
{
    include "config.php";
$resultado = mysql_query("SELECT * FROM usuarios WHERE username='$nome_usuario'");
if(mysql_num_rows($resultado)==1)
{
  if($senha_usuario != mysql_result($resultado,0,"senha"))
  {
            setcookie("nome_usuario");
            setcookie("senha_usuario");
            echo "Você não efetuou o LOGIN!";
            exit;
        }
    }
    else
    {
        setcookie("nome_usuario");
        setcookie("senha_usuario");
        echo "Você não efetuou o LOGIN!";
        exit;
    }
}
else
{
    echo "Você não efetuou o LOGIN!";
    exit;
}

mysql_close($con);
?>


agora em todas as paginas q vc quiser proteger vc tem q colocar no topo dela isto:

include "valida.php";

Bom pessoal, foi isso ae, espero q isso ajude em alguma coisa

(y)
Der Nachwolf
vlw....eu tava precisando de algo assim pra colocar no meu site(ow meljor....no site q eu estou criando....)
lukascolette
SISTEMA DE LOGIN COM COOKIES

Ae galera, eu vou hj fazer um sistema de login e senha sem necessidade dum banco de dados.

Primeiro passo:
* Construa uma página em HTML msm com o seguinte form:
QUOTE

<form method=post action=entrar.pjp>
usuário: <input type="text" name=usuario><br>
senha:  <input tyoe="password" name=senha><br>
<input type="submit" value="Entrar">


pagina entrar.php
PHP

<?php
$usuario = $_POST["usuario"];
$senha = $_POST["senha"];
if(($usuario == "usuario") && ($senha == "123")) {
setcookie ("usuario", $login);
setcookie ("senha", $senha);
header("Location: principal.php");
}
else {
header("Location: erro.php");
}
?>


Agora vou explicar parte a parte o codigo:

QUOTE

$usuario = $_POST["usuario"];

Recebe o que foi digitado no campo usuario


QUOTE


if(($usuario == "usuario") && ($senha == "123"))  {
  setcookie ("usuario", $login);
  setcookie ("senha", $senha);
  header("Location: principal.php");
}


Ele irá comparar se o usuario q foi digitado vai ser igual a usuario e depois ele irá comparar a senha. Se ambos digitados corretamente o script irá criar os cookies

CODE

else {
header("Location: erro.php");
}

Se os dados informados nao forem certo ele encaminha para a pagina de erro

---------------------------------------------
Agora iremos proteger a pagina principal.php
PHP

<?php
$usuario = $_COOKIE["usuario"];
$senha = $_COOKIE["senha"];
if($usuario && $senha) {
?>
<html>
Conteudo da pagina principal
</html>
<?php
}
else {
header("Location: erro.php");
}
?>


aki ele verifica se existem os cookies criados, se existir ele exibe a pagina principal.php se nao existir ele vai para a pagina erro.php

Bom, eh isso aew, façam bom proveito

falow
- rafael -
QUOTE (Gulliva @ Jun 26 2004, 04:33 PM)
Descubrindo O Tamanho Das Imagens...

Para fazer esse tutorial vou lembrar que a
largura da imagem é representada por X
E a altura é representada por Y.

Então vamos lá:


CODE

$img = 'minha_imagem.jpg'; //Seta a imagem a ser verificada

$y = imagesy($img); //pega o valor da altura
$x = imagesx($img); //pega o valor da largura
echo"A imagem tem $x pixels de largura e $y de altura.";


Só isso...É bem simples...
Obs: necessário biblioteca GD 2 ou superior

Achei um fórum melhor!
skolroots
GRÁFICO DO TIPO BARRA

http://scriptbrasil.com.br/forum/index.php?showtopic=77026
VLW
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.