• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

saramgsilva

[PHP]GuestBook

33 mensagens neste tópico

Topico de discusao inicial aqui

GuestBook elaborado por bLd

Bem eu deixo aqui um tutorial de Guestbook que acabei agr mesmo de criar.

É muito simples e a partir dele podem alterar o que voçes bem entenderem :)

Tem duas paginas:

guestbook.php (visualizar as assinaturas)

guestbook_ass.php (assinar o guestbook)

Vamos começar pelo mysql:

CREATE TABLE `guestbook` (
  `id` int(11) NOT NULL auto_increment,
  `nome` varchar(50) NOT NULL default '',
  `mail` varchar(30) NOT NULL default '',
  `mensagem` longtext NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

Aqui fica o codigo das duas paginas!

guestbook.php

<?php require_once('Connections/conn.php'); ?>
<?php
$currentPage = $_SERVER["PHP_SELF"];

$maxRows_Rs_guest = 10;
$pageNum_Rs_guest = 0;
if (isset($_GET['pageNum_Rs_guest'])) {
  $pageNum_Rs_guest = $_GET['pageNum_Rs_guest'];
}
$startRow_Rs_guest = $pageNum_Rs_guest * $maxRows_Rs_guest;

mysql_select_db($database_conn, $conn);
$query_Rs_guest = "SELECT * FROM guestbook";
$query_limit_Rs_guest = sprintf("%s LIMIT %d, %d", $query_Rs_guest, $startRow_Rs_guest, $maxRows_Rs_guest);
$Rs_guest = mysql_query($query_limit_Rs_guest, $conn) or die(mysql_error());
$row_Rs_guest = mysql_fetch_assoc($Rs_guest);

if (isset($_GET['totalRows_Rs_guest'])) {
  $totalRows_Rs_guest = $_GET['totalRows_Rs_guest'];
} else {
  $all_Rs_guest = mysql_query($query_Rs_guest);
  $totalRows_Rs_guest = mysql_num_rows($all_Rs_guest);
}
$totalPages_Rs_guest = ceil($totalRows_Rs_guest/$maxRows_Rs_guest)-1;

$queryString_Rs_guest = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_Rs_guest") == false && 
        stristr($param, "totalRows_Rs_guest") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_Rs_guest = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_Rs_guest = sprintf("&totalRows_Rs_guest=%d%s", $totalRows_Rs_guest, $queryString_Rs_guest);
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Guestbook</title>
<style type="text/css">
<!--
.style8 {
font-size: 10px;
font-family: Verdana, Arial, Helvetica, sans-serif;
color: #0066FF;
}
.style9 {font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; }
-->
</style>
</head>

<body>
<p align="center"><a href="guestbook_ass.php">Assinar Guestbook</a></p>
<table width="455" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <th width="114" valign="top" bordercolor="#0066FF" class="style8" scope="col"><span class="style8"></span></th>
    <th width="10" scope="col"> </th>
    <th width="331" scope="col"> </th>
  </tr>
  <?php do { ?>
    <tr>
      <th valign="top" bordercolor="#0066FF" class="style8" scope="row"><span class="style9">Nome:</span></th>
      <td> </td>
      <td><?php echo $row_Rs_guest['nome']; ?></td>
    </tr>
    <tr>
      <th valign="top" bordercolor="#0066FF" class="style8" scope="row"><span class="style9">Email:</span></th>
      <td> </td>
      <td><?php echo $row_Rs_guest['mail']; ?></td>
    </tr>
    <tr>
      <th height="85" valign="top" bordercolor="#0066FF" class="style8" scope="row"><span class="style9">Mensagem:</span></th>
      <td> </td>
      <td valign="top"><?php echo $row_Rs_guest['mensagem']; ?></td>
    </tr>
    <?php } while ($row_Rs_guest = mysql_fetch_assoc($Rs_guest)); ?>
  <tr>
    <th valign="top" scope="row"> </th>
    <td> </td>
    <td> </td>
  </tr>
</table>
<p align="center">
<table border="0" width="50%" align="center">
  <tr>
    <td width="23%" align="center"><?php if ($pageNum_Rs_guest > 0) { // Show if not first page ?>
          <a href="<?php printf("%s?pageNum_Rs_guest=%d%s", $currentPage, 0, $queryString_Rs_guest); ?>">First</a>
          <?php } // Show if not first page ?>
    </td>
    <td width="31%" align="center"><?php if ($pageNum_Rs_guest > 0) { // Show if not first page ?>
          <a href="<?php printf("%s?pageNum_Rs_guest=%d%s", $currentPage, max(0, $pageNum_Rs_guest - 1), $queryString_Rs_guest); ?>">Previous</a>
          <?php } // Show if not first page ?>
    </td>
    <td width="23%" align="center"><?php if ($pageNum_Rs_guest < $totalPages_Rs_guest) { // Show if not last page ?>
          <a href="<?php printf("%s?pageNum_Rs_guest=%d%s", $currentPage, min($totalPages_Rs_guest, $pageNum_Rs_guest + 1), $queryString_Rs_guest); ?>">Next</a>
          <?php } // Show if not last page ?>
    </td>
    <td width="23%" align="center"><?php if ($pageNum_Rs_guest < $totalPages_Rs_guest) { // Show if not last page ?>
          <a href="<?php printf("%s?pageNum_Rs_guest=%d%s", $currentPage, $totalPages_Rs_guest, $queryString_Rs_guest); ?>">Last</a>
          <?php } // Show if not last page ?>
    </td>
  </tr>
</table>
</p>
</body>
</html>
<?php
mysql_free_result($Rs_guest);
?>

E o guestbook_ass.php

<?php require_once('Connections/conn.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO guestbook (nome, mail, mensagem) VALUES (%s, %s, %s)",
                       GetSQLValueString($_POST['nome_txt'], "text"),
                       GetSQLValueString($_POST['email_txt'], "text"),
                       GetSQLValueString($_POST['msg_txt'], "text"));

  mysql_select_db($database_conn, $conn);
  $Result1 = mysql_query($insertSQL, $conn) or die(mysql_error());

  $insertGoTo = "guestbook.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Guestbook</title>
</head>

<body>
<form action="<?php echo $editFormAction; ?>" id="form1" name="form1" method="POST">
  <table width="760" height="156" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <th width="90" scope="col"> </th>
      <th width="14" scope="col"> </th>
      <th width="656" scope="col"> </th>
    </tr>
    <tr>
      <th height="19" scope="row">Nome:</th>
      <td> </td>
      <td><input name="nome_txt" type="text" id="nome_txt" /></td>
    </tr>
    <tr>
      <th height="19" scope="row">Email:</th>
      <td> </td>
      <td><input name="email_txt" type="text" id="email_txt" /></td>
    </tr>
    <tr>
      <th height="37" scope="row">Mensagem:</th>
      <td> </td>
      <td><textarea name="msg_txt" cols="30" rows="5" id="msg_txt"></textarea></td>
    </tr>
    <tr>
      <th height="19" scope="row"> </th>
      <td> </td>
      <td> </td>
    </tr>
    <tr>
      <th scope="row"> </th>
      <td> </td>
      <td><input type="submit" name="Submit" value="Enviar" /></td>
    </tr>
  </table>
  
  <input type="hidden" name="MM_insert" value="form1">
</form>
</body>
</html>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só um senão: no código, podias inserir alguns comentários. A inserção de comentários faz com que o código seja mais perceptível aos olhos de outros programadores e ajuda os mais novatos a aprenderem como implementar certas coisas. :)

De resto, bom tutorial.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

INSERT INTO `guestbook` VALUES (1, 'Bruno', 'bruno@ptuser.org', 'teste de msg');
INSERT INTO `guestbook` VALUES (2, 'teste', 'teste', 'teste');

Eu achei bem nao por pk assim ng via os comentarios dos meus testes.

Mas sendo assim basta introduzir esse dois codigos :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu fiz um Guestbook mais simples, para quem nao preceber o da tofas...

e tudo num unico fixeiro .php

Requesitos:

Saltar Logo para o DEFAULT nos cases, porque é o primeiro passo que a página faz, por isso é mais facil de esplicar assim

MySql:

Tabela Guestbook

Campos:

  id tipo inteiro limite 255 (por exemplo)

  de tipo varchar limite 50 (aqui vai ser o remetente da mensagem a ser postada)

  mensagem tipo text (aqui vai ser armazenada a mensagem)

  date tipo varchar limite 50

pronto, axo que é só...

aki vai:

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

<title>Mensagens - GuestBook</title>

<style type="text/css">
<!--
body {
background-color: #156564;
background-image: url(lol9.jpg);
}
.style2 {
color: #0099FF;
font-size: 18px;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
.style1{
color:#000000;
font-size:18px;
font-family:Geneva, Arial, Helvetica, sans-serif
}
-->
</style><body>

</head>
<table width="499" border="1" bordercolor="#CC3300" cellpadding="0" cellspacing="0" align="center">
  <!--DWLayoutTable-->
  
  <tr>
    <td width="495" height="185" valign="top" bgcolor="#CCCCCC">


<?php
/* Ligacao a base de dados, substituir:
SERVER: pelo vosso servidor
USER: pelo vosso user da base de dados
PASS: pela vossa password da base de dados
BASE_DE_DADOS: pela vossa Base de dados */

$dbh=mysql_connect ("SERVER", "USER", "PASS") or die ('Não é possivel aceder à base de dados porque: ' . mysql_error());
mysql_select_db ("BASE_DE_DADOS"); 

?>

<?php
// aqui a variavel $var vai receber um valor introduzido no endereço por exemplo index.php?action=lol a variavel $var vai ficar com o conteudo "lol", que é para depois usar os cases em vês de 2 páginas, como é cases e a variavel var logo no principio tem o conteudo "" e nao tenho nenhuma case para esse conteudo irá ser redireccionado para o default.

$var=$_GET["action"];
//abrir os cases
switch($var){
//case Enviar
case "enviar":

//bem vindo ao case enviar XD lol aqui é onde vai receber o conteudo do formulario para enviar para a base de dados...
//a variavel date vai ficar com a data de hoje, e esta a função.
$date = date("j/n/Y");
//a variavel nome vai receber o conteudo do formulario onde voce inseriu o nome..
$nome = $_POST["nome"];
//a variavel mensagem vai receber o conteudo do formulario onde voce interiu a mensagem, o nl2br é para fazer paragrafos ao longo do texto, respectivamente pelos paragrafos k meter..
$mensagem = nl2br($_POST["mensagem"]);
//query para inserir o conteudo das variaveis na base de dados
$query= "INSERT INTO `Guestbook` (`de` , `mensagem`, `date` ) VALUES ('$nome', '$mensagem',''$date')";
//se a query for bem sucedida entao apresenta o texto: "mensagem enviada" e uma hiperligação para voltar ao index.php
if(mysql_query($query)){
echo "mensagem enviada!!!<br>";
echo '<a href=index.php>Voltar</a>';
//senao apresenta o texto: "mensagem nao foi enviada ocorreu um erro..." e uma hiperligacao para voltar ao index.php
}else{
echo "mensagem nao foi enviada ocorreu um erro...<br>";
echo '<a href=index.php>Voltar</a>';
}

//fexar o case ESTA ACABADO O SCRIPT DO GUESTBOOK 
break;

//entao, o primeiro passo que a pagina faz é entrar aqui. e fazer o que o script manda...

default:

//aqui fazemos uma query para  bd, que vai seleccionar o conteudo da tabela Guestbook
$query="SELECT * FROM `Guestbook` WHERE 1";
//fazemos a query para dentro da variavel $nome, que vai ficar uma array. os nomes das variaveis podem ser alterados por si, desde que use direito e mude em todo lado..
$nome=mysql_query($query); 
/* agora fazemos um ciclo para imprimir no ecrã tudo o que tiver a array $nome tiver, nao sei bem explicar o ciclo XD mas sei que é para isso.
ou seja imprime o que tiver na tabela, menos o id, se quiser tb pode imprimir o id, basta meter um echo $titulo[1], dependendo da posição desse campo...*/
 		while($titulo = mysql_fetch_row($nome)){
                                                                //imprime o remetente da mensagem...	
		echo '<br><span class="style2">De: </span>'.'<span class="style1">'.$titulo[1].'</span>';
                                                                //imprime a data do local..
		echo '<br><span class="style2">Data: </span>'.'<span class="style1">'.$titulo[4]."</span><br>";
                                                               //e por fim imprime a mensagem
		echo '<br><span class="style2">Mensagem: </span><br>'.'<span class="style1">'.$titulo[2].'</span><br>';
                       //separador das mensagens... fica mais bonito, assim pode separar umas das outras..			echo "==================================================================================";
// fexar o ciclo
}


//aqui fica o formulario para inserir na base de dados

?>
//action e para onde o form vai mandar os dados, neste caso vai mandar para a nossa case enviar, porque vai meter o conteudo enviar na variavel e entao vai entrar na case "enviar" precebido? 
<form action="index.php?action=enviar" method="post">
Nome:
  <br />//aqui e a insercao do nome
    <input type="text" name="nome"/>
  <br />
    Mensagem:  
<br />
// agora a da mensagem
    <textarea name="mensagem" cols = "70" rows="8"></textarea><br /> 
//estes sao os botoes submit para submeter o formulario e o reset para limpar tudo
<input type="submit" value="Enviar"/>
<input type="reset" value="Limpar tudo"/>  
//fexar o formulario
</form>
<?
//e fexar o case default, agora faz de conta que uma pessoa mete texto no formulario, entao o script vai saltar para o case "enviar". dirija-se agora ao case"enviar"
break;
}
?></td>
  </tr>
</table>
</body>
</html>
<?php
//fexa a ligacao a base de dados
mysql_close($dbh);

?>

não pude meter assentos porque o forum tava a delirar com os assentos :S

podem ver o resultado disto aqui

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas sou novo nestas areas, poderias dar-me uma ajuda? onde insiro os dados tipo user da bd, pass.. etc  podem ajudar.me com isso? oBrigado

:-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens de ter uma base de dados MySQL. Sabes minimamente trabalhar com MySQL?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim tenho um conhecimento minimo, mas consigo criar a tabela, mas estou falando na conexao do guestbook com a tabela da BD, ou seja nome da bd etc..  :down:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso em PHP, para te conectares a uma base de dados, é simples. Se procurares na net, encontras n tutoriais. ;)

//Não te esqueças de mudar o localhost, root e a password se for necessário.
$link = mysql_connect("localhost", "root", "");
mysql_select_db("nome_da_base_de_dados");

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Onde posso inserir esse pequeno codigo?  :-[

Desde ja agradeço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Substitui o require_once('Connections/conn.php'); dos dois ficheiros por isso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, o erro que dava anteriormente desapareceu, mas veio outro.. :s

Fiz o que me pediu ao digitar a mensagem da.me o seguinte erro:

Notice: Undefined variable: database_conn in C:\Program Files\EasyPHP5.3.0\www\guest_bd\guestbook_ass.php on line 40

Notice: Undefined variable: conn in C:\Program Files\EasyPHP5.3.0\www\guest_bd\guestbook_ass.php on line 40

Warning: mysql_select_db() expects parameter 2 to be resource, null given in C:\Program Files\EasyPHP5.3.0\www\guest_bd\guestbook_ass.php on line 40

Notice: Undefined variable: conn in C:\Program Files\EasyPHP5.3.0\www\guest_bd\guestbook_ass.php on line 41

Warning: mysql_query() expects parameter 2 to be resource, null given in C:\Program Files\EasyPHP5.3.0\www\guest_bd\guestbook_ass.php on line 41

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fui ao phpmyadmin e digitei bd para a criação da base de dados, logo cliquei em sql, e fiz past do codigo da tabela..

sos codigos que tenho é os seguintes:

guestbook.php

<?php $link = mysql_connect("localhost", "root", "");
mysql_select_db("bd"); ?>
<?php
$currentPage = $_SERVER["PHP_SELF"];

$maxRows_Rs_guest = 10;
$pageNum_Rs_guest = 0;
if (isset($_GET['pageNum_Rs_guest'])) {
  $pageNum_Rs_guest = $_GET['pageNum_Rs_guest'];
}
$startRow_Rs_guest = $pageNum_Rs_guest * $maxRows_Rs_guest;

mysql_select_db($database_conn, $conn);
$query_Rs_guest = "SELECT * FROM guestbook";
$query_limit_Rs_guest = sprintf("%s LIMIT %d, %d", $query_Rs_guest, $startRow_Rs_guest, $maxRows_Rs_guest);
$Rs_guest = mysql_query($query_limit_Rs_guest, $conn) or die(mysql_error());
$row_Rs_guest = mysql_fetch_assoc($Rs_guest);

if (isset($_GET['totalRows_Rs_guest'])) {
  $totalRows_Rs_guest = $_GET['totalRows_Rs_guest'];
} else {
  $all_Rs_guest = mysql_query($query_Rs_guest);
  $totalRows_Rs_guest = mysql_num_rows($all_Rs_guest);
}
$totalPages_Rs_guest = ceil($totalRows_Rs_guest/$maxRows_Rs_guest)-1;

$queryString_Rs_guest = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_Rs_guest") == false && 
        stristr($param, "totalRows_Rs_guest") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_Rs_guest = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_Rs_guest = sprintf("&totalRows_Rs_guest=%d%s", $totalRows_Rs_guest, $queryString_Rs_guest);
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Guestbook</title>
<style type="text/css">
<!--
.style8 {
        font-size: 10px;
        font-family: Verdana, Arial, Helvetica, sans-serif;
        color: #0066FF;
}
.style9 {font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; }
-->
</style>
</head>

<body>
<p align="center"><a href="guestbook_ass.php">Assinar Guestbook</a></p>
<table width="455" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <th width="114" valign="top" bordercolor="#0066FF" class="style8" scope="col"><span class="style8"></span></th>
    <th width="10" scope="col"> </th>
    <th width="331" scope="col"> </th>
  </tr>
  <?php do { ?>
    <tr>
      <th valign="top" bordercolor="#0066FF" class="style8" scope="row"><span class="style9">Nome:</span></th>
      <td> </td>
      <td><?php echo $row_Rs_guest['nome']; ?></td>
    </tr>
    <tr>
      <th valign="top" bordercolor="#0066FF" class="style8" scope="row"><span class="style9">Email:</span></th>
      <td> </td>
      <td><?php echo $row_Rs_guest['mail']; ?></td>
    </tr>
    <tr>
      <th height="85" valign="top" bordercolor="#0066FF" class="style8" scope="row"><span class="style9">Mensagem:</span></th>
      <td> </td>
      <td valign="top"><?php echo $row_Rs_guest['mensagem']; ?></td>
    </tr>
    <?php } while ($row_Rs_guest = mysql_fetch_assoc($Rs_guest)); ?>
  <tr>
    <th valign="top" scope="row"> </th>
    <td> </td>
    <td> </td>
  </tr>
</table>
<p align="center">
<table border="0" width="50%" align="center">
  <tr>
    <td width="23%" align="center"><?php if ($pageNum_Rs_guest > 0) { // Show if not first page ?>
          <a href="<?php printf("%s?pageNum_Rs_guest=%d%s", $currentPage, 0, $queryString_Rs_guest); ?>">First</a>
          <?php } // Show if not first page ?>
    </td>
    <td width="31%" align="center"><?php if ($pageNum_Rs_guest > 0) { // Show if not first page ?>
          <a href="<?php printf("%s?pageNum_Rs_guest=%d%s", $currentPage, max(0, $pageNum_Rs_guest - 1), $queryString_Rs_guest); ?>">Previous</a>
          <?php } // Show if not first page ?>
    </td>
    <td width="23%" align="center"><?php if ($pageNum_Rs_guest < $totalPages_Rs_guest) { // Show if not last page ?>
          <a href="<?php printf("%s?pageNum_Rs_guest=%d%s", $currentPage, min($totalPages_Rs_guest, $pageNum_Rs_guest + 1), $queryString_Rs_guest); ?>">Next</a>
          <?php } // Show if not last page ?>
    </td>
    <td width="23%" align="center"><?php if ($pageNum_Rs_guest < $totalPages_Rs_guest) { // Show if not last page ?>
          <a href="<?php printf("%s?pageNum_Rs_guest=%d%s", $currentPage, $totalPages_Rs_guest, $queryString_Rs_guest); ?>">Last</a>
          <?php } // Show if not last page ?>
    </td>
  </tr>
</table>
</p>
</body>
</html>
<?php
mysql_free_result($Rs_guest);
?>

guestbook_ass.php

<?php $link = mysql_connect("localhost", "root", "");
mysql_select_db("bd"); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO guestbook (nome, mail, mensagem) VALUES (%s, %s, %s)",
                       GetSQLValueString($_POST['nome_txt'], "text"),
                       GetSQLValueString($_POST['email_txt'], "text"),
                       GetSQLValueString($_POST['msg_txt'], "text"));

  mysql_select_db($database_conn, $conn);
  $Result1 = mysql_query($insertSQL, $conn) or die(mysql_error());

  $insertGoTo = "guestbook.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Guestbook</title>
</head>

<body>
<form action="<?php echo $editFormAction; ?>" id="form1" name="form1" method="POST">
  <table width="760" height="156" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <th width="90" scope="col"> </th>
      <th width="14" scope="col"> </th>
      <th width="656" scope="col"> </th>
    </tr>
    <tr>
      <th height="19" scope="row">Nome:</th>
      <td> </td>
      <td><input name="nome_txt" type="text" id="nome_txt" /></td>
    </tr>
    <tr>
      <th height="19" scope="row">Email:</th>
      <td> </td>
      <td><input name="email_txt" type="text" id="email_txt" /></td>
    </tr>
    <tr>
      <th height="37" scope="row">Mensagem:</th>
      <td> </td>
      <td><textarea name="msg_txt" cols="30" rows="5" id="msg_txt"></textarea></td>
    </tr>
    <tr>
      <th height="19" scope="row"> </th>
      <td> </td>
      <td> </td>
    </tr>
    <tr>
      <th scope="row"> </th>
      <td> </td>
      <td><input type="submit" name="Submit" value="Enviar" /></td>
    </tr>
  </table>
  
  <input type="hidden" name="MM_insert" value="form1">
</form>
</body>
</html>

Agradeço imenso a ajuda :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas os erros estão no guestbook_ass.php, como dizem as mensagens. Era esse que eu queria. :confused:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tu mostraste-me o ficheiro guestbook.php, mas os erros estão no ficheiro guestbook_ass.php. É o segundo ficheiro que eu preciso que tu me mostres. :confused:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que tipo de erro se encontra?

guestbook_ass.php

<?php $link = mysql_connect("localhost", "root", "");
mysql_select_db("bd"); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO guestbook (nome, mail, mensagem) VALUES (%s, %s, %s)",
                       GetSQLValueString($_POST['nome_txt'], "text"),
                       GetSQLValueString($_POST['email_txt'], "text"),
                       GetSQLValueString($_POST['msg_txt'], "text"));

  mysql_select_db($database_conn, $conn);
  $Result1 = mysql_query($insertSQL, $conn) or die(mysql_error());

  $insertGoTo = "guestbook.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Guestbook</title>
</head>

<body>
<form action="<?php echo $editFormAction; ?>" id="form1" name="form1" method="POST">
  <table width="760" height="156" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <th width="90" scope="col"> </th>
      <th width="14" scope="col"> </th>
      <th width="656" scope="col"> </th>
    </tr>
    <tr>
      <th height="19" scope="row">Nome:</th>
      <td> </td>
      <td><input name="nome_txt" type="text" id="nome_txt" /></td>
    </tr>
    <tr>
      <th height="19" scope="row">Email:</th>
      <td> </td>
      <td><input name="email_txt" type="text" id="email_txt" /></td>
    </tr>
    <tr>
      <th height="37" scope="row">Mensagem:</th>
      <td> </td>
      <td><textarea name="msg_txt" cols="30" rows="5" id="msg_txt"></textarea></td>
    </tr>
    <tr>
      <th height="19" scope="row"> </th>
      <td> </td>
      <td> </td>
    </tr>
    <tr>
      <th scope="row"> </th>
      <td> </td>
      <td><input type="submit" name="Submit" value="Enviar" /></td>
    </tr>
  </table>
  
  <input type="hidden" name="MM_insert" value="form1">
</form>
</body>
</html>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Assim já deve funcionar:

guestbook_ass.php

<?php $link = mysql_connect("localhost", "root", "");
mysql_select_db("bd"); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO guestbook (nome, mail, mensagem) VALUES (\"%s\", \"%s\", \"%s\")",
                       GetSQLValueString($_POST['nome_txt'], "text"),
                       GetSQLValueString($_POST['email_txt'], "text"),
                       GetSQLValueString($_POST['msg_txt'], "text"));

  $Result1 = mysql_query($insertSQL, $link) or die(mysql_error());

  $insertGoTo = "guestbook.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Guestbook</title>
</head>

<body>
<form action="<?php echo $editFormAction; ?>" id="form1" name="form1" method="POST">
  <table width="760" height="156" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <th width="90" scope="col"> </th>
      <th width="14" scope="col"> </th>
      <th width="656" scope="col"> </th>
    </tr>
    <tr>
      <th height="19" scope="row">Nome:</th>
      <td> </td>
      <td><input name="nome_txt" type="text" id="nome_txt" /></td>
    </tr>
    <tr>
      <th height="19" scope="row">Email:</th>
      <td> </td>
      <td><input name="email_txt" type="text" id="email_txt" /></td>
    </tr>
    <tr>
      <th height="37" scope="row">Mensagem:</th>
      <td> </td>
      <td><textarea name="msg_txt" cols="30" rows="5" id="msg_txt"></textarea></td>
    </tr>
    <tr>
      <th height="19" scope="row"> </th>
      <td> </td>
      <td> </td>
    </tr>
    <tr>
      <th scope="row"> </th>
      <td> </td>
      <td><input type="submit" name="Submit" value="Enviar" /></td>
    </tr>
  </table>

  <input type="hidden" name="MM_insert" value="form1">
</form>
</body>
</html>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem.. Ainda não esta resultando.. a assinatura esta funcionando, mas ao confirmar.. da-me o seguinte erro.

Notice: Undefined variable: database_conn in C:\Program Files\EasyPHP5.3.0\www\guest_bd\guestbook.php on line 13

Notice: Undefined variable: conn in C:\Program Files\EasyPHP5.3.0\www\guest_bd\guestbook.php on line 13

Warning: mysql_select_db() expects parameter 2 to be resource, null given in C:\Program Files\EasyPHP5.3.0\www\guest_bd\guestbook.php on line 13

Notice: Undefined variable: conn in C:\Program Files\EasyPHP5.3.0\www\guest_bd\guestbook.php on line 16

Warning: mysql_query() expects parameter 2 to be resource, null given in C:\Program Files\EasyPHP5.3.0\www\guest_bd\guestbook.php on line 16

:S  :confused:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Agora mete isto no ficheiro guestbook.php. Em principio já deve funcionar. :confused:

<?php $link = mysql_connect("localhost", "root", "");
mysql_select_db("bd"); ?>
<?php
$currentPage = $_SERVER["PHP_SELF"];

$maxRows_Rs_guest = 10;
$pageNum_Rs_guest = 0;
if (isset($_GET['pageNum_Rs_guest'])) {
  $pageNum_Rs_guest = $_GET['pageNum_Rs_guest'];
}
$startRow_Rs_guest = $pageNum_Rs_guest * $maxRows_Rs_guest;

$query_Rs_guest = "SELECT * FROM guestbook";
$query_limit_Rs_guest = sprintf("%s LIMIT %d, %d", $query_Rs_guest, $startRow_Rs_guest, $maxRows_Rs_guest);
$Rs_guest = mysql_query($query_limit_Rs_guest, $link) or die(mysql_error());
$row_Rs_guest = mysql_fetch_assoc($Rs_guest);

if (isset($_GET['totalRows_Rs_guest'])) {
  $totalRows_Rs_guest = $_GET['totalRows_Rs_guest'];
} else {
  $all_Rs_guest = mysql_query($query_Rs_guest);
  $totalRows_Rs_guest = mysql_num_rows($all_Rs_guest);
}
$totalPages_Rs_guest = ceil($totalRows_Rs_guest/$maxRows_Rs_guest)-1;

$queryString_Rs_guest = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_Rs_guest") == false &&
        stristr($param, "totalRows_Rs_guest") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_Rs_guest = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_Rs_guest = sprintf("&totalRows_Rs_guest=%d%s", $totalRows_Rs_guest, $queryString_Rs_guest);
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Guestbook</title>
<style type="text/css">
<!--
.style8 {
        font-size: 10px;
        font-family: Verdana, Arial, Helvetica, sans-serif;
        color: #0066FF;
}
.style9 {font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; }
-->
</style>
</head>

<body>
<p align="center"><a href="guestbook_ass.php">Assinar Guestbook</a></p>
<table width="455" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <th width="114" valign="top" bordercolor="#0066FF" class="style8" scope="col"><span class="style8"></span></th>
    <th width="10" scope="col"> </th>
    <th width="331" scope="col"> </th>
  </tr>
  <?php do { ?>
    <tr>
      <th valign="top" bordercolor="#0066FF" class="style8" scope="row"><span class="style9">Nome:</span></th>
      <td> </td>
      <td><?php echo $row_Rs_guest['nome']; ?></td>
    </tr>
    <tr>
      <th valign="top" bordercolor="#0066FF" class="style8" scope="row"><span class="style9">Email:</span></th>
      <td> </td>
      <td><?php echo $row_Rs_guest['mail']; ?></td>
    </tr>
    <tr>
      <th height="85" valign="top" bordercolor="#0066FF" class="style8" scope="row"><span class="style9">Mensagem:</span></th>
      <td> </td>
      <td valign="top"><?php echo $row_Rs_guest['mensagem']; ?></td>
    </tr>
    <?php } while ($row_Rs_guest = mysql_fetch_assoc($Rs_guest)); ?>
  <tr>
    <th valign="top" scope="row"> </th>
    <td> </td>
    <td> </td>
  </tr>
</table>
<p align="center">
<table border="0" width="50%" align="center">
  <tr>
    <td width="23%" align="center"><?php if ($pageNum_Rs_guest > 0) { // Show if not first page ?>
          <a href="<?php printf("%s?pageNum_Rs_guest=%d%s", $currentPage, 0, $queryString_Rs_guest); ?>">First</a>
          <?php } // Show if not first page ?>
    </td>
    <td width="31%" align="center"><?php if ($pageNum_Rs_guest > 0) { // Show if not first page ?>
          <a href="<?php printf("%s?pageNum_Rs_guest=%d%s", $currentPage, max(0, $pageNum_Rs_guest - 1), $queryString_Rs_guest); ?>">Previous</a>
          <?php } // Show if not first page ?>
    </td>
    <td width="23%" align="center"><?php if ($pageNum_Rs_guest < $totalPages_Rs_guest) { // Show if not last page ?>
          <a href="<?php printf("%s?pageNum_Rs_guest=%d%s", $currentPage, min($totalPages_Rs_guest, $pageNum_Rs_guest + 1), $queryString_Rs_guest); ?>">Next</a>
          <?php } // Show if not last page ?>
    </td>
    <td width="23%" align="center"><?php if ($pageNum_Rs_guest < $totalPages_Rs_guest) { // Show if not last page ?>
          <a href="<?php printf("%s?pageNum_Rs_guest=%d%s", $currentPage, $totalPages_Rs_guest, $queryString_Rs_guest); ?>">Last</a>
          <?php } // Show if not last page ?>
    </td>
  </tr>
</table>
</p>
</body>
</html>
<?php
mysql_free_result($Rs_guest);
?>

guestbook_ass.php

<?php $link = mysql_connect("localhost", "root", "");
mysql_select_db("bd"); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO guestbook (nome, mail, mensagem) VALUES (%s, %s, %s)",
                       GetSQLValueString($_POST['nome_txt'], "text"),
                       GetSQLValueString($_POST['email_txt'], "text"),
                       GetSQLValueString($_POST['msg_txt'], "text"));

  mysql_select_db($database_conn, $conn);
  $Result1 = mysql_query($insertSQL, $conn) or die(mysql_error());

  $insertGoTo = "guestbook.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Guestbook</title>
</head>

<body>
<form action="<?php echo $editFormAction; ?>" id="form1" name="form1" method="POST">
  <table width="760" height="156" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <th width="90" scope="col"> </th>
      <th width="14" scope="col"> </th>
      <th width="656" scope="col"> </th>
    </tr>
    <tr>
      <th height="19" scope="row">Nome:</th>
      <td> </td>
      <td><input name="nome_txt" type="text" id="nome_txt" /></td>
    </tr>
    <tr>
      <th height="19" scope="row">Email:</th>
      <td> </td>
      <td><input name="email_txt" type="text" id="email_txt" /></td>
    </tr>
    <tr>
      <th height="37" scope="row">Mensagem:</th>
      <td> </td>
      <td><textarea name="msg_txt" cols="30" rows="5" id="msg_txt"></textarea></td>
    </tr>
    <tr>
      <th height="19" scope="row"> </th>
      <td> </td>
      <td> </td>
    </tr>
    <tr>
      <th scope="row"> </th>
      <td> </td>
      <td><input type="submit" name="Submit" value="Enviar" /></td>
    </tr>
  </table>

  <input type="hidden" name="MM_insert" value="form1">
</form>
</body>
</html>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esta Funcionando 5 Estrelas Agradeço Imenso, Muito Bom forum!  :cheesygrin: :confused:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, visto que o codigo funciona 5 estrelas, acham que da para polo mais composto?  Tipo, usando data hora.. e mais alguma coisa, isto tudo para Melhorar as minhas skills  :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Claro que dá. Podes até gravar o IP, etc. Se procurares pelo Google deves encontrar tutoriais para obter datas, etc. :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora