コードはたくさんありますが、そのほとんどは無関係なので、スニペットを投稿します
$error_message = "";
function died($error) // if something is incorect, send to given url with error msg
{
session_start();
$_SESSION['error'] = $error;
header("Location: http://mydomain.com/post/error.php");
die();
}
これは正常に動作し、ユーザーにエラー セッションを送信します。これにより、error.php にエラーが表示されます。
function fetch_post($url, $error_message) {
$sql = "SELECT * FROM inserted_posts WHERE name = '$name'";
$result = mysqli_query($con, $sql);
$num_rows = mysqli_num_rows($result);
if ($num_rows > 0) {
$error_message .= $url . " already exists in the database, not added";
return $error_message;
}
}
これも問題なく動作し、データベースに「投稿」が存在するかどうかを確認し、存在する場合は、変数 $error_message にエラーを追加します
while ($current <= $to) {
$dom = file_get_html($start_url . $current); // page + page number
$posts = $dom->find('div[class=post] h2 a');
$i = 0;
while ($i < 8) {
if (!empty($posts[$i])) { // check if it found anything in the link
$post_now = 'http://www.somedomain.org' . $posts[$i]->href; // add exstension and save it
fetch_post($post_now, &$error_message); // send it to the function
}
$i++;
}
$current++; // add one to current page number
}
これはメインループです。私が持っているいくつかの変数をループし、外部 Web サイトから投稿を取得し、URL と error_message を関数 fetch_posts に送信します
(私はそれを一緒に送ります、そして私はこれがそれをグローバルに保つ唯一の方法だと思いますので参照してください???)
if (strlen($error_message > 0)) {
died($error_message);
}
そして、これはループの直後の最後のスニペットです。エラー メッセージに文字が含まれている場合、エラー メッセージを関数 error に送信することになっていますが、文字が検出されませんか?