次のコードを使用して、送信ボタンがクリックされたときに wordpress データベースにデータを保存しました。現在、コードは wordpress データベースにデータを送信することで機能します。
if ($_POST['subscribe_btn'])
{
require("connect.php");
$user = $_POST['user'];
$email = $_POST['email'];
if($user)
{
if(preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", $email)){
$query=mysql_query("SELECT * FROM wp_newslettter WHERE email='$email'") or exit(mysql_error());
$numrows= mysql_num_rows($query);
if($numrows == 0 )
{
mysql_query("INSERT INTO wp_newslettter (`name`,`email`) VALUES ('$user','$email')")or exit(mysql_error());
}
else
$errmsg = "email address already exists";
}
else
$errmsg = "Please enter a valid email address";
}
else
$errmsg = "Please enter your username";
}
私が今やろうとしているのは、データがデータベースに保存されたら、テーマに保存されている pdf を強制的にダウンロードしたいということです。私はワードプレスを初めて使用し、ファイルパスにアクセスできません。次のコードを実行しましたが、ファイルのダウンロードはありません。これに関する助けをお願いします。フォームのアクションは次のとおりです。action='$_SERVER[REQUEST_URI]'
/ **データ入稿後にpdfをダウンロードするコード * /
$a = bloginfo('template_url');
$file= $a . "/pdf/default.pdf";
$path_parts = pathinfo($file);
$ext = strtolower($path_parts["extension"]);
switch ($ext) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc":
case "docx": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
header('Content-Description: File Transfer');
header('Content-Type: application/force-download');
header("Content-type: $ctype");
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate , post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
次のコードを実行してもファイルを読み取ることができません