drtpbx3606 2014-06-05 12:12
浏览 21

PHP和MYSQL我没有收到错误代码,但我收到了其余的代码

i dont understand what i am doing wrong and why its not displaying an error code but it displays the rest of my code after a specific word.

Code:

    <?php
    $errors = array();

$required = array(
'InvoiceFrom'   =>'This is required',
'InvoiceTo'     =>'This is required',
'InvoiceAddress'=>'This is required',
'ContactName'   =>'This is required',
'ContactNumber' =>'This is required',
'Email'         =>'This is required',
'PoNo'          =>'This is required',
'Details'       =>'This is required',
'InvoiceAmount' =>'This is required',
'Submitted'     =>'This is required',
'SubmittedBy'   =>'This is required',
);

if ('POST' === $_SERVER['REQUEST_METHOD'])
{
  foreach ($required as $field => $error)
    {
    $isEmpty = 0 == strlen(trim($_POST[$field]));

    if ($isEmpty) {
        $errors[] = $error;
    }
}

if ( ! filter_var($_POST['Email'], FILTER_VALIDATE_EMAIL)) {
    $errors[] = 'Email must be a valid email address';
}

if ( ! preg_match('~^[0-9.]+$~i', $_POST['InvoiceAmount'])) {
    $errors[] = 'Invoice amount value is invalid';
}

if ( ! empty($errors))
{
   $con = mysqli_connect("localhost","FORM","form","form");

    $sql = sprintf(
        "INSERT INTO
            table
        (InvoiceFrom, InvoiceTo, InvoiceAddress, ContactName, ContactNumber, Email, PoNo, Details, InvoiceAmount, Submitted, SubmittedBy )
            VALUES
        ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s','%s','%s');",
        mysql_real_escape_string($_POST['InvoiceFrom']),
        mysql_real_escape_string($_POST['InvoiceTo']),
        mysql_real_escape_string($_POST['InvoiceAddress']),
        mysql_real_escape_string($_POST['ContactName']),
        mysql_real_escape_string($_POST['ContactNumber']),
        mysql_real_escape_string($_POST['Email']),
        mysql_real_escape_string($_POST['PoNo']),
        mysql_real_escape_string($_POST['Details']),
        mysql_real_escape_string($_POST['InvoiceAmount']),
        mysql_real_escape_string($_POST['Submitted']),
        mysql_real_escape_string($_POST['SubmittedBy'])
    );

    $res = mysql_query($sql, $con);

    if ($res) {
        header('Location: http://example.org/success', true, 301);
        exit;
    }

    $errors[] = mysql_error($con);
}
 }
?>
<html>
<head></head>
<body>
    <?php if (count($errors)): ?>
        <ul>
            <?php foreach ($errors as $error): ?>
                <li><?php echo $error; ?></li>
            <?php endforeach; ?>
        </ul>
    <?php endif; ?>
    <form method="post">
    </form>
</body>

What is outputed:

'This is required','InvoiceTo' =>'This is required','InvoiceAddress'=>'This is required','ContactName' =>'This is required','ContactNumber' =>'This is required','Email' =>'This is required','PoNo' =>'This is required','Details' =>'This is required','InvoiceAmount' =>'This is required','Submitted' =>'This is required','SubmittedBy' =>'This is required',); if ('POST' === $_SERVER['REQUEST_METHOD']) { foreach ($required as $field => $error) { $isEmpty = 0 == strlen(trim($_POST[$field])); if ($isEmpty) { $errors[] = $error; } } if ( ! filter_var($_POST['Email'], FILTER_VALIDATE_EMAIL)) { $errors[] = 'Email must be a valid email address'; } if ( ! preg_match('~^[0-9.]+$~i', $_POST['InvoiceAmount'])) { $errors[] = 'Invoice amount value is invalid'; } if ( ! empty($errors)) { $con = mysqli_connect("localhost","FORM","form","form"); $sql = sprintf( "INSERT INTO table (InvoiceFrom, InvoiceTo, InvoiceAddress, ContactName, ContactNumber, Email, PoNo, Details, InvoiceAmount, Submitted, SubmittedBy ) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s','%s','%s');", mysql_real_escape_string($_POST['InvoiceFrom']), mysql_real_escape_string($_POST['InvoiceTo']), mysql_real_escape_string($_POST['InvoiceAddress']), mysql_real_escape_string($_POST['ContactName']), mysql_real_escape_string($_POST['ContactNumber']), mysql_real_escape_string($_POST['Email']), mysql_real_escape_string($_POST['PoNo']), mysql_real_escape_string($_POST['Details']), mysql_real_escape_string($_POST['InvoiceAmount']), mysql_real_escape_string($_POST['Submitted']), mysql_real_escape_string($_POST['SubmittedBy']) ); $res = mysql_query($sql, $con); if ($res) { header('Location: http://example.org/success', true, 301); exit; } $errors[] = mysql_error($con); } } include "ERROR.html" ?>

Could you please explain what i'm doing wrong and how i caould make it better?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
    • ¥15 正弦信号发生器串并联电路电阻无法保持同步怎么办
    • ¥15 划分vlan后,链路不通了?
    • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
    • ¥15 个人网站被恶意大量访问,怎么办
    • ¥15 Vue3 大型图片数据拖动排序
    • ¥15 Centos / PETGEM
    • ¥15 划分vlan后不通了
    • ¥20 用雷电模拟器安装百达屋apk一直闪退
    • ¥15 算能科技20240506咨询(拒绝大模型回答)