Jump to content

Recommended Posts

<?php
    header("Content-Type: text/html; charset=UTF-8");
 if (isset($_GET['id'])) {$id=$_GET['id'];}
 if (!isset($id)) {$id=1;}
include ("blocks/bd.php"); /*Подключение к бд*/
$result = mysql_query("SELECT * FROM tovars1 WHERE id='$id'",$db);

$resultq = mysql_query("SELECT * FROM tovars1 WHERE id='$id'",$db);/*для тайтла*/
$myrowq = mysql_fetch_array ($resultq);
if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору sd68rus@yandex.ru. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}

if (mysql_num_rows($result) > 0)

{
$myrow = mysql_fetch_array($result); 
$new_view = $myrow["view"] + 1;
$update = mysql_query ("UPDATE tovars1 SET view='$new_view' WHERE id='$id'",$db);


}

else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}


?>

<html>
<head>

<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="description" content="<?php echo $myrowq['meta_d']; ?> ">
<meta name="keywords" content="<?php echo $myrowq['meta_k']; ?> ">

<title><?php echo $myrowq['title']; ?></title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php include("blocks/header.php");?>





<style>
  header {
      box-shadow: 0px 0px 30px #eeeded;
	  }
</style>


<section class="good-page">
  <div class="wrap">
    <div class="good-top-cat">



<?php 


printf ("Каталог товаров: <a href='#'>%s</a>
	</div>
	<div class='good-left'>
	  <div class='fox-gallery'>
         <div id='large'>
         <img src='admin/%s' title='' alt='' />
         </div>

         <div class='clear'></div>
       </div>
	</div>
	<div class='good-right'>
	   <h1>%s</h1>
	   <div class='good-top-cat'>
	      Производитель: <a href='#'>%s</a>
	   </div>
	   <div class='good-page-cost'>%s руб.</div>",$myrow['date'],$myrow['img'],$myrow['title'],$myrow['author'],$myrow['price'],$myrow['text'], $myrow['view']);
?>



<form action='order.php' method='post' name='form'>
<input name='id' type='hidden' value='$myrowq[id];'>
  <input class="good-page-gocart" type='submit' name='zakaz' value='Оформить заказ'>
</form>
  <div class="clear"></div>
 <h2 class="ninopis">Описание товара:</h2>
	 <p class="minoper"><?php echo $myrowq['text'];?></p>

	   <div class="clear"></div>
	   
	   
	 
	   
	   
	   
	   
	   
	</div>
	<div class="clear"></div>
  </div>
<div class="good-page-text">
  <div class="wrap">
	 




<?php

echo "<h2>Комментарии к товару</h2>";
 if (isset($_GET['id'])) {$id=$_GET['id'];}
 
$result4=mysql_query ("SELECT * FROM komment WHERE post='$id'",$db);

if(mysql_num_rows($result4)>0)
	{
if ($result4 == true)

{
$myrow4= mysql_fetch_array($result4);	


do

{
printf ("<div class='commentd'><div class='comaut'>%s</div><div class='comdate'>Дата добавления:%s</div><div class='commtext'>%s</div></div>", $myrow4['author'],$myrow4['date'],$myrow4['text']);	
	}
while ($myrow4= mysql_fetch_array($result4));
}
}
else {echo "<p>Комментариев ещё не добавлено</p>";}

$result5 = mysql_query("SELECT img FROM komment_seting ",$db);
$myrow5 = mysql_fetch_array($result5); 


?>

<br><br><h2>Добавить комментарий</h2>
<form action="comment.php" method="post"> 
<input name="author" class="addcom" type="text" placeholder="Ваше имя">
<textarea class="addcom" name="text" placeholder="Ваш комментарий"></textarea>
<p>Введите сумму с картинки<br><img style='margin-top:5px;' src="<?php echo $myrow5['img'];?>" width="80" height="40"><input style='margin-bottom:3px;' name="pr" type="text" size="5"  maxlenght="5"></p><br>
<input class="addcom" name="pr" type="text" placeholder="Ответ на пример"><br>
<input class="addcom-but" type="submit" name="sub_com" value="Добавить комментарий">
</form>







  </div>
</div>
</section>











<?php include ("blocks/footer.php");



?>
</body>
</html>

 

<?php


    header("Content-Type: text/html; charset=UTF-8");
include ("blocks/bd.php"); /*Подключение к бд*/

if (isset($_POST['id'])) {$id = $_POST['id'];}
if (isset($_POST['author'])) {$author = $_POST['author'];}
if (isset($_POST['text'])) {$text = $_POST['text'];}
if (isset($_POST['pr'])) {$pr = $_POST['pr'];}
if (isset($_POST['sub_com'])) {$sub_com = $_POST['sub_com'];}



if (isset($sub_com)) 
{
$id = $_POST['id'];	
if (isset($author)) {trim($author);}
else {$author="";}
if (isset($text)) {trim($text);}
else {$text="";}
		
if (empty($author) or empty($text)) {exit ("<p>Вы ввели не всю информацию, вернитесь назад и заполните все поля. <br>.Вернуться на <a href='index.php'>Главную</a>");}
echo $id;
echo 'id';

$author = stripslashes($author);
$text = stripslashes($text);
$author = htmlspecialchars($author);
$text = htmlspecialchars($text);		
$result = mysql_query ("SELECT sum FROM komment_seting",$db);
$myrow = mysql_fetch_array($result);

if($pr==$myrow['sum'])


{
	$date = date("Y-m-d");
	$result6 = mysql_query("INSERT INTO komment (post,author,text,date) values ('$id','$author','$text','$date')",$db);
	$result13 = mysql_query ("SELECT id FROM tovars1",$db);

	$adress = "sd68rus@yandex.ru";
	$subject = "новый комментарий на сайте";
	$result7 = mysql_query ("SELECT title FROM tovars1 WHERE id='$id'",$db);
	$myrow7 = mysql_fetch_array ($result7);
	$post_title = $myrow7["title"];
	$message = "Появился комментарий к заметке - ".$post_title."\nКомментарий добавил(а): ".$author."\nТекст комментария: ".$text."\nСсылка на заметку: http://localhost/phpblog/view_tovars1.php?id=".$id."";
mail($address,$subject,$message,"Content-type:text/plain; Charset=utf-8\r\n");


exit ();
}

else {exit ("<p>Вы ввели не всю информацию, вернитесь назад и заполните все поля. <br>.Вернуться на <a href='index.php'>Главную</a>");}


}

?>

Подскажите почему во второй кусок кода, не передается ID

Link to post
Share on other sites

если второй кусок, это comment.php

то в форме: 

>>>>       <form action="comment.php" method="post"> 

id не передается..

надо добавить в нее <input type="hidden" name="id" value="<?php=$id?>">

Link to post
Share on other sites
20 минут назад, sda сказал:

если второй кусок, это comment.php

то в форме: 


>>>>       <form action="comment.php" method="post"> 

id не передается..

надо добавить в нее <input type="hidden" name="id" value="<?php=$id?>">

Cпасибо получилось. Долго я тупил, была идея, но почему-то не решился её попробовать

Link to post
Share on other sites
5 часов назад, 131313sd сказал:

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

...

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

Адская SQL инъекция. Надеюсь, это не продакшн :)

Link to post
Share on other sites
14 часа назад, 131313sd сказал:

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

Адское все, начиная с.

Для ТС:
1. Учите человеческий синтаксис, смотрите чужой код. Цитата выше — так не надо, если Вы не индус, конечно. Конструкция

$id = isset($_POST['id']) ? $_POST['id'] : 1;

сделает все то же и не будет вызывать нервную дрожь.

2. MySQL...

$result4=mysql_query ("SELECT * FROM komment WHERE post='$id'",$db);

а) не используйте расширение mysql_, пользуйтесь mysqli_
б) выносите текст запроса из функции в переменную — на больших запросах это сослужит Вам хорошую службу.
в) названия таблиц в БД — Google Translate в помощь, название таблицы "tovats1" — адский ад, не вижу ни одной причины не назвать ее "goods", например.
г) иньекция же.

$sql = 'SELECT * FROM `comments` WHERE `id`=' . (int)$id;
$result = mysqli_query( $sql, $db );

3. Таблица komment_seting — защита от роботов? Тогда не забудьте сделать ее уникальной для пользователей (чтобы два пользователя не получали одни код) и вообще генерите ее при создании формы, в нынешнем виде защита работать не будет.

4. Тут еще править и править, например, подсчет просмотров в самом начала отлично показывает в каком году родилась бабушка соседки песика тети двоюродной сестры мужа сына кума отца первого президента Малазии, но никак не количество просмотров.

Link to post
Share on other sites
6 часов назад, Lukas сказал:

$id = isset($_POST['id']) ? $_POST['id'] : 1;

Лучше все же так:

$id = filter_input( INPUT_POST, 'id', FILTER_VALIDATE_INT, [ 'options' => ['default' => 1 ] ] );

 

6 часов назад, Lukas сказал:

$sql = 'SELECT * FROM `comments` WHERE `id`=' . (int)$id;

$result = mysqli_query( $sql, $db );

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

Ко всему вышесказанному добавлю, что не стоит смешивать логику (php) и представление (html) - будет сложно поддерживать код.

Link to post
Share on other sites
В 21.06.2017 в 7:31 AM, c00x сказал:

Лучше все же так:


$id = filter_input( INPUT_POST, 'id', FILTER_VALIDATE_INT, [ 'options' => ['default' => 1 ] ] );

 

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

Ко всему вышесказанному добавлю, что не стоит смешивать логику (php) и представление (html) - будет сложно поддерживать код.

Толком ничего не понял, но спасибо

Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...