Автор Тема: MCF - нова тема  (Прочетена 10036 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

kerkenez

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 2
  • -Получени: 14
  • Публикации: 1205
Re: MCF - нова тема
« Отговор #15 -: 04 Октомври 2011, 14:54:38 »
Цитат
Стойността на $post_id = (int)$_GET['post_id']; е винаги 0.
Има причина да е винаги 0 и по всяка вероятно не употребяваш правилно $_GET...
URL-то с което отваряш въпросния файл съдържа ли post_id ? Покажи го.
Другото възможно е че кастваш стринг... демек:
$a = 'string';
$b = (int)$a;
echo $b; // ще покаже 0 (нула)
Гледай уроците за $_POST и $_GET

ReDBuLL

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 36
Re: MCF - нова тема
« Отговор #16 -: 17 Ноември 2011, 11:02:09 »
Правя всичко както е в урока ама неми отваря темата а ме пренасочва към индекса ето го и кода
<?php
session_start
();
include 
'functions.php';
db_init();
$cat_id=(int)$_GET['id'];
if(
$cat_id>0)
{
$rs=run_q('SELECT name,active FROM cats WHERE cat_id='.$cat_id.' AND active=1');
if(
mysql_num_rows($rs)==1)
{
$row=mysql_fetch_assoc($rs);
site_title($row['name']);
footer();
}
else
{
header('Location: index.php');
exit;  
}
}
else
{
header('Location: index.php');
exit;
}

И не виждам да имам грешки моля помагайте :'(

NeDkU

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 5
Re: MCF - нова тема
« Отговор #17 -: 17 Ноември 2011, 12:18:45 »
Сложи по един die() с различен текст вътре пред двата хедъра за да може да се разбере кой от двата elsa
се изпълнява. После ще е по-лесно да се види какво не е наред.

ReDBuLL

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 36
Re: MCF - нова тема
« Отговор #18 -: 17 Ноември 2011, 12:39:57 »
Сложи по един die() с различен текст вътре пред двата хедъра за да може да се разбере кой от двата elsa
се изпълнява. После ще е по-лесно да се види какво не е наред.

Пак е същото  :'( ето виж
<?php

session_start
();
include 
'functions.php';
db_init();
$cat_id=(int)$_GET['id'];
if (
$cat_id>0
{
$rs run_q('SELECT name,cat_id,active FROM cat WHERE cat_id='.$cat_id.' AND active=1');
if (
mysql_num_rows($rs) == 1
{
$row=mysql_fetch_assoc($rs);
my_header($row['name']);
footer();

else 
{
header('Location: index.php') or die(('Темата не е активна!'));
exit;
}

else 
{
header('Location: index.php')or die(('Темата несъшествува!'));
exit;
}


NeDkU

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 5
Re: MCF - нова тема
« Отговор #19 -: 17 Ноември 2011, 12:58:47 »
Извинявай. Явно не се бях изразил правилно. Това което трябва да направиш е :

          die('Темата не е активна!');
        header('Location: index.php');
        exit;
    }
} else {
      die('Темата не съшествува!');
    header('Location: index.php');
   
   По този начин ще спреш изпълнението на кода преди да те пренасочи към index.php.
   Така ще разбереш защо те пренасочва и ще провериш дали заявката ти не открива тази тема,
   дали е активна, дали не съществува и т.н.
   Ако в браузъра ти изпише  "Темата несъшествува" значи cat_id не е с коректна стойност,
   ако ти ти изпише  "Темата не е активна" значи резултата от базата ти с данни не е коректен.

Stan

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 27
  • -Получени: 135
  • Публикации: 641
Re: MCF - нова тема
« Отговор #20 -: 17 Ноември 2011, 13:03:10 »
Щом те пренасочва значи едно от условията не е изпълнено и по точно, трябва да е второто където правиш проверка в базите данни - най-вероятно myslq_num_rows връща резултат 0 или пък още по-зле резултат по-голям от 1.Съветвам те да провериш sql заявката директно в phpmyadmin и да видиш какво ти връща, като замениш $cat_id с това на cat_id от някой от редовете в таблицата cat.Виж също дали някое число в cat_id в таблицата cat не се повтаря - ако се повтаря там ти е грашката ,което значи че не си задал auto_increment на полето.

ReDBuLL

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 36
Re: MCF - нова тема
« Отговор #21 -: 17 Ноември 2011, 13:32:23 »
Извинявай. Явно не се бях изразил правилно. Това което трябва да направиш е :

          die('Темата не е активна!');
        header('Location: index.php');
        exit;
    }
} else {
      die('Темата не съшествува!');
    header('Location: index.php');
   
   По този начин ще спреш изпълнението на кода преди да те пренасочи към index.php.
   Така ще разбереш защо те пренасочва и ще провериш дали заявката ти не открива тази тема,
   дали е активна, дали не съществува и т.н.
   Ако в браузъра ти изпише  "Темата несъшествува" значи cat_id не е с коректна стойност,
   ако ти ти изпише  "Темата не е активна" значи резултата от базата ти с данни не е коректен.

NeDkU

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 5
Re: MCF - нова тема
« Отговор #22 -: 17 Ноември 2011, 14:10:14 »
Прегледах ти набързо кода и заявките. Нямаш грешки там ориентирай
се към това което ти е казал abcd.

ReDBuLL

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 36
Re: MCF - нова тема
« Отговор #23 -: 17 Ноември 2011, 14:22:52 »
Прегледах ти набързо кода и заявките. Нямаш грешки там ориентирай
се към това което ти е казал abcd.

Нпаравих всичко което ми е казал ABCD в phpMyadmin и ми връща заявките както си трябва прегледах 5-ти заявките и няма греша в тях незнам защо прави така  :-\

Stan

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 27
  • -Получени: 135
  • Публикации: 641
Re: MCF - нова тема
« Отговор #24 -: 17 Ноември 2011, 15:06:43 »
Пробвах ти кода и както очаквах си е ок и върви при мен.Направи ми впечатление обаче,че кода който си постнал първия път избираш поле от таблица "cats" ,а после "cat" провери си името на таблицата и въвеждаш ли изобщо get параметър в url-a като тестваш ?
Код: PHP
  1. <?php
  2. include 'functions.php';
  3. connect_db();
  4. $cat_id=(int)$_GET['id'];
  5. if ($cat_id>0)
  6. {
  7. $rs=run_q('SELECT name,cat_id,active FROM cat WHERE cat_id='.$cat_id.' AND active=1');
  8. if (mysql_num_rows($rs) == 1)
  9. {
  10.         echo 'success';
  11. }
  12. else
  13. {
  14.  echo 'error';
  15. }
  16. }
  17. else
  18. {
  19. echo 'error';
  20. }
  21. ?>
  22.  

url в браузъра -> локалхост/паката на форума/topic.php?id=1
« Последна редакция: 17 Ноември 2011, 15:24:37 от abcd »

ReDBuLL

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 36
Re: MCF - нова тема
« Отговор #25 -: 17 Ноември 2011, 15:36:45 »
Пробвах ти кода и както очаквах си е ок и върви при мен.Направи ми впечатление обаче,че кода който си постнал първия път избираш поле от таблица "cats" ,а после "cat" провери си името на таблицата и въвеждаш ли изобщо get параметър в url-a като тестваш ?
Код: PHP
  1. <?php
  2. include 'functions.php';
  3. connect_db();
  4. $cat_id=(int)$_GET['id'];
  5. if ($cat_id>0)
  6. {
  7. $rs=run_q('SELECT name,cat_id,active FROM cat WHERE cat_id='.$cat_id.' AND active=1');
  8. if (mysql_num_rows($rs) == 1)
  9. {
  10.         echo 'success';
  11. }
  12. else
  13. {
  14.  echo 'error';
  15. }
  16. }
  17. else
  18. {
  19. echo 'error';
  20. }
  21. ?>
  22.  

url в браузъра -> локалхост/паката на форума/topic.php?id=1

Пак същото обаче като добавя в линк бара 1,2 и тнт ми изкарва Success ама неми го зарежда само

Stan

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 27
  • -Получени: 135
  • Публикации: 641
Re: MCF - нова тема
« Отговор #26 -: 17 Ноември 2011, 15:48:10 »
Какво значи "не ми го зарежда само" ?? Ако имаш предвид,че когато зареждаш само  topic.php те редиректва то точно така трябва да бъде.Виж условието if ($cat_id>0)  това значи,че id трябва да има и, че трябва да е по голямо от 0, за да не те редиректва към index.php.

ReDBuLL

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 36
Re: MCF - нова тема
« Отговор #27 -: 17 Ноември 2011, 16:02:39 »
Какво значи "не ми го зарежда само" ?? Ако имаш предвид,че когато зареждаш само  topic.php те редиректва то точно така трябва да бъде.Виж условието if ($cat_id>0)  това значи,че id трябва да има и, че трябва да е по голямо от 0, за да не те редиректва към index.php.

Еми да имам 2 записа в Group_cat и два в cat няма повтарящи се ИД-та всички са ауто инкримент и няма как да е по малко от нула слевдователно би трябвало да ми ги зарежда по горе съм дамл целия ми код погледни го сам не намирам грешка и незнам какво да направя вече

Stan

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 27
  • -Получени: 135
  • Публикации: 641
Re: MCF - нова тема
« Отговор #28 -: 17 Ноември 2011, 16:29:29 »
Ееее  естествено, че няма да ти ги зареди виж какво имаш в кода след if (mysql_num_rows($rs) == 1) , ако условието е вярно ти просто пълниш масив $row със стойности на ключове съответно стойности на имената на полетата от намерения ред от таблицата в базата и до там ти свършва кода... тоест още по просто ще то го обясна ако ти дава празен екран на topic.php?id=1 или 2 то кода ти е абсолютно верен !! Защо мислиш, че със моя код ти изписва success ? - защото това съм му казал да прави след като намери един резултат от базата данни.И защо тръгваш да го тестваш кода и да се чудиш какво не е наред като това не е целия код от видеото ... изгледай го докрай и ще видиш как се появяват темите ти чрез цикъла while,тествай там където тества Иван и накрая ако имаш проблеми тогава питай, а не да се чудим какво имаш напредвид.  ;)
« Последна редакция: 17 Ноември 2011, 16:31:05 от abcd »

ReDBuLL

  • Newbie
  • *
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 36
Re: MCF - нова тема
« Отговор #29 -: 17 Ноември 2011, 16:45:18 »
Маи с тебе неможем да се разберем http://89.25.24.67/nfs/topic.php?id=2

а като цъкна на самата тема ме препраща  е това немога д аразбера