Sign in to follow this  
Followers 0
131313sd

Передача ID php

8 posts in this topic

<?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

Share this post


Link to post
Share on other sites

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

то в форме: 

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

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

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

131313sd likes this

Share this post


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пасибо получилось. Долго я тупил, была идея, но почему-то не решился её попробовать

Share this post


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 инъекция. Надеюсь, это не продакшн :)

Share this post


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. Тут еще править и править, например, подсчет просмотров в самом начала отлично показывает в каком году родилась бабушка соседки песика тети двоюродной сестры мужа сына кума отца первого президента Малазии, но никак не количество просмотров.

Share this post


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) - будет сложно поддерживать код.

131313sd likes this

Share this post


Link to post
Share on other sites

Не стоит загружать человека сверх меры, тут пока уровень не тот.

Share this post


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) - будет сложно поддерживать код.

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.