Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Гостевуха, Делаю, неработает :(( 
:(
    Опции темы
TheLeader
  Дата 9.5.2006, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 19.11.2005
Где: Калининград

Репутация: нет
Всего: нет



Привет всем. Вот начал делать гостевуху на пхп + мускул.  Вот как всегда не работает ((

Файл config.php
Код

<?php

$config['MySQLHost'] = "localhost"; //Хост MySQL
$config['MySQLUser'] = "root"; // Имя поьзователя базы данных
$config['MySQLPass'] = ""; // Пароль базы данных
$config['MySQLDB'] = "guestbook"; //Имя базы данных
$config['MySQLTN'] = "posts"; //Имя таблицы базы
$config['MySQLPx'] = "zav"; //Перфикс

$admin['Login'] = "admin"; //Логин админа
$admin['Pass'] = "admin"; // Пароль админа

$design['Title'] = "Мега гостевуха"; // <title> гостевухи
$design['MsgPP'] = "10"; //Сообщений на страницу
$design['CLNV'] = "1"; //Кол-во ссылок рядом с выделеной
$design['NoP'] = "Сообщений нет"; // Текст когда нету сообщений


mysql_connect ($config['MySQLHost'], $config['MySQLUser'], $config['MySQLPass']) or die(mysql_error());
mysql_select_db($config['MySQLDB']) or die(mysql_error());
$TN = $config['MySQLPx']."_".$config['MySQLTN']; //Сосовляем перфикс+имя_таблицы
//$TodayDate = date("Y-m-d h:месяц:s");


?>


Файл functions.php
Код

<?

include ("config.php");

function Show () { //Функция сборки, ну хз как назвать!
  include ("./skin/header.tpl");
  include ("./skin/index.tpl");
  include ("./skin/footer.tpl");
}


$name = $_POST['name'];
$city = $_POST['city'];
$email =$_POST['email'];
$icq = $_POST['icq'];
$msg = $_POST['msg'];
$npage = $_GET['page'];


function add($name, $city, $email, $icq, $msg) { //Функция добавления записи
  $errors = "";
  
  if(empty($name))
  {
    $errors = $errors."Вы не ввели имя.<br>";
  } else {
    $name = trim($name);
    $name = htmlspecialchars(stripslashes($name));
  }
  
  if(empty($msg))
  {
    $errors = $errors."Вы не ввели сообщение.<br>";
  } else {
    $msg = trim($msg);
    $msg = htmlspecialchars(stripslashes($msg));
    /*
    Потом добавлю обработку..
    */
  }
  
  if ($errors == "")
  {
    $Query = ("INSERT INTO $TN VALUES ('$TodayDate', '$name', '$city', '$email', '$icq', '$msg')");
    mysql_db_query ($TN, $Query, $SQLC);
  }
  
}

// Считаем кол-во записей
$sql = "SELECT * FROM `".$TN."`";
$query = mysql_query($sql) or die(mysql_error());
$count = mysql_num_rows($query);

//Вывод сообщений.
function posts(){
  if ($count == 0)
  {
    $posts = $design['NoP'];
  } else {
    $CP = ceil($count / $design['MsgPP']);
    $PError = "0";
    
    
    if(empty($npage)) // Если не указана страница, показываем 1
    {
      $npage = "1";
    }
    
    if($npage > $CP) // Если ввели адрес вручную..
    {
      $PError = "1";
      $posts = "Hakers must die!!";
    }
    if ($npage < $CP) // Если ввели адрес вручную..
    {
      $PError = "1";
      $posts = "Hakers must die!!";
    }
    
    if($PError == 0)
    {
      if($design['MsgPP'] <= 1)
      {
        $posts = "Совсем дурак столько сообщений на страницу ставить?";
      } else {
      $NFPOP = ($design['MsgPP'] * $npage) - ($design['MsgPP'] - 1); //Расчет номера 1 поста на странице. Пойми формулу! :)
      $NLPOP = $design['MsgPP'] * $npage; //Расчет номера последнего поста на странице
      for($NFPOP; $NFPOP <= $NLPOP; $NFPOP++) //Вывод сообщений
      {

        $sql = "ALTER TABLE `".$TN."` ORDER BY `date` DESC"; //Сортируем по дате в обратном порядке (Свежее на верх)
        $query = mysql_query($sql) or die(mysql_error());
        $sql = "SELECT * FROM `".$TN."` LIMIT '".$nfpop."', '".$nfpop."'"; //Берем нужную строку
        $query = mysql_query($sql) or die(mysql_error());
        $row = mysql_fetch_object($query);

        $Ndate = $row->date;
        
        if ($Ndate == "") break; //Если записи не существует, прекращаем цикл.

        $Nname = $row->name;
        $Ncity = $row->city;
        $Nemail = $row->email;
        $Nicq = $row->icq;
        $Nmsg = $row->msg;
        
        $posts = $posts."
        
        <tr>
         <td><a href=\"mailto:$Nemail\">$Nname</a></td>
         <td>$Ndate</td>
        </tr>
        <tr>
         <td>Из города $Ncity</td>
         <td>ICQ - $Nicq</td>
        </tr>
        <tr>
         <td colspan=2>$Nmsg</td>
        </tr>";
      }
      }
    }
  }
  
  echo $posts;
  
}



?>


Файл index.php
Код

<?

include ("functions.php");

echo (show());

?>



Я хотел сделать чтобы дизайн был отдельно от кода, попрбовал сделать чтото типа темплейтов. Но так как не очень шарю в этом, сделал не верно.

./skin/header.tpl
Код

<html>
<head>
<title>

<? echo $design['Title']; ?>

</title>
</head>
<body>
<table width=750 border=1 align=center>
<tr height="150px">
<td colspan=2>Логос</td>
</tr>
<tr height="50px">
<td colspan=2>менюха</td>
</tr>

./skin/index.tpl
Код

<? echo posts(); ?>

./skin/footer.tpl
Код




</body>
</html>


Конечно пока сделано мало, но по идее должно хотябы выводить надпись СООБЩЕНИЙ НЕТ. Забивал базу немного инфой, писал в index.php echo (posts());
Все равно ничего не работает. Помогите найти ощибки и дайте советы.

Зарание благодарен. 

Это сообщение отредактировал(а) TheLeader - 9.5.2006, 17:03
PM MAIL ICQ   Вверх
TheLeader
Дата 9.5.2006, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 19.11.2005
Где: Калининград

Репутация: нет
Всего: нет



Незаметил кнопки редактирования сообщения, написал ещё 1, потом отредактил 1. Пришлось тут эту муть писать... 

Это сообщение отредактировал(а) TheLeader - 9.5.2006, 17:04
PM MAIL ICQ   Вверх
S.A.P.
Дата 9.5.2006, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 3
Всего: 71



у тебя переменные из функции posts() не видны. Надо их задавать через global 
PM MAIL   Вверх
TheLeader
Дата 9.5.2006, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 19.11.2005
Где: Калининград

Репутация: нет
Всего: нет



А неподскажешь как?  )) Насколько я понял и из других функций они не видны.
На примере функции posts() покажи как и куда надо  задавать. )) 
PM MAIL ICQ   Вверх
S.A.P.
Дата 9.5.2006, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 3
Всего: 71



Код

function posts()
{
    global $posts, $design;
}

и т.д. Только смотри, чтобы они с локальными не пересеклись. 

А вобще, честно говоря, проектирование модульной архитектуры тут далеко не на высоте... 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.