Arquivo da categoria ‘PHP + MySQL’

Aprendendo sobre Funções

Publicado: fevereiro 1, 2010 por Stefan Yohansson em PHP + MySQL, Tecnologia
Tags:, ,

Funções… Ah, queridas funções…
Sem elas eu não poderia deixar meus programas mais leves. Aqui vamos dar início a uma base de como não precisar repetir seu código várias vezes e realmente o começo de como fazer um código ficar mais inteligente com o paradigma de Orientação à Objeto. :] ~

Enfim,

Definindo funções
Funções são blocos de códigos pré-definidos e rotulados para que sejam executados quando chamados e podem ou não receber um atributo/váriavel.

COMO ASSIM?

Simples,

function mensagem() {
echo “oi !”;
}

mensagem();

a saída da chamada dessa função é “oi”, se não tivesse o mensagem() ali, abaixo do código… ele nem chegaria a executar.
– Porque?
A função é um bloco de código e ela não é executada a não ser que seja chamada pelo seu nome. Logo, não adianta chamar uma função antes dela ser definida.

MAS PERAI !

pra quê fazer uma função? se eu simplesmente posso digitar

echo “oi”;

pensa aí, se você precisar digitar oi em mil campos de textos [para o exemplo da função mensagem()] e quando você for editar?
no caso da função mensagem, seria só editar ali e onde tivesse “oi” mudaria para o que foi digitado, entenderam?

Então, vamos a um exemplo mais díficil:

#modelo 1 – Criado por Stefan Yohansson
#duas funções e o html

$numero_contador = 0; #define a única variavel usada e seu valor.

function contador_mais($numero_contador) {
$numero_contador++;
return $numero_contador;
} #essa é a primeira função. O que ela faz? apenas soma +1 à nossa variavel, 0 + 1 = 1, e este é o resultado retornado.

function contador_menos($numero_contador) {
$numero_contador–;
return $numero_contador;
} #faz o contrário da de cima, diminui 1 de 0, retornando -1

#chamamos o html !
echo “<html>
<title>Sucessor e Antecessor de Zero !</title>
<link href=\”cont.css\” rel=\”stylesheet\” type=\”text/css\”>
<body>
<div id=\”container\”>
<h2>Sucessor e Antecessor de Zero !</h2>
<a href=\”?area=Aumentar\”>Aumentar</a> – <a href=\”?area=Diminuir\”>Diminuir</a>
<br>
(Aperte os links acima ou os botões abaixo para o número mudar)
<h1>”;

if ($_GET[‘area’]) { #caso tenhamos uma variavel area na URL:

switch($_GET[‘area’]) { #troque para cada valor abaixo
case Aumentar: #caso aumentar
echo contador_mais($numero_contador); #use a função mais
break;
case Diminuir: #caso seja diminuir
echo contador_menos($numero_contador); #use a função menos
break;

case Zerar: #caso zerar.
echo $numero_contador; #chame o valor da variavel
break;

default:
echo $numero_contador;
}

} else {
echo $numero_contador;
}

echo “</h1>
<form action=\”?\” method=\”GET\”>
<input type=\”submit\” name=\”area\” value=\”Diminuir\”>
</form>

<form action=\”?\” method=\”GET\”>
<input type=\”submit\” name=\”area\” value=\”Aumentar\”>
</form>

<form action=\”?\” method=\”GET\”>
<input type=\”submit\” name=\”area\” value=\”Zerar\”>
</form>

</div>
</body>
</html>”;

Bem pessoal, reparem que no nosso código se vocês executarem nos seus computadores, veram que temos dois botões (um botão mesmo e outro é um link) e ambos fazem a mesma coisa com os mesmos parametros. :] ~

Bem este é um programa exemplo. Percebam que a função é diferente da função mensagem pois tem algo entre os ().
O que quer dizer isso?
function contador_menos($numero_contador)
isso significa que a função receberá como parametro a variavel $numero_contador.
Se isto não for feito, nada será feito. >D

Caso sua função seja uma função de msg, isso não é preciso, mas caso o usuario vá passar valores que serão executados na função, é mais que preciso.

Enfim, fica de dever de casa fazer um programa que calcule a hipotenusa de um triângulo de lados
h = ?
a = 8
b = 6

Sua saída deve ser algo parecido com o outro programa.
Se quiserem podem postar seus códigos nos comentários e eu avalio-os… ou mandem-me e-mails.

swhite.owl@gmail.com

Sistema de notícias com PHP & MySQL

Publicado: dezembro 9, 2009 por Stefan Yohansson em PHP + MySQL, Tecnologia
Tags:, , ,

Bem, todo mundo se pergunta como fazer um sistema de notícias ou tra la la li,
Sei que esse tutorial tem em muitos lugares, mas muitos ou não funcionam, ou tem falhas de segurança, ou isso ou aquilo, não prometo trazer o com a maior segurança, nem o mais bem explicado, mas pelo menos que funcione, sim.

Depois quando abordarmos segurança (md5), daí eu mando um sisteminha com sessions, cookies e os cambal. ( mas lembre-se, nada na boca, só o começo o resto… virem-se ) :] ~

Enfim, o que você precisa entender?
– Linguagem de programação; PHP
– Banco de dados; MySQL

– Criando a tabela

<?

$conexao = mysql_connect(“localhost”, “root”, “”) or die (“Configuração de Banco de Dados Errada!”); //lembrando que em mysql_connect é servidor,usuario,senha ali é a configuração para um servidor local sem senha e com usuario root

$db = mysql_select_db(“meusite”) or die (“Banco de Dados Inexistente!”); //acessa o banco de dados noticias

?>

criar a tabela. Com as seguintes configurações:

<?

include(‘config.php’); /* Chama o arquivo criado acima. Que é a chamada ao MySQL, lembrando que você terá de criar a db, direto do PhpMyAdmin, enfim, continue lendo. */

CREATE TABLE noticias (
id int(5) NOT NULL auto_increment,
nome char(30) NOT NULL ,
email char(80) ,
data date NOT NULL,
hora time NOT NULL ,
titulo char(100) NOT NULL ,
subtitulo char(200) ,
mensagem text NOT NULL ,
visualizar char(3) DEFAULT ‘nao’ ,
PRIMARY KEY (id),
UNIQUE id (id)
);

?>

Aquela parte de cima serve para o php se conectar ao servidor mysql e devidamente ao banco de dados especificado, no caso notícias. Vamos chamar ele de arquivo: config.php. Então para não precisarmos escrever ele mil vezes e quando precisarmos edita-lo precisar fazer mil vezes, podemos botar em um arquivo separado e chama-lo pela função include(‘config.php’); vejamos como fazer isso.

antes de tudo, você terá de acessar o PhpMyAdmin e criar novo banco de dados com o nome notícias, é simples. Mas tem um tópico que explica isso aqui no blog. :~~ Procure.

  • Vamos entender/simplificar o código:

– Criando config.php

Vamos criar um arquivo que tenha os parametros de acesso do mysql, para não precisarmos ficar editando em todos os arquivos.

<?

#essas variaveis você poderá mudar.
$servidormysql = “localhost”;
$usuarioservidor = “root”;
$senhaservidor = “”;
$bancodados = “meusite”;

#Daqui para baixo, não é necessário alteração.
$conexao = mysql_connect(“$servidormysql”, “$usuarioservidor”, “$senhaservidor”) or die (“Configuração de Banco de Dados Errada!”);

$db = mysql_select_db(“$bancodados”) or die (“Banco de Dados Inexistente!”);

?>

Bem, quando precisarem mudar algum dado, mudem as variaveis e pronto. :}

Obs.: Ao invés de usar aquelas linhas todas no seu arquivo.php tente substituir por include(config.php);

Sentiu a diferença? Então já entedemos o nosso conectar ao mysql, vamos ao sistema em si.

<?

echo “<h1><b>Cadastro de Notícias</b> // <i> created by: Stefan Yohansson </i></h1>”;
echo “<hr><br>”;
echo “<form action=’inserir.php’ method=’POST’>”; /* repare no action que manda todo o conteudo do form em questão para o arquivo inserir.php por metodo post, caso não entenda isso. Estude HTML */
echo “Nome: <input name=’categoria’ type=’text’ size=30> *<br>”;

*<br>”;

echo “Titulo: <input name=’titulo’ type=’text’ size=30><br><br>”;
echo “Autor: <input name=’autor’ type=’text’ size=30><br><br>”;
echo “Texto: “;
echo “<input type=’submit’ value=’Enviar’>”;
echo “</form>”;
echo “<br><hr>”;
echo “<i>Os campos com <b>*</b> são obrigatórios.<br>”;
?>

Bem, chamaremos esse arquivo de noticias.php, ele é um html, e pode ser tirado as ” e ser salvo como noticias.html. Porém prefiro em php.

Enfim, falta só um arquivo para fazermos o básico do sistema de notícias; a página de inserir o conteúdo ali digitado.

E vamos criar o inserir.php. Por favor, substitua os /* */ pelas tags de abertura do php. Pois o wordpress impancou com elas.

/*
$categoria = $_POST[‘categoria’];
$titulo = $_POST[‘titulo’];
$autor = $_POST[‘autor’];
$texto = $_POST[‘texto’];

include(‘config.php’);

$sql = “INSERT INTO noticias (categoria, titulo, autor, texto) VALUES (‘$categoria’, ‘$titulo’, ‘$autor’, ‘$texto’)”;

$resultado = mysql_query($sql) or die(“Houve um erro no cadastramento dos valores no db.”);

echo “Dados cadastrados com sucesso.”;
*/

ele chama as variaveis que foram passadas pelo metodo POST, definido em noticias.php no <form action=”” method=”POST” />
e essas variaveis, recebem seus nomes através dos names dados ao input, por exemplo:
<input type=”text” name=”categoria“>
o nome da variavel que contém o texto categoria fica assim.
$_POST[‘categoria’];

E para não precisarmos ficar usando esse texto em toda parte definimos ele como uma outra variavel.
$categoria = $_POST[‘categoria’];
entenderam?
– Mas e o resto?

$sql = “INSERT INTO noticias (categoria, titulo, autor, texto) VALUES (‘$categoria’, ‘$titulo’, ‘$autor’, ‘$texto’)”;

Quem sabe inglês já desvenda isso de cara, mas vamos traduzir:
$sql = “INSERIR EM noticias (nas colunas tais) OS VALORES (tais) ;
O que eu quis dizer com isso? que quero que insira na tabela noticias ( o banco de dados já está conectado no include(‘config.php’) )
os valores seguidos na linha depois do VALUE, nas sequintes colunas (antes do VALUE).

Bem pessoal, não to aqui para montar sisteminha besta para ninguém.
Apenas ensinar isso. Se quiserem alterar, fique de lição de casa. Fiquem só sabendo que a query para editar é;

“ALTER TABLE noticias (…) VALUES (…)”;
ou…
“ALTER TABLE noticias VALUES (x = ‘$f’, y = ‘$z’)…”;

Espero que tenha sido útil, e qualquer dúvida / reclamação deixar nos comentários. Desculpem a demora.

Eeee…

Irei começar com Ruby On Rails.
Já que vou fazer um curso no IFRN sobre tal.

Mais sobre PHP

Publicado: novembro 6, 2009 por ' Carolina Araújo em PHP + MySQL, Tecnologia

Formulários Em PHP

Muitas pessoas tem dúvida de para onde vai o conteúdo daquele HTML , Onde ele é processado? O próprio formulario lhe responde isso no seu campo de ação.

Ex.:
<form action = “resposta.php”> </form>

O arquivo resposta.php é o arquivo onde as informações serão processadas e enviadas para outro lugar, geralmente um banco de dados. Vamos montar um desses formularios simples:

Nome: <input type=”text” name=”nome”>
*E-mail: <input type=”text” name=”email”>*

Senha: <input type=”password” name=”senha”>*

O campo “name” (em negrito) é de extrema importância nos input, pois são eles que nomeiam os bois, por eles que se recebe as variaveis no ‘enviar.php’. O metódo POST indica que os valores serão passados ‘por trás’ do script, de maneira segura, podendo assim dizer. Diferente do metódo GET que passa pela URL, os valores.

Bem, já montamos o nosso HTML, agora vamos ao arquivo ‘enviar.php’, o que ele fará?

  • Receberá os valores por metódo POST e irá transferi-los para uma variavel, respectivamente (a variavel é nomeada com o que colocar no name. Por isso esse campo é importante.)
  • Irá checar se todos os valores estão preenchidos, caso não, irá retornar uma msg de erro.
  • Caso os valores estejam correspondendo vai enviar os mesmos para a tela, imprimindo-os.

enviar.php

<?php
$nome = $_POST[‘nome’] /* recebe o valor pelo metodo post e armazena na variavel */
$email = $_POST[‘email’]
$senha = $_POST[‘senha’]

$sql = “INSERT INTO usuarios (nome, email, senha) VALUES (‘$nome’, ‘$email’, ‘$senha’)”;

/* Recebe valor e monta o SELECT na variavel sql*/

include(‘config.php’);

#chama o script de configuração

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

// Serve para enviar os dados, caso dê erro mostra a msg escrita no “or die”
echo “Cadastro efetuado com sucesso!”;

//caso não, mostra o echo

Procurarei ser o mais breve possível, afinal tenho muito trabalho a fazer.

Qualquer erro, reportar a minha caixa de e-mail e queria pedir minhas desculpas pelo sumiço, as áreas de ciências exatas, iram ser preenchidas, em breve.

Agora vamos ao que interessa.

Como criar uma tabela com PHP

Geralmente as pessoas usam gerenciadores de tabelas como “phpMyAdmin” para criar suas tabelas, mas se de repente precisarem criar todas essas tabelas em outro lugar, ou simultaneamente, por que não facilitar?

Simplesmente podem criar a tabela e pegar aquele código gerado pelo phpMyAdmin e colocar dentro de um arquivo .php e executa-lo no seu servidor. deixe-me dar um exemplo.

<?
CREATE TABLE conteudo (
id int(5) NOT NULL auto_increment,
nome char(30) NOT NULL ,
email char(80) ,
data date NOT NULL,
hora time NOT NULL,
titulo char(100) NOT NULL,
subtitulo char(200),
mensagem text NOT NULL,
visualizar char(3) DEFAULT ‘nao’,
PRIMARY KEY (id),
UNIQUE id (id)
);
?>

 

<?

include(‘config.php’);

CREATE TABLE conteudo (

id int(5) NOT NULL auto_increment,

nome char(30) NOT NULL ,

email char(80) ,

data date NOT NULL,

hora time NOT NULL,

titulo char(100) NOT NULL,

subtitulo char(200),

mensagem text NOT NULL,

visualizar char(3) DEFAULT ‘nao’,

PRIMARY KEY (id),

UNIQUE id (id)

);

?>

salve o arquivo como: create_table_conteudo.php e execute do seu link www.meulink.com.br/create_table_counteudo.php e a sua tabela estará criada.

lembrando que o include(‘’); Chama um arquivo que é o config.php e nele deve conter as informações do servidor mysql, por exemplo:

<?

$host = “localhost”;

$user = “root”;

$senha = “”;

$dbname = “meu_site”;

$conexao = mysql_connect($host, $user, $senha) or die (“Não foi possível conectar-se com o banco de dados”);

$db = mysql_select_db($dbname) or die (“Não foi possível conectar-se com o banco de dados”);

?>

E salve o arquivo como config.php, o include chamará para dentro daquele arquivo create_table_conteudo.php;

 

Como fazer uma consulta no banco de dados e selecionar variaveis dessa consulta

Bem, aqui iremos aprender a fazer uma simples consulta num servidor MySQL, faça um arquivo com o nome de conteudo.php e estude esse código antes de adicionar lá.

<?
include(‘config.php’);

$sql = “SELECT * FROM conteudo WHERE visualizar = ‘sim’ ORDER BY id DESC”;  //Selecione da tabela conteudo quando visualizar for ‘sim’ e ordene por id decrescente

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

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

//chame cada variavel como cada parte da tabela, nome, email e etc

$id = $linha[“id”];
$nome = $linha[“nome”];
$email = $linha[“email”];
$data = $linha[“data”];
$hora = $linha[“hora”];
$titulo = $linha[“titulo”];
$subtitulo = $linha[“subtitulo”];
$mensagem = $linha[“mensagem”];
$visualizar = $linha[“visualizar”];

 

//escreve o html, a parte visivel do código. apartir daqui é o que apareçe na página

echo “<center>”;
echo “Noticia $id”;
echo “<br>”;

echo “Autor: $nome – ($email)”;
echo “<br>”;
echo “Data: $novadata – Horário: $novahora”;
echo “<br>”;
echo “Título da Notícia: <b> $titulo </b>”;
echo “<br>”;
echo “Subtítulo da Notícia: <i> $subtitulo </i>”;
echo “<br>”;
echo “Notícia: $mensagem”;
echo “<br>”;
echo “<br>”;
echo “<hr>”;
echo “</center>”;

}
?>

continuarei em como inserir valores nessa mesma tabela.

 

Inserindo os valores que ali o arquivo lê

Primeiro, cria-se um arquivo html com um form em method=“post” e configurado para enviar para um arquivo com o nome inserir (action=“inserir”)

Vejamos esse código desse html:

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<?

echo “<h1><b>Cadastro de novidades</b> // <i> created by: Stefan Yohansson </i></h1>”;
echo “<hr><br>”;
echo “<form action=\”../inserir.php\” method=’post’>”;
echo “Autor: &nbsp;&nbsp; <input name=’nome’ type=’text’ size=30> *<br>”;
echo “Email: &nbsp;&nbsp;&nbsp;<input name=’email’ type=’text’ size=30> *<br>”;

    “<br>”;

echo “Título: &nbsp; <input name=’titulo’ type=’text’ size=30><br><br>”;
echo “Sub Título: &nbsp;&nbsp; <input name=’subtitulo’ type=’text’ size=30><br><br>”;
echo “Texto: &nbsp;&nbsp; <textarea name=’mensagem’ cols=’25’
rows=’7′ >
</textarea>

<br><br>”;
echo “visualizar: <input type=’checkbox’ value=’sim’ name=’visualizar’ /><br><br>”;
echo “<input type=’submit’ value=’Enviar’>”; echo “&nbsp;”;
echo “<input type=’reset’ value=’Resetar’>”;
echo “</form>”;
echo “<br><hr>”;
echo “<i>Os campos com <b>*</b> são obrigatórios.<br>”;

?>

Bem, espero que saibam html, caso não, não sei nem o que estão fazendo aqui.

Enfim, como podem ver, um form tem a ação de enviar o conteudo dele para o arquivo inserir.php em metodo post, lembrando que os valores dos input são definidos nos name=‘nomequevocêquer’ ao chegar no inserir.php ele chega como $nomequevocêquer = oquevocêescreveunocampo

Crie um arquivo inserir.php com os valores:

<?

$nome = $_POST[“nome”];
$email = $_POST[“email”];
$titulo = $_POST[“titulo”];
$subtitulo = $_POST[“subtitulo”];
$mensagem = $_POST[“mensagem”];
$visualizar = $_POST[“visualizar”];

    $sql = “INSERT INTO conteudo (nome, email, data, hora, titulo, subtitulo, mensagem, visualizar) VALUES (‘$nome’, ‘$email’, ‘$data’, ‘$hora’, ‘$titulo’, ‘$subtitulo’, ‘$mensagem’, ‘$visualizar’)”; /* Recebe valor e envia para o banco de dados*/

    include(‘config.php’);
$sql = mysql_query($sql) or die (“Houve erro na gravação dos dados, por favor, clique em voltar e verifique os campos obrigatórios!”); // Serve para enviar os dados
echo “<h1>Cadastro efetuado com sucesso!</h1>”;

?>

Espero ter ajudado novamente, e tenham uma boa noite.

Diferente do que faço em todas as outras categorias, irei postar dicas e não um tutorial de como usar/fazer.

Afinal, se procura uma categoria como essa é por que já tem noções básicas do que se trata.

Voltei das cinzas, eu sei, mas o meu chá de sumiço foi devido a trabalho e várias coisas, e o da Anne Carolina é o simples fato do seu computador estar quebrado.

Não se preocupem, iremos voltar com nossas atividades, em breve.

Enfim, vamos chegar onde eu quero.

– Como fazer para editar um arquivo de extensão .txt direto de um php, ou criar arquivos .xml

PHP é uma linguagem web bem versátil e ela tem uma semelhança com a linguagem C, veja essa semelhança no comando fopen, fwrite, fputs (sinônimo de fwrite), fread, fclose

Bem, falar, falar e falar não adianta de nada, vamos pôr a mão na massa.

fopen – Abre um arquivo

fwrite – escreve em um arquivo

fread – lê um arquivo

fclose – fecha um arquivo

Simples isso, né?

Mas só assim, dá uma certa incerteza, vamos explicar como fazer.

<? $novoarquivo = fopen(“nossoarquivo.txt”, “a”);

$conteudo = $fread($novoarquivo);

echo “$conteudo”; ?>

Se você tentar, poderá entender. :] Mas vamos explicar.

ele cria uma variavel com o nome novoarquivo que abre o arquivo e a outra função fread recebe tudo que tiver escrito no “nossoarquivo.txt” com valor de apenas leitura “a” e no final imprime tudo no navegador com o comando “echo”

– mas você não me explicou isso, maldito!

Calma gente,

‘r’ – Abre somente para leitura; coloca o ponteiro no começo do arquivo.

‘r+’ – Abre para leitura e gravação; coloca o ponteiro no começo do arquivo.

‘w’ – Abre somente para gravação; coloca o ponteiro no começo do arquivo e apaga o conteúdo que já foi escrito. Se o arquivo não existir, tentar criá-lo.

‘w+’ – Abre para leitura e escrita; coloca o ponteiro no início do arquivo e apaga o conteúdo que já foi escrito. Se o arquivo não existir, tentar criá-lo.

‘a’ – Abre o arquivo somente para escrita; coloca o ponteiro no fim do arquivo. Se o arquivo não existir, tentar criá-lo.

‘a+’ – Abre o arquivo para leitura e gravação; coloca o ponteiro no fim do arquivo. Se o arquivo não existir, tentar criá-lo.

melhor?

Enfim, mas aí só faz pegar o que ta escrito, e se não tiver nada lá, e se eu quiser inserir algo?

<? $novoarquivo = fopen(“nossoarquivo.txt”, “w+”);

fwrite($nossoarquivo, “$cont”); ?>

aqui o novoarquivo é aberto e zerado e o ponteiro posto no inicio do arquivo pelo ‘w+’ e o comando fwrite se encarrega de escrever em $nossoarquivo que é o nossoarquivo.txt aberto pelo comando fopen, a variavel $cont que é o texto que você quer adicionar, pode ser qualquer coisa ali.

Hmmm…

E se eu quiser adicionar um arquivo por cima do outro?

<? $abrir = fopen(“nossoarquivo.txt”, “r”);

$cont = fread($abrir, filesize(“nossoarquivo.txt”));

fclose($abre);

$apagar = fopen(“nossoarquivo.txt”, “w”);

fclose($apagar);

$adicionar = fopen(“nossoarquivo.txt”, “a”);

fputs ($adicionar, “$texto\r\n”);

fclose($adicionar);

$adicionar2 = fopen(“nossoarquivo.txt”, “a”);

fputs ($adicionar2, “\r\n$cont”);

fclose($adicionar2); ?>

Basicamente, é isso, espero que tenha ajudado.
E até a próxima.