PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (4): « 1 [2] 3 4 »

> Найдено сообщений: 58
Andrey Отправлено: 06 Сентября, 2007 - 15:29:34 • Тема: Реферы • Форум: Программирование на PHP

Ответов: 5
Просмотров: 576
valenok пишет:
Нет. я писал
$_SERVER['HTTP_REFERER'] , а не SERVER['HTTP_REFERER']


Сделал файл 1.php:
PHP:
скопировать код в буфер обмена
  1.  
  2.  <?PHP
  3.  $refer=$_SERVER['HTTP_REFERER'];
  4. echo $refer;
  5.  ?>
  6.  

Залил его на сервер. В браузере ввожу: xxxxxx.ru/1.php
и получаю пустую страницу...
Andrey Отправлено: 05 Сентября, 2007 - 10:43:57 • Тема: Реферы • Форум: Программирование на PHP

Ответов: 5
Просмотров: 576
valenok пишет:
echo $_SERVER['HTTP_REFERER'];
Если браузер передаёт это значение то ты будешь знать на каом сайте пользователь нажал на ссылку.

Ещё можно
a href = 'site.ru/index.php?referer=vasya'

по какой ссылке: $_SERVER['REQUEST_URI']


А в каком месте кода это вставлять?
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $refer=SERVER['HTTP_REFERER'];
  4. ....
  5. ....
  6. ?>
  7.  


Так?
Andrey Отправлено: 04 Сентября, 2007 - 16:08:58 • Тема: Реферы • Форум: Программирование на PHP

Ответов: 5
Просмотров: 576
Задумка такая: человек заходит в мой интернет магазин и начинает в корзину набирать товар.
Вопрос: как отследить откуда (c какой страницы, по какой ссылке) пришёл человек?
Даже не представляю с чего начать решение такой задачи...
Andrey Отправлено: 29 Августа, 2007 - 19:14:09 • Тема: Неполучается вставить данные из формы в БД • Форум: SQL и Архитектура БД

Ответов: 6
Просмотров: 71
valenok пишет:
(customer_surname, customer_name, customer_parthname, customer_phone,
customer_email, customer_metro, customer_address, customer_time,
customer_comments)

если это все поля таблицы то сотрите к чёртовой матери эту часть.


В том-то и дело, что заполняю не все поля в таблице, а только некоторые.
Но я проблему решил.
Всего-то надо было в phpmyadmin в свойствах таблицы значение "Сравнение" поменять с "latin1_bin" на "cp1251_bin".
Andrey Отправлено: 28 Августа, 2007 - 23:29:53 • Тема: Неполучается вставить данные из формы в БД • Форум: SQL и Архитектура БД

Ответов: 6
Просмотров: 71
evgenijj пишет:

Проблемы с кодировкой. Копай в сторону SET NAMES ...


Ну, спасибо! Сам бы я не догадался, что это проблемы с кодировкой!

Попробовал перед кодом вставить такой кусок:
PHP:
скопировать код в буфер обмена
  1.  
  2. $user_surname=iconv("Windows-1251","UTF-8", $user_surname);
  3. $user_parthname=iconv("Windows-1251","UTF-8", $user_parthname);
  4. $user_telephone=iconv("Windows-1251","UTF-8", $user_telephone);
  5. $user_address=iconv("Windows-1251","UTF-8", $user_address);
  6. $user_time=iconv("Windows-1251","UTF-8", $user_time);
  7. $user_addition=iconv("Windows-1251","UTF-8", $user_addition);
  8.  


и такой:
PHP:
скопировать код в буфер обмена
  1.  
  2. $this->conn->query ("set character_set_client='cp1251'");
  3. $this->conn->query ("set character_set_results='utf-8'");
  4. $this->conn->query ("set collation_connection='cp1251_general_ci'");
  5.  


Ни то, ни другое не помогает...
Andrey Отправлено: 28 Августа, 2007 - 22:49:46 • Тема: Неполучается вставить данные из формы в БД • Форум: SQL и Архитектура БД

Ответов: 6
Просмотров: 71
При попытке вставить в БД таблицу customer данные полученные из формы посредством кода представленого ниже:
PHP:
скопировать код в буфер обмена
  1.  
  2. $sql= "INSERT INTO customer
  3. (customer_surname, customer_name, customer_parthname, customer_phone,
  4. customer_email, customer_metro, customer_address, customer_time,
  5. customer_comments) VALUES ('Алексеев', 'Алексей', 'Алексеевич', '587-2291',
  6. 'alex@mail.ru', '3', 'Тихомирова, 28-92', '10-18', 'ХОЧУ')";
  7. $res=$this->conn->query($sql);
  8. if($res)
  9. echo "Данные добавлены";
  10. else
  11. echo "FUCK";
  12.  

браузер выдаёт "FUCK", то есть данные не добавляется.
Когда я пытаюсь сделать запрос напрямую в базе в MySQL-Front, выдаёт сообщение об ошибке:
-------------------------------- -------------------------------- -------------------------------- ---
Ошибка при выполнении SQL-запроса (1366). Ответ от сервера:
Incorrect string value: "xC0xEBxE5xEAxF1xE5...' for column 'customer_surname'
-------------------------------- -------------------------------- -------------------------------- ----

Как бороться с данной проблемой?
Andrey Отправлено: 17 Августа, 2007 - 21:57:55 • Тема: Какая ошибка? • Форум: Программирование на PHP

Ответов: 5
Просмотров: 2284
valenok пишет:
var_dump($item)


Браузер выдаёт:


object(stdClass)#4 (1) { ["product_price"]=> string(6) "496.15" }

по мере добавления элементов в корзину

object(stdClass)#4 (1) { ["product_price"]=> string(6) "496.15" }
object(stdClass)#3 (1) { ["product_price"]=> string(6) "376.83" }
object(stdClass)#5 (1) { ["product_price"]=> string(5) "82.00" }
Andrey Отправлено: 15 Августа, 2007 - 23:42:50 • Тема: Какая ошибка? • Форум: Программирование на PHP

Ответов: 5
Просмотров: 2284
valenok пишет:
phpfaq.ru/debug
Вы порверяли что находится в item во время исполнения вашей строки?


Для проверки этого добавил в код строку


Браузер выдает:

Catchable fatal error: Object of class stdClass could not be converted to string in C:Program FilesApache GroupApache2htdocsmyshop0class.e shop.php on line 424
Andrey Отправлено: 15 Августа, 2007 - 22:51:37 • Тема: Какая ошибка? • Форум: Программирование на PHP

Ответов: 5
Просмотров: 2284
Кусок кода:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. function calculate_price($cart)
  4.   {
  5.    $price=0;
  6.    if(is_array($cart))
  7.         {
  8.         foreach($cart as $isbn => $qty)
  9.         {
  10.   $sql="SELECT product_price FROM product WHERE product_id='$isbn'";
  11.     $res=$this->conn->query($sql);
  12.         if($res)
  13.         {
  14.         $item=$res->fetch_object();
  15.         $item_price=$item->price;
  16.         $price +=$item_price*$$qty;
  17.                                
  18.         }
  19.         }
  20.                
  21.         }
  22.         return $price;
  23.              }
  24.  


Когда программа выполняет эту часть кода, браузер выдаёт ошибку:

Notice: Undefined property: stdClass::$price in C:Program FilesApache GroupApache2htdocsmyshop0class.e shop.php on line 424


424 строка это:


В чём проблема?
Andrey Отправлено: 06 Августа, 2007 - 22:09:08 • Тема: Некорректное обновление корзины • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 102
Теперь всё получилось - большое спасибо!
Andrey Отправлено: 06 Августа, 2007 - 21:22:19 • Тема: Некорректное обновление корзины • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 102
evgenijj, спасибо за ссылки - очень познавательно.

evgenijj пишет:
Даже если ты вынес тег формы за пределы цикла - это еще не решает твоей проблемы - у тебя в этой форме столько ошибок, что я удивляюсь, что хоть как-то работает.

И всё-таки я обратился на этот форум за помощью - если бы всё работало, я бы неспрашивал. Нет глупых вопросов, но есть глупые ответы!
Что надо переписать в моём скрипте для корректного обновления корзины? Заранее благодарю.
Andrey Отправлено: 06 Августа, 2007 - 16:55:08 • Тема: Некорректное обновление корзины • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 102
valenok пишет:
В браузере Internet Explorer исходный код можно посмотреть, выбрав в меню Вид - Просмотр HTML-кода.

Если не увидите там ничего интересного - скопируйте сюда.


HTML код чего корзины?
Andrey Отправлено: 06 Августа, 2007 - 08:16:41 • Тема: Некорректное обновление корзины • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 102
evgenijj пишет:
Тот факт, что строка
< form action="update_cart.php" method="GET" >
находится внутри цикла foreach - не наводит на размышления?


Так я её специально туда и вставил, чтобы цикл перебирал всё содержимое корзины...

Переставил сейчас эту строку перед foreach, но проблема таже - обновляется только последний товар.

Andrey Отправлено: 05 Августа, 2007 - 22:28:59 • Тема: Некорректное обновление корзины • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 102
Ситуация такая: Есть корзина в виде таблицы cart:
cart_id
cart_customer
prioduct_id
cart_qty
datetime

Таблица выводится функцией display_cart, код которой приведён ниже:

class.eshop.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. ...
  4. function display_cart($cart_array) {
  5.                
  6. if(!is_array($cart_array)) {
  7. echo '<center>Корзина пуста - Вы ещё ничего не выбрали</center><br><br>'; ?>
  8.  <center><a href="index.php">Вернуться к выбору товара</a></center><?PHP sum=0;
  9. }else{ ?>
  10. <strong><center>Ваша корзина:</center></strong><br>
  11. <table border="0" align="center">
  12. <th>Артикул</th>
  13. <th>Наименование</th>
  14. <th>Количество</th>
  15. <th>Цена, руб.</th>
  16. <th>Сумма, руб.</th></tr>      
  17. <?PHP  
  18. foreach ($cart_array as $row){ ?>
  19. <tr><td align="center"><?PHP echo $row['product_articul']; ?></td>                         <td><?PHP echo $row['product_title']; ?></td>
  20. <form action="update_cart.php" method="GET">
  21. <input type="hidden" name="cartid" value="<?PHP echo $row['cart_id']; ?>">
  22. <td align="center"><input type="integer" name="qty" value="<?PHP echo $row['cart_qty']; ?>"  size=1></td>
  23. <td align="center"><?PHP echo $row['product_price']; ?></td>
  24. <input type="hidden" name="urll" value="<?PHP echo $_SERVER['REQUEST_URI']; ?>">
  25. <td align="center"><?PHP echo $row['cart_qty']*$row['product_price'];
  26. $sum=$sum+$row['cart_qty']*$row['product_price'];
  27. $totalqty=$totalqty+$row['cart_qty'];
  28. $this->totalqty=$totalqty;
  29. ?></td></tr>
  30. <?PHP }?>
  31. <tr><td colspan="5">&nbsp;</td></tr>
  32. <tr><td colspan="4">&nbsp;<b>Итоговая сумма заказа без учёта доставки:</b></td>
  33. <td align="center"><b><?PHP echo $sum; ?> руб.</b></td></tr>
  34. <tr align="right"><td colspan="5"><input type="submit" value="Пересчитать"></TD></form></td></tr></table><br><br><br>
  35. <center><a href="index.php">Вернуться к выбору товара</a></center><?PHP
  36. }
  37. $this->sum=$sum;
  38. return $sum;
  39. return $totalqty; }
  40.  
  41. function  update_cart($cartid, $qty)
  42.                 {
  43. $sql="UPDATE cart SET cart_qty='".$qty."'WHERE cart_id=".$cartid;
  44. $res=$this->conn->query($sql);
  45. if($res)
  46. echo "Корзина обновлена";
  47. else{ echo 'Корзина необновлена';} }    
  48. ...
  49. ?>
  50.  


В итоге появляется корзина заказа в иде таблицы, напрмер:
Артикул Наименование Количество Цена, руб. Сумма, руб.
2242 Дополнительные кубики 10 496.15 3969.2
2734 6 прямых рельсов для поезда 2 376.83 12435.39

Итоговая сумма заказа без учёта доставки: 16404.59 руб.

Пересчитать

причем количество можно менять. Задумка, чтобы после нажатия на "Пересчитать" количество в таблице cart менялось. Вот код:

update_cart.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. include('class.eshop.php');
  4. $eshop=new EshopDB();
  5. @ $cartid=$_GET['cartid'];
  6. @ $qty=$_GET['qty'];
  7. @ $url = $_GET['urll'];
  8. $eshop->update_cart($cartid, $qty);
  9. ?>
  10.  


В итоге меняетсяколичество только последнего товара: если товаров в корзине 5, то пятого товара, если 10 - то десятого и т.д. То есть корректно корзина работает только, если в корзине 1 товар.
В действии можете посмотреть на http://magazinigrushek.ru.
Andrey Отправлено: 03 Августа, 2007 - 23:40:33 • Тема: Получить данные из таблицы MySQL • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 32
Корзину магазина представил в виде таблицы:
cart_id
cart_customer
product_id
cart_qty
datetime.

Допустим, клиент походил по магазину, накидал товара в корзину. Хочу вывести то, что он заказал, то есть в самом простом виде табличку, где cart_customer=session_id.

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. include('class.eshop.php');
  4. $eshop=new EshopDB();
  5. $customer=session_id();
  6. $cart_array=$eshop->get_cart($customer);
  7. $eshop->display_cart($cart_array);
  8. ?>
  9.  


class.eshop.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. function __construct() {
  4.      include('config.inc.php');
  5.      $this->conn=new mysqli($DB_HOST,$DB_LOGIN, $DB_PASSW, $DB_DATABASE);
  6.      $this->conn->query ("set character_set_client='cp1251'");
  7.      $this->conn->query ("set character_set_results='cp1251'");
  8.      $this->conn->query ("set collation_connection='cp1251_general_ci'");
  9.                 }
  10.  
  11.  
  12. function get_cart($customer)
  13.             {
  14.   $sql="select * from cart where cart_customer=".$customer;
  15.   $res=$this->conn->query($sql);
  16.   if (!$res)
  17.   return false;
  18.   $num_cats=$res->num_rows;
  19.   if ($num_cats==0)
  20.   return false;
  21.   $res=$this->db_result_to_array($res);
  22.   return $res;
  23.               }
  24.  
  25. function db_result_to_array($res)
  26.         {
  27.   $res_array=array();
  28.   for ($count=0; $row= $res->fetch_assoc(); $count++)
  29.   $res_array[$count] = $row;
  30.   return $res_array;
  31.         }
  32.                                
  33. function display_cart($res_array) {            
  34. if(!is_array($cart_array)) {
  35. echo 'Корзина пуста!<br>';
  36. return;}
  37. foreach ($cart_array as $row)
  38.         {
  39. echo $row['cart_id']."<br>";
  40. echo $row['product_id']."<br>";
  41. echo $row['cart_qty']."<br>";
  42.         }
  43.                
  44.         }
  45. ?>
  46.  


Результат этих скриптов - пустая страница.

Страниц (4): « 1 [2] 3 4 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB