0

*注意:45行目の/.../uploader.phpで未定義の定数_-想定される「_」を使用*

45行目

$newname = str_replace(array(' ', '&'), array('_', 'and'), trim( strip_tags( $_POST['name'] ) ) ) . _ . $formKey->generateKey() . '_' . time() . '.jpg';

注意:未定義のインデックス:81行目の/.../uploader.phpで承認

81行目-ここで最後から2番目の行

    $query = sprintf("INSERT INTO `$db_name`.`the_table` (`id` , `name` , `photo` , `email` , `date` , `code` , `subscribe` , `approve` , `created` )
        VALUES ( NULL , '%s', '%s', '%s', '%s', '%s', '%s', '1', CURRENT_TIMESTAMP );",
        mysql_real_escape_string($_POST['name']),
        mysql_real_escape_string($newname),
        mysql_real_escape_string($_POST['email']),
        mysql_real_escape_string($date),
        mysql_real_escape_string($_POST['code']),
        mysql_real_escape_string($subscribe),
        mysql_real_escape_string($_POST['approve'])
        );

警告:ヘッダー情報を変更できません-102行目の/.../uploader.phpで(出力は/.../uploader.php:45で開始)によってすでに送信されたヘッダー

45行目

$newname = str_replace(array(' ', '&'), array('_', 'and'), trim( strip_tags( $_POST['name'] ) ) ) . _ . $formKey->generateKey() . '_' . time() . '.jpg';

102行目-ここの3行目

if ($success == 'Done') {
    $page = 'uploader';
    header('Location: ./thanks.php');
} else {
echo "error";
}
4

4 に答える 4

1

45行目. _ .. '_' .

81行目:投稿データに「承認」がありません。投稿を送信しているフォームを確認してください。

102行目:を呼び出す前に何も出力(つまりエコー)しないでくださいheader()。以前に生成された警告が同じエラーを引き起こす可能性があると思います。

于 2012-11-02T04:57:13.183 に答える
1

初め :

$newname = str_replace(array(' ', '&'), array('_', 'and'), trim( strip_tags( $_POST['name'] ) ) ) . _ . $formKey->generateKey() . '_' . time() . '.jpg';

これであなたは_beatweenの引用を逃しましたtrim( strip_tags( $_POST['name'] ) ) ) . _ . $formKey->generateKey()

この行を次のように置き換えます

$newname = str_replace(array(' ', '&'), array('_', 'and'), trim( strip_tags( $_POST['name'] ) ) ) . '_' . $formKey->generateKey() . '_' . time() . '.jpg';

2番:

すべてを交換する必要があります

mysql_real_escape_string($_POST['name']),
mysql_real_escape_string($_POST['email']),
mysql_real_escape_string($_POST['code']),
mysql_real_escape_string($_POST['approve'])

    $name = (isset($_POST['name'])) ? mysql_real_escape_string($_POST['name']) : "";
    $email = (isset($_POST['email'])) ? mysql_real_escape_string($_POST['email']) : "";
    $code = (isset($_POST['code'])) ? mysql_real_escape_string($_POST['code']) : "";
    $approve = (isset($_POST['approve'])) ? mysql_real_escape_string($_POST['approve']) : "";
    $query = sprintf("INSERT INTO `$db_name`.`the_table` (`id` , `name` , `photo` , `email` , `date` , `code` , `subscribe` , `approve` , `created` )
    VALUES ( NULL , '%s', '%s', '%s', '%s', '%s', '%s', '1', CURRENT_TIMESTAMP );",
    $name,
    mysql_real_escape_string($newname),
    $email,
    mysql_real_escape_string($date),
    $code,
    mysql_real_escape_string($subscribe),
    $approve
    );

第3

<?php ob_start(); ?>ページの上部と下部に追加するか、次のように置き換えることが<?php ob_flush(); ?>できますheader('Location: ./thanks.php');

echo '<script>document.location.href="thanks.php";</script>';

于 2012-11-02T05:30:11.320 に答える
0

"%s"そのように、あなたは文字列を書きます. $_POST['name'] .、例:

 $query = sprintf("INSERT INTO `" . $db_name . "`.`the_table` (`id` , `name` , `photo` , `email` , `date` , `code` , `subscribe` , `approve` , `created` )
                   VALUES ( NULL , '" . $_POST['name'] . "', ...
                 );
于 2012-11-02T05:02:10.763 に答える
0

Istiaque Ahmedが述べたように、ヘッダーエラーは、ヘッダーコマンドを受信する前にエラーがブラウザーに出力されていたことが原因です。他のエラーを処理すると、ヘッダーエラーはなくなります。

于 2012-11-02T05:06:46.453 に答える