прописывайте вызовну видно же, что я не врубаюсь, как именно) Да, работа GET и POST - это азбучные для php вещи, но вот эта раскиданность кода по десяткам моделей и контроллеров ломает мне мозг) Я понимаю, как бы это работало, укажи я в $.post ссылку на какой-то файлик со скриптом, где происходило бы все в таком духе прямо в лоб...
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
$sql = "SELECT `email` FROM `subscribers` WHERE `email` LIKE '$email'";
$query = mysqli_query($conn, $sql);
if(mysqli_num_rows($query) > 0) {
echo 0;
} else {
$updquery = mysqli_query($conn,"INSERT INTO `subscribers` (`name`, `email`) VALUES ('', '$email');");
echo 1;
}
} else {
echo 2;
}
поиск по $_GET['func'] должен что-то найти
<?php
class SubscriberController extends AppController
{
public $name = 'subscribers';
public $page_title = 'Подписчики';
public $per_page = 100;
function index() {
$list = $this->subscriber->getSubscribersList();
$this->render('index.html', array(
'list' => $list,
), 'mainblock');
}
}
function add() {
if ($_POST) {
$data = $this->subscriber->insertIntoSubscribers();
}
return $data;
}
А в консоли нет ошибок? И что показывает лог?
Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
связанных исключительно со всякими включенными яндекс-метриками, фб-пикселями и т.д., но это связано с кучей установленных в браузере adblock'еров, как я понимаю. Jquery я подключаю следующим образом, потому что все мои нужные для диза скрипты работают на 3.6.0, но для страховки совместимость со старой версией оставила, потому что мало ли что там кроме этой старой формы еще могло бы понадобиться. <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-migrate-1.4.1.min.js"></script>
возможно и снесли нужный class/id/tag
<form id="form_add_sellers" method="post">
<input placeholder="E-mail" type="text" name="email" id="subscription_email">
<!--<input placeholder="Имя" type="text" name="name" id="subscription_name">-->
<button id="subscriber_reg_submit">Подписаться</button>
</form>
Например так: alert($email);
$email
, вижу, что в data
после вызова $post
записывается мусор, а именно - весь код текущей страницы, что по логике должно вызывать fail(function ())
, но сам браузер молчит. Это тоже из-за адблокеров и какой-то настройки запрета всплывающих окон, да? Просто странность в том, что та же страница по http протоколу вместо https алерт с ошибкой все же выдает. И да, там недавно что-то нахимичили с обновлением ssl-сертификата, и редиректы на https пока настроены криво, через такую дырку я на незащищенную версию и попала) '/?func =add'
, что возвращает к начальному вопросу: где и как грамотно самой вызвать метод subscriber'a? insertIntoSubscribers
нигде, ни какой-то функции с названием add
, там вообще единственное, что связано с обработкой POST - это вот такое...function get_data() {
if ($_POST) {
$data = $_POST;
$this->session->set('object_search', $data);
} else {
$data = $this->session->get('object_search');
}
return $data;
}