0

Здравствуйте.
Есть форма, после ее заполнения, запускается пхп-скрипт, который компонует все данные отправляет их на почту и возвращает страницу к исходному виду. (пустая форма).
Понадобилось заливать данные на бд, написал ниже представленный класс. Вызываю функции его в середине скрипта, который отправляет данные на почту.

require_once "cart_add/cart_table_second.php";
$db_ftp = new mysqli_class(/* "proftpd","online","jykfqy",3306,"localhost" */);
$db_ftp->connect();

$last_id=$db_ftp->get_last_id();

$md = md5($last_id[0][0]);

$db_ftp->upload_second($msg, $md);
$db_ftp->disconnect();  

Однако возникла следующая проблема, с введением данного скрипта, после отрабоки перестало возвращать страницу к исходному виду.

Warning: Cannot modify header information - headers already sent by (output started at /var/www/domain.ru/forma/cart_add/cart_table_second.php:157) in  /var/www/domain.ru/forma/cart_blank.php on line 159  

Выходит такая ошибка.

<?php


class mysqli_class
{

var $server = "localhost";
var $login = "login";
var $pass = "pass";
var $db = "db";
var $port = 3306;
var $link;

function __construct($db = null, $login = null, $pass = null, $port = null, $server = null)
{
    if (!empty($db) && !empty($login) && !empty($pass) && !empty($port) && !empty($server)) {
        $this->db = $db;
        $this->login = $login;
        $this->pass = $pass;
        $this->port = $port;
        $this->server = $server;
    }
}

function connect()
{

    /* Подключение к серверу MySQL */

    $this->link = mysqli_init();
    if (!$this->link) {
        die('mysqli_init завершилась провалом');
    }

    $this->link->real_connect($this->server, $this->login, $this->pass, $this->db, $this->port, null, MYSQL_CLIENT_COMPRESS);

    //$this->link = new mysqli($this->server, $this->login, $this->pass, $this->db, $this->port);

    if (mysqli_connect_errno()) {
        printf("Подключение к серверу MySQL невозможно. Код ошибки: %s\n", mysqli_connect_error());
        exit;
    } else {
        $this->link->set_charset("utf8");
        //printf("Успех!");
    }
}

function disconnect()
{
    if (!mysqli_close($this->link))
        echo "<br> Не смог отключиться от MySQL.";
}


function upload($table_data, $link,  $count)
{

    $sql3 = 'INSERT INTO `mail_cart`(`count`, `table_data`, `link`)';

    $stmt3 = $this->link->prepare($sql3 . " VALUES (?,?,?);");

    $stmt3->bind_param("iss", $count, $table_data, $link
    );
    $stmt3->execute();

    // echo "запись прошла успешно";
}
function upload_second($table_data, $link)
{

    $sql3 = 'INSERT INTO `mail_cart`( `table_data`, `link`)';

    $stmt3 = $this->link->prepare($sql3 . " VALUES (?,?);");

    $stmt3->bind_param("iss", $table_data, $link
    );
    $stmt3->execute();

    // echo "запись прошла успешно";
}

function get_data($link)
{
    $stmt = $this->link->prepare("SELECT id, table_data FROM mail_cart WHERE link='".$link."'");
    $stmt->execute();
    $id = null;
    $city = null;
    $stmt->bind_result($id, $city);
    $result_city = array();

    while ($stmt->fetch()) {
        array_push($result_city, array($id, $city));

    }
    return $result_city;
}
function  get_last_id() {
    $stmt = $this->link->prepare("SELECT id FROM mail_cart ORDER BY id DESC LIMIT 1");
    $stmt->execute();
    $id = null;
    $stmt->bind_result($id);
    $result = array();

    while ($stmt->fetch()) {
        array_push($result, array($id));

    }
    return $result;
}
}
$p=0;
if (!empty($_GET['p'])) {
echo '<link href="/css/cart_style.css" type="text/css" rel="stylesheet" />';
echo "<h2 style='color: red;'>Ваш заказ поступил в обработку.</h2>";
$db_ftp = new mysqli_class(/* "proftpd","online","jykfqy",3306,"localhost" */);
$db_ftp->connect();
$data_table=$db_ftp->get_data($_GET['p']);
echo "<div id='content_table'> <table id='cart_table'>
        <tr><th>Название товара</th>
            <th>Код товара</th>
            <th>Ссылка на товар</th>
            <th>Цена товара</th>
            <th>К-во товара</th>
            <th>Стоимость товара</th>
            <th>Комментарий к товару</th>

            </tr>";
echo mb_convert_encoding($data_table[0][1], "Windows-1251", "UTF-8");
echo "</table></div>";
$db_ftp->disconnect();

}

?>
votanko
  • 663
  • Вообще-то эта ошибка ни каким боком к mysql относится не должна. Посмотрите справа на ссылки Похожие и поймете в чем причина. Статья http://phpfaq.ru/newbie/headers – Visman Oct 17 '16 at 06:03
  • 1
    Я так понял, в моем скрипте, где то происходит вывод, что мешает вернуться обратно. – votanko Oct 17 '16 at 06:27
  • cart_table_second.php:157 -- что там? Подписывайте имена файлов к кускам кода. – Samuel Loog Oct 17 '16 at 07:04
  • 1
    http://cannot-modify-header-information.ru/ – Алексей Шиманский Oct 17 '16 at 07:18

0 Answers0