Simples conexão com seu fórum! Iniciantes PHP
Pessoal, estou postando este tutorial, mas peço que se alguém que tenha conhecimento e puder aprimorar o conteúdo deste, por favor, sinta-se liberado, vou tentar explicar o máximo possível, estarei deixando os links das documentações de cada código usado aqui, foi ela que me ajudou muito, (eu não sabia nada) vamos lá...
Informação
| Antes de tudo tenha o vBulletin instalado na sua maquina, pois trabalharei em localhost. | |
Passo 1
- Crie 3 arquivos, sendo eles: index.php, config.php, mysql.class.php
Passo 2
- No seu arquivo index.php adicione as tags básicas do HTML (neste assunto não vou me aprofundar, já mandei um brinde o css básico do básico rsrs):
Código HTML:
<html>
<head>
<title>Teste web</title>
</head>
<style type="text/css">
body {
background: black;
}
* {
margin: 0;
padding: 0;
}
ul {
margin: 0;
padding: 0;
list-style: none;
}
ul li a{
font-size: 15px;
color: orange;
font-family: 'Arial', sans-serif;
text-decoration: underline;
}
ul li a:hover {
text-decoration: none;
}
</style>
<body> // aqui vai o código php</body>
</html>
Passo 3
- No arquivo config.php, vamos criar os defines que vamos utilizar, se você não sabe o que é um define veja mais [Only registered and activated users can see links. Click Here To Register...].
Então adicione:
Código PHP:
<?php
define('HOSTNAME','localhost'); #IP DO SEU SERVIDOR, COMO TRABALHAREMOS EM LOCALHOST É ÓBVIO QUE ESTE CAMPO É LOCALHOST ^^
define('HOSTUSER','root'); #SEU USUÁRIO MYSQL, POR PADRÃO QUASE TODOS SERVIDORES LOCAL É ROOT
define('PASSWORD',''); # SENHA DO SEU MYSQL, POR PADRÃO ALGUNS SERVIDORES COMO O MEU (XAMPP) NÃO CONTÉM SENHA
define('DATABASE','forum_vb'); # DATABASE DO SEU FÓRUM
define('DB_PREFIX','vb_'); # PREFIXO DAS TABELAS, SE SUAS TABELAS NÃO POSSUI PREFIXO, DEIXE 'vb_' VAZIO.
define('DB_LIMITE', 5); #LIMITE DE NOTÍCIAS A SEREM MOSTRADAS
define('LINK_FORUM', 'http://localhost:8095/forumvb'); # LINK DO SEU FÓRUM, NÃO ADICIONE A "/" NO FINAL!
?>
Passo 4
- Começando a programação, agora no arquivo mysql.class.php, escreva o código:
Código PHP:
<?php
if(class_exists('mysqlconnection') == FALSE) {
class mysqlconnection {
public function connect(){
if(!mysql_connect(HOSTNAME, HOSTUSER, HOSTPASS)) {
die(mysql_error());
}
if(!mysql_select_db(DATABASE)) {
die(mysql_error());
}
}
}
}
?>
Explicando o código acima:
Repare que fizemos uma verificação usando class_exists, o que a class_exists faz? Simplesmente ela checa se uma tal classe foi definida, veja que :
if(class_exists('mysqlconnection') == FALSE) está verificando se a nossa class logo abaixo existe, se for FALSE ela continua, se for TRUE mostra um erro como este:
Fatal error: Class 'mysqlconnection' not found in
veja mais exemplos aqui:
[Only registered and activated users can see links. Click Here To Register...]
Depois crias uma public function não vou entrar neste assunto agora, saiba o mínimo do PHP que você que não sabe vai entender :p veja exemplos de funções :
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
Depois verificamos se NÃO existe conexão com o mysql
[Only registered and activated users can see links. Click Here To Register...] carrega os nosso defines perceberam?
[Only registered and activated users can see links. Click Here To Register...] faz a mesma coisa porém ela verifica se existe conexão com banco de dados
No nosso caso a gente não esta verificando se existe, agente esta verificando se não existe veja que antes do [Only registered and activated users can see links. Click Here To Register...] e do [Only registered and activated users can see links. Click Here To Register...] colocamos um sinal (!) de negação, veja mais operadores em :
[Only registered and activated users can see links. Click Here To Register...]
Veja também que usamos o [Only registered and activated users can see links. Click Here To Register...] "Retorna o texto de erro da última função do MySQL".
Entenderam?
Passo 5
-Vejamos agora no index.php dentro do body adicione:
Código PHP:
<?php
$verificapost = mysql_query("SELECT threadid, title FROM ".DB_PREFIX."thread ORDER BY threadid ASC LIMIT ".DB_LIMITE." ");
for($i = 0; $i < mysql_num_rows($verificapost); $i++) {
$forumpost = mysql_fetch_row($verificapost);
?>
<ul>
<li><a href="<?php echo LINK_FORUM; ?>/showthread.php?<?php echo $forumpost[0]; ?>" target="_blank"><?php echo $forumpost[1]; ?></a></li>
</ul>
<?php } //atenção ! fechamento do for ?>
Explicando o código acima:
Primeiro de tudo, estude este código :D só assim pra você entender melhor.
Vejamos primeiro definimos uma [Only registered and activated users can see links. Click Here To Register...] que recebe o meu [Only registered and activated users can see links. Click Here To Register...] que "envia uma consulta para o meu MySQL". Repare que na Query utilizamos também os nosso defines do arquivo config.php
Logo em seguida criaremos um loop utilizando for, não vou me aprofundar no assunto, mas simplesmente ele cria um loop exemplo: para $i de 0, $i menor que $verficiapost vai adicionando $++, se embaralhou todo né? até por que não sei explicar muito bem esse famoso for, mas você pode ver a documentação:
[Only registered and activated users can see links. Click Here To Register...]
e por ultimo veja que
Código HTML:
<li><a href="<?php echo LINK_FORUM; ?>/showthread.php?<?php echo $forumpost[0]; ?>" target="_blank"><?php echo $forumpost[1]; ?></a></li>
$forumpost[0] acessa a primeira posição da minha Query que é threadid e $forumpost[1] acessa a segunda posição.
Ahh ia me esquecendo, para isso funcionar tem que chamar a nossa classe e nossa função no index.php.
acima de tudo adicone o código:
Código PHP:
<?php require_once("config.php"); require_once("mysql.class.php"); $connect = new mysqlconnection(); $connect->connect();?>
É isso galera, se virem erros ou explicações erradas, peço que por favor, me corrija sem dó ^^
Também sou novo na área de PHP e vou tentar passar sempre que possível o que eu aprendi, (conhecimentos).
Valeu galera.