131313sd

Передача ID php

8 сообщений в этой теме

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

то в форме: 

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

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

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

131313sd понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
20 минут назад, sda сказал:

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

то в форме: 


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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, 131313sd сказал:

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

...

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

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

Поделиться сообщением


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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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 понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 21.06.2017 в 7:31 AM, c00x сказал:

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


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

 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу