代码在网络上和移动设备上都能正常工作。如果通过 instagram 或 facebook 社交页面将其作为链接打开,问题就开始了。
<?php
header("Content-type: text/html; charset=utf-8");
$title = "xxxxxx";
require("header.php");
$conn = new PDO('xxxxxxxxxxxxx');
$conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = $conn->prepare('SELECT COUNT(*) AS `total` FROM sutaz_tabulka WHERE meno = :meno');
$meno = $_POST['meno'];
$sql->execute(array(':meno' => $meno));
$result = $sql->fetchObject();
if ($result->total > 0)
{
echo '<div class="dakujem" style="text-align: center; font-size: 30px; margin-top: 200px; padding: 50px 5px; color: white; background-color: rgb(220, 20, 60);">Nedávno ste sa už zapojili do našej súťaže!</div>';
}
else
{
$stmt = $conn->prepare("INSERT INTO sutaz_tabulka (meno) VALUES(:meno)");
$stmt->bindValue(':meno', $meno);
$stmt->execute(array(':meno' => $meno));
}
?>
我附上以下错误信息:
致命错误:未捕获的异常“PDOException”,消息为“SQLSTATE[23000]:违反完整性约束:1048 /data/5/8/582bf4f8-549d-48a3-833c-52986c8a8ca5/zapojsavyhraj 中的列'meno'不能为空'。 sk/web/post-comment.php:30 堆栈跟踪:#0 /data/5/8/582bf4f8-549d-48a3-833c-52986c8a8ca5/zapojsavyhraj.sk/web/post-comment.php(30): PDOStatement- >execute(Array) #1 {main} 在第 30 行的 /data/5/8/582bf4f8-549d-48a3-833c-52986c8a8ca5/zapojsavyhraj.sk/web/post-comment.php 中抛出
当您打开此页面作为链接时
$_POST['meno'];
必须为 null,如果您通过 AJAX 调用此脚本,它可以包含数据
所以如果你想打开这个页面作为链接你必须添加一个条件
if isset($_POST['meno']) or if !empty($_POST['meno']):
<?php
header("Content-type: text/html; charset=utf-8");
$title = "Zapoj sa a vyhraj";
require("header.php");
//this condition verifies that POST memo exists
if (isset($_POST['meno']))
{
$conn = new PDO('xxxxxxxxxxxxx');
$conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = $conn->prepare('SELECT COUNT(*) AS `total` FROM sutaz_tabulka WHERE meno = :meno');
$meno = $_POST['meno'];
$sql->execute(array(':meno' => $meno));
$result = $sql->fetchObject();
if ($result->total > 0)
{
echo '<div class="dakujem" style="text-align: center; font-size: 30px; margin-top: 200px; padding: 50px 5px; color: white; background-color: rgb(220, 20, 60);">Nedávno ste sa už zapojili do našej súťaže!</div>';
}
else
{
$stmt = $conn->prepare("INSERT INTO sutaz_tabulka (meno) VALUES(:meno)");
$stmt->bindValue(':meno', $meno);
$stmt->execute(array(':meno' => $meno));
}
}
?>