При использовании изображений в качестве кнопок отправки браузер обычно отправляет туда, где вы щелкнули изображение, вместо того, чтобы щелкнуть по нему.Браузер вместо отправки chalkboard_submit=submit
будет отправлять chalkboard_submit_x=20
и chalkboard_submit_y=15
(эти цифры будут различаться в зависимости от того, где пользователь щелкнул изображение).
Некоторые браузеры могут отправлять только chalkboard_submit=submit
и другие отправят все три.Чтобы это исправить и сохранить совместимость с большинством браузеров, вам нужно проверить оба пути.Изменить:
if(isset($_POST['chalkboard_submit'])){
$_SESSION['chalkboard'][] = $_POST['cb'];
}
elseif(isset($_POST['chalkboard_remove'])){
$_SESSION['chalkboard'] = array_diff($_SESSION['chalkboard'], array($_POST['cb']));
}
if(isset($_POST['favorites_submit'])){
elseif(isset($_POST['favorites_remove'])){
на:
if(isset($_POST['chalkboard_submit']) || isset($_POST['chalkboard_submit_x'])){
$_SESSION['chalkboard'][] = $_POST['cb'];
}
elseif(isset($_POST['chalkboard_remove']) || isset($_POST['chalkboard_remove_x'])){
$_SESSION['chalkboard'] = array_diff($_SESSION['chalkboard'], array($_POST['cb']));
}
if(isset($_POST['favorites_submit']) || isset($_POST['favorites_submit_x'])){
elseif(isset($_POST['favorites_remove']) || isset($_POST['favorites_remove_x'])){
и это должно работать.
Вам не нужно проверять, установлены ли оба значения: _x'
и _y'
, потому что, если один из них, другой тоже должен быть.