ФорумПрограммированиеPHP для идиотов → Прошу помощи, ошибка : Undefined variable

Прошу помощи, ошибка : Undefined variable

  • Женя

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 12 мая 2012 г. 20:29

    Вообщем есть файл: random_tov.php , в котором вывод случайных 5-ти товаров.
    Под каждым товаром есть ссылка "подробно", <a href="./2.php?cat= '.$myrow['cat'].' &id='.$myrow['id'].'"> подробно</a>
    при переходе на которую - открывается файл: 2.php, где вся инфа о товаре…
    Ругается на 6-тую строку в файле 2.php… Undefined variable: id in C:\wamp\www\sportfood\2.php on line 6
    Вроде все правильно объявлено, прошу помощи…..


    random_tov.php

    <?php
    include ("mysql.php");
    ?>
    <p>Случайные товары</p>

    <?php
    $res=mysql_query("SELECT * FROM products WHERE id ORDER BY RAND() LIMIT 5 ");
    $myrow=mysql_fetch_array($res);
    do
    {
    //вывод данных из таблицы
    echo '
    '.$myrow['name'].' <br>
    <img src="'.$myrow['img'].'" <br>
    Категория:'.$myrow['cat'].' <br>

    <a href="./2.php?cat= '.$myrow['cat'].' &id='.$myrow['id'].'"> подробно</a>
    ';
    }
    while($myrow = mysql_fetch_array($res));
    ?>

    <?php

    if (!isset($_GET['cat']))
    {
    include '2.php';
    }


    ?>




    2.php


    <?php
    include ("mysql.php");

    if ($_GET['id'])
    {
    $query = "SELECT * FROM products WHERE id='$id' ";
    $get = mysql_query($query);
    while ($myrow = mysql_fetch_array($get))
    {
    //вывод данных из таблицы
    echo '
    '.$myrow['name'].'
    <br>
    <p>'.$myrow['cat'].' </p>
    <p>'.$myrow['id'].' </p>
    <img src="'.$myrow['img'].'"
    '.$myrow['text'].'
    Цена: '.$myrow['price'].'

    ';

    }
    }
    ?>
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 12 мая 2012 г. 23:19, спустя 2 часа 49 минут 55 секунд

    Женя, извини за грубость, ты идиот? Надо что-то присвоить $id перед использованием. Про это тебе и сообщает PHP.
    $_GET['id'] и $id это не одно и то же, если не включен register_globals. А он не должен быть включен!
    Сделай так

    <?php
    include ("mysql.php");

    $id = isset($_GET['id']) ? intval($_GET['id']) : 0;
    if ($id)
    {
    $query = "SELECT * FROM products WHERE id='$id' ";
    Спустя 152 сек.
    Такая штука с intval убережет тебя от SQL Injection. Делай по аналогии со всеми целочисленными параметрами.
    ιιlllιlllι унц-унц
  • kostyl

    Сообщения: 5203 Репутация: N Группа: Джедаи

    Spritz 13 мая 2012 г. 2:43, спустя 3 часа 23 минуты 23 секунды

    Да, было бы не плохо скрыть посты определенных юзверов…
  • Женя

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 13 мая 2012 г. 3:56, спустя 1 час 13 минут 7 секунд


    Женя, извини за грубость, ты идиот? Надо что-то присвоить $id перед использованием. Про это тебе и сообщает PHP.
    $_GET['id'] и $id это не одно и то же, если не включен register_globals. А он не должен быть включен!
    Сделай так

    <?php
    include ("mysql.php");

    $id = isset($_GET['id']) ? intval($_GET['id']) : 0;
    if ($id)
    {
    $query = "SELECT * FROM products WHERE id='$id' ";
    Спустя 152 сек.
    Такая штука с intval убережет тебя от SQL Injection. Делай по аналогии со всеми целочисленными параметрами.



    Спасибо большое, прошу прощение за невнимательность, писал в 3 часа ночи, мозги уже кипели….
    Спустя 195 сек.
    Я ЛЮБЛЮ ЭТОТ ФОРУМ!!!!!!!!!!!!!!!!!
  • kostyl

    Сообщения: 5203 Репутация: N Группа: Джедаи

    Spritz 13 мая 2012 г. 4:25, спустя 28 минут 41 секунду

    Спасибо большое, прошу прощение за невнимательность, писал в 3 часа ночи, мозги уже кипели….

    ты нихуя не шаришь, так что не пизди
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 13 мая 2012 г. 5:53, спустя 1 час 28 минут 39 секунд

    Если человека никто не будет обсирать, то он может подумать что умный, поэтому Женя - ты мудак, иди учись
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 13 мая 2012 г. 8:01, спустя 2 часа 7 минут 20 секунд

    МУДАКИ
    Сапожник без сапог
  • ABYSS

    Сообщения: 1 Репутация: N Группа: Кто попало

    Spritz 15 мая 2012 г. 7:24, спустя 1 день 23 часа 23 минуты

    1.
    <?php
    include("mysql.php");

    print '<p>Случайные товары</p>';

    $sql = 'SELECT * FROM products WHERE id ORDER BY RAND() LIMIT 5';
    $query = mysql_query($sql);
    if($query){
    while($row = mysql_fetch_array($query)){
    print $row['name'].'<br><img src="'.$row['img'].'"><br>Категория: '.$row['cat'].'<a href="./2.php?cat= '.$row['cat'].' &id='.$row['id'].'"> подробнее..</a>'
    }
    }

    if (!isset($_GET['cat']))
    {
    include('2.php');
    }
    ?>

    2.
    <?php
    @include_once("mysql.php");

    if($_GET['id']){
    $sql = 'SELECT * FROM products WHERE id='.mysql_real_escape_string($_GET['id']);
    $query2 = mysql_query($sql);
    while ($row2 = mysql_fetch_array(query2))
    {
    print $row2['name'].'<br><p>'.$row2['cat'].' </p><p>'.$row2['id'].' </p><img src="'.$row2['img'].'"'.$row2['text'].' Цена: '.$row2['price'];
    }
    }
    ?>
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 15 мая 2012 г. 7:38, спустя 14 минут 4 секунды

    Сапожник без сапог

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