кривые руки помогите выпрямить!

12
C8
На сайте с 01.09.2010
Offline
4
1142

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

Значит так, пункты меню выводятся, специальный класс для активного пункта меню тоже присваивается, НО не выводится никакая информация а именно - текст, заголовок, ключевые слова дескрипшион, попытался сделать чтобы пункт меню - ГЛАВНАЯ - по умолчанию выводил информацию если не кликать на этот пункт (то есть перешли не по ссылке с передаваемым параметром id через браузерную строку), так вообще теперь выскакивает ошибка такого простого рода:

Parse error: syntax error, unexpected '{' in /var/www/u0938907/data/www/prostodub.ru/index.php on line 4

вот этот код страницы index.php:

<?php

include ("db_connect.php");

if (!isset($_GET['id'])

{

echo '$result = mysql_query ("SELECT * FROM top_menu WHERE id=\'1\'",$db)';

}

else

{

echo '$result = mysql_query ("SELECT * FROM top_menu WHERE id=\'$id\'",$db)';

}

$myrow = mysql_fetch_array ($result);

?>

<!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=utf-8" />

<title></title>

<meta name="title" content="<?php $myrow["title"];?>" />

<meta name="keywords" content="<?php $myrow["meta_k"];?>" />

<meta name="description" content="<?php $myrow["meta_d"];?>" />

<link rel="stylesheet" href="style.css" type="text/css" media="screen, projection" />

</head>

вот код вывода меню:

<?php

$result = mysql_query ("SELECT * FROM top_menu",$db);

if (!isset($id)){$id=1;}

while ($myrow = mysql_fetch_array ($result))

{

if ($id==$myrow['page'])

{

$c = " class='focus'";

}

else

{

$c = null;

}

echo "<td".$c."><a href='wiev_top_menu.php?id=".$myrow['id']."'>".$myrow['title']."</a></td>";

}

?>

а вот код страницы которая отвечает за вывод информации по пунктам меню по id:

<?php

include ("db_connect.php");

if (isset($_GET['id'])){$id = $_GET['id'];}

$result = mysql_query ("SELECT * FROM top_menu WHERE id='$id'",$db);

$myrow = mysql_fetch_array ($result);

?>

<!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=utf-8" />

<title></title>

<meta name="title" content="<?php $myrow["title"];?>" />

<meta name="keywords" content="<?php $myrow["meta_k"];?>" />

<meta name="description" content="<?php $myrow["meta_d"];?>" />

<link rel="stylesheet" href="style.css" type="text/css" media="screen, projection" />

</head>

<body>

<div id="wrapper">

<div id="header">

<table width="1010px" height="393px" cellpadding="0" cellspacing="0">

<tr>

<td class="head"></td>

</tr>

<tr>

<td class="top">

<table class="top_menu" cellpadding="0" cellspacing="0">

<tr>

<?php

include ("top_menu.php");?>

</tr>

</table>

</td>

</tr>

</table>

</div><!-- #header-->

<div id="middle">

<div id="container">

<div id="content">

<?php $myrow["text"];?>

</div><!-- #content-->

</div><!-- #container-->

<?php include ("sidebar.php");?>

</div><!-- #middle-->

<?php include ("footer.php");?>

</div><!-- #wrapper -->

</body>

</html>

AlikZP
На сайте с 22.11.2009
Offline
107
#1

if (!isset($_GET['id'])

вторая скобка закрывающаяся где?

А вообще код дырявый очень.

1. Отключите register_globals

2. Используйте $id = intval($_GET['id']);

Website CMS: быстрая, удобная, недорогая! Вечная лицензия за 45$ (/ru/forum/524503) Яся - быстрый поиск фото для товаров. OpenCart/ocStore. Дополнение. (/ru/forum/665287) Грамотная верстка ваших макетов (/ru/forum/comment/8853216)
C8
На сайте с 01.09.2010
Offline
4
#2

доставил скобку пропущенную (как я её не увидел???) создал .htaccess и в нем прописал php_flag register_globals off, а потом поменял в нужном месте на $id = intval($_GET['id']);

Итог сайт появился но поплыл, вывелся кусок php кода в верху сайта

вот ссылка на сайт prostodub.ru

PM
На сайте с 30.08.2010
Offline
48
#3

Я вижу Вы уже не в первый раз пишите на форум вопрос. :)

Мой вам добрый совет - если хотите изучать PHP программирование, то результаты своих экспериментов не выкладывайте в продакшен. Если хотите сайт для себя/уже взяли обязательства перед другими - возьмите и сделайте сайт на CMS. Так будет проще и быстрее.

prog_monster добавил 01.09.2010 в 13:30

По поводу строчки и ошибки, напишите так

$result = mysql_query ("SELECT * FROM top_menu WHERE id='1'",$db);

вместо

echo '$result = mysql_query ("SELECT * FROM top_menu WHERE id=\'1\'",$db)';

C8
На сайте с 01.09.2010
Offline
4
#4

я уже 2 года что и делаю что только сайты на cms, честное слово надоело, хочу научится делать сайты с нуля на php со своей админкой, тут не так давно посмотрел Попова, и решил сделать свой первый сайт с нуля своему знакомому за так, только вот на практике что то очень туго идет, камни всплывают так где и не ожидаешь, помогите пожалуйста ко может, очень буду Вам благодарен...

cleric-88 добавил 01.09.2010 в 13:37

спасибо исправил, стало намного лучше но информация из базы не подставляется никуда почемуто...

что делать то с этим?

PM
На сайте с 30.08.2010
Offline
48
#5

Если уж очень хочется сделать свой фарш сайт на своем движке, то хотя бы отделите логику выбора от скриптов.

Для этого следующим образом, в .htaccess пропишите:

RewriteEngine on

RewriteCond $1 !^(index.php|i|js|css|gallery|swf|robots.txt)

RewriteRule ^(.*)$ /index.php/$1 [L]

Таким образом Вы будете пересылать всё запросы в скрипт index.php (кроме запросов к соответствующим папкам i, css, js, gallery, robots.txt)

В самом index.php Напишите примерно следующее:

<?php

//разбиваем запрос по сегментам
$arURI = explode('/',$_SERVER['REQUEST_URI']);
//подключаем конкретный скрипт в зависимости от пути
switch($arURI[1])
{
default: require_once 'inc/main.php'; break;
case("news"): require_once 'inc/news.php'; break;
case("about"): require_once 'inc/news.php'; break;
case("forum"): require_once 'inc/forum.php'; break;
}
?>

А вообще лучше начните с изучения синтаксиса языка, его основ.

AlikZP
На сайте с 22.11.2009
Offline
107
#6
prog_monster:

Для этого следующим образом, в .htaccess пропишите:

RewriteEngine on
RewriteCond $1 !^(index.php|i|js|css|gallery|swf|robots.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

В таком случае, лучше

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]

Таким образом Вы будете пересылать всё запросы в скрипт index.php (кроме запросов, если обращение идет к существующей папке или файлу)

PM
На сайте с 30.08.2010
Offline
48
#7
AlikZP:
В таком случае, лучше
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]


Таким образом Вы будете пересылать всё запросы в скрипт index.php (кроме запросов, если обращение идет к существующей папке или файлу)

Всё верно, я предпочитаю назначать правила сам 🚬

C8
На сайте с 01.09.2010
Offline
4
#8

Вы конечно меня извините, но мне не совсем понятна на кой это делать надо и что там в этих кусках кода которые Вы мне выложили делается, а самое главное решится ли с помощью этого моя проблема по поводу вывода данных из базы которые в данный момент выводится упорно не хотят?

PM
На сайте с 30.08.2010
Offline
48
#9
cleric-88:
Вы конечно меня извините, но мне не совсем понятна на кой это делать надо и что там в этих кусках кода которые Вы мне выложили делается, а самое главное решится ли с помощью этого моя проблема по поводу вывода данных из базы которые в данный момент выводится упорно не хотят?

Так решится намного более глубокая проблема. 🙅

Скинь пожалуйста полностью код index.php и я постараюсь помочь с твоим конкретным вопросом.

C8
На сайте с 01.09.2010
Offline
4
#10

index.php

<?php

include ("db_connect.php");

if (!isset($_GET['id']))

{

$result = mysql_query ("SELECT * FROM top_menu WHERE id='1'",$db);

}

else

{

$result = mysql_query ("SELECT * FROM top_menu WHERE id='$id'",$db);

}

$myrow = mysql_fetch_array ($result);

?>

<!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=utf-8" />

<title></title>

<meta name="title" content="<?php $myrow["title"];?>" />

<meta name="keywords" content="<?php $myrow["meta_k"];?>" />

<meta name="description" content="<?php $myrow["meta_d"];?>" />

<link rel="stylesheet" href="style.css" type="text/css" media="screen, projection" />

</head>

<body>

<div id="wrapper">

<div id="header">

<table width="1010px" height="393px" cellpadding="0" cellspacing="0">

<tr>

<td class="head"></td>

</tr>

<tr>

<td class="top">

<table class="top_menu" cellpadding="0" cellspacing="0">

<tr>

<?php

include ("top_menu.php");?>

</tr>

</table>

</td>

</tr>

</table>

</div><!-- #header-->

<div id="middle">

<div id="container">

<div id="content">

<?php $myrow["text"];?>

</div><!-- #content-->

</div><!-- #container-->

<?php include ("sidebar.php");?>

</div><!-- #middle-->

<?php include ("footer.php");?>

</div><!-- #wrapper -->

</body>

</html>

cleric-88 добавил 01.09.2010 в 14:24

wiev_top_menu.php

<?php

include ("db_connect.php");

if (isset($_GET['id'])){$id = intval($_GET['id']);}

$result = mysql_query ("SELECT * FROM top_menu WHERE id='$id'",$db);

$myrow = mysql_fetch_array ($result);

?>

<!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=utf-8" />

<title></title>

<meta name="title" content="<?php $myrow["title"];?>" />

<meta name="keywords" content="<?php $myrow["meta_k"];?>" />

<meta name="description" content="<?php $myrow["meta_d"];?>" />

<link rel="stylesheet" href="style.css" type="text/css" media="screen, projection" />

</head>

<body>

<div id="wrapper">

<div id="header">

<table width="1010px" height="393px" cellpadding="0" cellspacing="0">

<tr>

<td class="head"></td>

</tr>

<tr>

<td class="top">

<table class="top_menu" cellpadding="0" cellspacing="0">

<tr>

<?php

include ("top_menu.php");?>

</tr>

</table>

</td>

</tr>

</table>

</div><!-- #header-->

<div id="middle">

<div id="container">

<div id="content">

<?php $myrow["text"];?>

</div><!-- #content-->

</div><!-- #container-->

<?php include ("sidebar.php");?>

</div><!-- #middle-->

<?php include ("footer.php");?>

</div><!-- #wrapper -->

</body>

</html>

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий