ФорумПрограммированиеPHP для идиотов → Не покупается товар ( инет -магазин )

Не покупается товар ( инет -магазин )

  • Женя

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

    Spritz 28 февраля 2012 г. 18:37

    Помогите пожалуйста решить проблему, в моем магазине, при нажатии на кнопку "купить", должно быть написано " Спасибо за покупку!" , в моём случае, пишет: "К сожалению в данный момент заказ невозможен по техническим причинам. Попробуйте сделать заказ позже."
    Вот код, вроде же все правильно написано, форма передает в "act=spasibo", что не так то?

    <?php 
    error_reporting(0);

    function template()
    {
    return include(&quot;./includes/mysql.php&quot;);
    }


    function shop_list_cat($shop_query){
    get_cat($shop_query);
    };

    function shop_catalog_show($prod)
    {
    echo &quot;$prod&quot;;
    $result = mysql_query(&quot;SELECT * FROM products WHERE cat=&#39;$prod&#39; &quot;);
    if (!$result) {
    echo &quot;Выборка не удалась!<br>&quot;;
    exit (mysql_error());
    }
    if ( mysql_num_rows($result) > 0) {
    $products = mysql_fetch_array($result);
    }
    else {
    exit ( &quot;База данных пуста!&quot;);
    }
    do{
    echo &#39;
    <span class=&quot;cat_head&quot;>&#39;.$products[&#39;name&#39;].&#39;</span>
    <br><img src=&quot;./img/kat_fon.png&quot; height=&quot;5&quot; width=&quot;670&quot; />
    <table width=&quot;700&quot; height=&quot;100&quot; border=&quot;0&quot;>
    <tr>
    <td width=&quot;283&quot; height=&quot;207&quot; align=&quot;left&quot; valign=&quot;top&quot;><p><img src=&quot;&#39;.$products[&#39;img&#39;].&#39;&quot; height=&quot;219&quot; /></p></td>
    <td width=&quot;408&quot; align=&quot;left&quot; valign=&quot;top&quot; class=&quot;description&quot;><p>&#39;.$products[&#39;text&#39;].&#39; </p></td>
    </tr><tr>
    <td align=&quot;left&quot; valign=&quot;middle&quot;> <a href=&quot;./catalog.php?act=buy&amp;item=&#39;.$products[&#39;name&#39;].&#39;&amp;price=&#39;.$products[&#39;price&#39;].&#39;&quot;><IMG SRC=&quot;./img/buy.gif&quot; ALT=&quot;КУПИТЬ!&quot;></a></td>
    <td align=&quot;left&quot; valign=&quot;middle&quot;><strong class=&quot;price&quot;>&#39;.$products[&#39;price&#39;].&#39;</strong></td>
    </tr>
    </table><br/><!–<br/><br/> –>
    &#39;;
    } while ($products = mysql_fetch_array($result));


    };



    function shop_say_spasibo($item,$price,$name,$addr,$phone){

    if ($name == &#39;&#39; OR $addr == &#39;&#39; OR $phone == &#39;&#39;){
    echo &#39;Заполните все поля.<br><input type=&quot;button&quot; value=&quot;Заполнить&quot; onclick=&quot;history.back()&quot;>&#39;;
    exit;
    };



    shop_mail($item,$price,$name,$addr,$phone);

    echo &#39;
    <div align=&quot;center&quot;><br/>
    Спасибо за покупку!<br/>
    </div>

    Вы заказали<br/><br/>
    Наименование: &#39;.$item.&#39;<br/>
    Цена: &#39;.$price.&#39;<br/>
    С доставкой по адресу: &#39;.$addr.&#39;<br/>
    <div align=&quot;center&quot;><br/>

    <br/><br/>
    </div>
    &#39;;
    };






    function shop_buy($shop_item_name,$shop_item_price){
    echo &#39;
    <div>
    <form id=&quot;form1&quot; name=&quot;form1&quot; method=&quot;post&quot; action=&quot;./catalog.php?act=spasibo&quot;>
    <table width=&quot;550&quot; border=&quot;0&quot; align=&quot;left&quot;>
    <tr>
    <td width=&quot;140&quot; align=&quot;left&quot; valign=&quot;top&quot;><strong>Товар:</strong></td>
    <td width=&quot;353&quot; align=&quot;left&quot; valign=&quot;top&quot;>&#39;.$shop_item_name.&#39;</td>
    </tr><tr>
    <td align=&quot;left&quot; valign=&quot;top&quot;><strong>Цена:</strong></td>
    <td align=&quot;left&quot; valign=&quot;top&quot;>&#39;.$shop_item_price.&#39; грн.</td>
    </tr><tr>
    <td align=&quot;left&quot; valign=&quot;top&quot;><strong>Ваше имя:</strong></td>
    <td align=&quot;left&quot; valign=&quot;top&quot;><input name=&quot;name&quot; type=&quot;text&quot; id=&quot;name&quot; style=&quot;border:thin dashed #CCC&quot; size=&quot;60&quot; /></td>
    </tr><tr>
    <td align=&quot;left&quot; valign=&quot;top&quot;><strong>Адрес доставки:</strong></td>
    <td align=&quot;left&quot; valign=&quot;top&quot;><input name=&quot;addr&quot; type=&quot;text&quot; id=&quot;addr&quot; style=&quot;border:thin dashed #CCC&quot; size=&quot;60&quot; /></td>
    </tr><tr>
    <td align=&quot;left&quot; valign=&quot;top&quot;><strong>Номер телефона:</strong></td>
    <td align=&quot;left&quot; valign=&quot;top&quot;><input name=&quot;phone&quot; type=&quot;text&quot; id=&quot;phone&quot; style=&quot;border:thin dashed #CCC&quot; size=&quot;60&quot; /></td>
    </tr><tr>
    <td colspan=&quot;2&quot;><div align=&quot;center&quot;>
    <input type=&quot;submit&quot; name=&quot;button&quot; id=&quot;button&quot; value=&quot; КУПИТЬ! &quot; />
    </div></td></tr>
    </table>
    <input name=&quot;item&quot; type=&quot;hidden&quot; value=&quot;&#39;.$shop_item_name.&#39;&quot; />
    <input name=&quot;price&quot; type=&quot;hidden&quot; value=&quot;&#39;.$shop_item_price.&#39;&quot; />
    </form>
    </div>
    &#39;;

    };


    function shop_mail($item,$price,$name,$addr,$phone){

    $message = &quot;
    ПРЕВЕД!Есть заказ!

    Товар: $item
    Цена: $price
    Заказчик: $name
    Адрес: $addr
    Телефон: $phone

    Спасибо за внимание.
    &quot; ;
    mail(PRODAVEC_MAIL,&quot;ЗАКАЗ!&quot;,&quot;$message&quot;,&quot;From: &quot;.FROM_MAIL.&quot;&quot;)
    or die (&#39;К сожалению в данный момент заказ невозможен по техническим причинам. Попробуйте сделать заказ позже.&#39;);

    };



    ?>


    CATALOG.PHP
    <?php

    if (isset($_GET[&#39;act&#39;]))
    {
    $action = $_GET[&#39;act&#39;];
    if ($action == &#39;list&#39;) { shop_list_cat($_GET[&#39;cat&#39;]); };
    if ($action == &#39;buy&#39;) { shop_buy($_GET[&#39;item&#39;],$_GET[&#39;price&#39;]); };
    if ($action == &#39;spasibo&#39;) { shop_say_spasibo($_POST[&#39;item&#39;],$_POST[&#39;price&#39;],$_POST[&#39;name&#39;],$_POST[&#39;addr&#39;],$_POST[&#39;phone&#39;]); };
    if ($action == &#39;show&#39;) { shop_catalog_show ($_GET[&#39;prod&#39;]); };

    }ELSE{
    shop_list_cat(&quot;default&quot;);
    };
    ?>


    красным выделил, то, что по идее должно срабатывать,
    зелёным, это форма передает в catalog.php,
    голубым, то, что у меня срабатывает.
    В чем может быть ошибка?
  • Женя

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

    Spritz 28 февраля 2012 г. 18:43, спустя 6 минут 11 секунд

    Интернет магазин на локальной машине.
    При включенном показе ошибок, выдает следующее:

    Warning: mail() [function.mail]: Failed to connect to mailserver at &quot;localhost&quot; port 25, verify your &quot;SMTP&quot; and &quot;smtp_port&quot; setting in php.ini or use ini_set() in C:\wamp\www\sportfood\includes\functions.php on line 140
  • Женя

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

    Spritz 28 февраля 2012 г. 19:10, спустя 26 минут 35 секунд

    Установил sendmail на wamp сервер, все равно не отправляет письмо…
  • Sinkler

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

    Spritz 28 февраля 2012 г. 23:34, спустя 4 часа 24 минуты 6 секунд

    коли не изменяет мне память, у тебя отправка идет через smtp, а не через sendmail, поменяй настройки в php.ini
  • TRIAL

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

    Spritz 29 февраля 2012 г. 2:02, спустя 2 часа 28 минут 36 секунд

    Вообще конечно жуткий говнокод.
    Зачем передавать передавать spasibo черз GET когда можно hidden поле сделать и спокойно со всеми переменными в POST передать.
    Из catalog.php ибери все IF и почитай про switch case.
    На локалке сам никогда отправку почты не тестю, проще потом уже на хостинге всё проверить. один хрен не факт что если дома работает, заработает у хостера.
    from TRIAL with LOVE
  • phpdude

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

    Spritz 29 февраля 2012 г. 3:10, спустя 1 час 7 минут 58 секунд

    TRIAL, нуп
    Сапожник без сапог
  • lekafe

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

    Spritz 29 февраля 2012 г. 3:53, спустя 42 минуты 12 секунд

    много хуевого кода =_____=
  • mario

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

    Spritz 29 февраля 2012 г. 4:22, спустя 29 минут 43 секунды

    мда пиздец… я просто уйду отсюда )
  • Женя

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

    Spritz 29 февраля 2012 г. 4:47, спустя 24 минуты 59 секунд


    коли не изменяет мне память, у тебя отправка идет через smtp, а не через sendmail, поменяй настройки в php.ini


    Вот настройки из php.ini, тут все правильно?

    [mail function]
    ; For Win32 only.
    ; http://php.net/smtp
    SMTP =
    sendmail_from =
    sendmail_path = &quot;C:\wamp\sendmail\sendmail.exe -t&quot;
    smtp_port = 25
    ; http://php.net/smtp-port
  • Fujin

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

    Spritz 18 августа 2012 г. 14:08, спустя 171 день 8 часов 20 минут

    Я к марксизму приобщусь,
    Я на Фурцевой женюсь.
    Буду тискать сиски я
    Самые марксиськия.

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