1

概要私は学習目的でダミーのウェブサイトを作成しているので、その機能主義者は基本的であり、議題のATMにはセキュリティがありません。

私は解決できないこの小さな問題を経験しています。だから私がやろうとしているのは、新しいアカウントを追加して、挿入が中断されたことを示すメッセージをエコーすることですが、新しいレコードを追加したい場所に、メッセージは未定義です。

もう少し:wbesiteのホームページにいて、エラーメッセージがポップアップするときに登録ボタンをクリックしますが、実際にクエリを送信してアカウントを追加すると、エラーメッセージが表示したいメッセージに変わります。

<?php



if(isset($_POST['submited'])){

    include('connect_mysql.php');


    $username= $_POST['username'];
    $password = $_POST['password'];
    $firstname = $_POST['first_name'];
    $lastname = $_POST['last_name'];
    $email = $_POST['email'];

    $NewAccountQuery = "INSERT INTO users (username, password, first_name, last_name, email) VALUES ('$username','$password', '$firstname', '$lastname', '$email')";

    if(!mysql_query($NewAccountQuery)){

        die(mysql_error());

    }//end of nested if statment

    if($NewAccountQuery){
         echo $confirm = "1 record added to the database";
    }
}//end of if statment

?>
<html>
<head>

<title>Home Page</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>

    <div id="wrapper">
        <header><h1>E-Shop</h1></header>


        <article>
        <h1>Welcome</h1>

            <h1>Create Account</h1>

        <div id="login">

                <ul id="login">

                <form method="post" action="register.php"  >
                    <fieldset>  
                        <legend>Fill in the form</legend>

                        <label>Select Username : <input type="text" name="username" /></label>
                        <label>Password : <input type="password" name="password" /></label>
                        <label>Enter First Name : <input type="text" name="first_name" /></label>
                        <label>Enter Last Name : <input type="text" name="last_name" /></label>
                        <label>Enter E-mail Address: <input type="text" name="email" /></label>
                    </fieldset>
                        <br />

                        <input name="submited" type="submit" submit="submit" value="Create Account" class="button">

                </form>




                </div>
            <form action="index.php" method="post">
            <div id="login">
                <ul id="login">
                    <li>
                        <input type="submit" value="back" onclick="index.php" class="button">   
                    </li>
                </ul>
            </div>      
            </form>


        </article>
<aside>

                <?php print $confirm; ?>


</aside>

<div id="footer">This is my site i Made coppyrights 2013 Tomazi</div>
</div>

</body>
</html>

クエリを送信する前の画像は次のとおりです。 ここに画像の説明を入力してください

クエリを送信した後の画像: ここに画像の説明を入力してください

4

5 に答える 5

1
echo $confirm = "1 record added to the database";

する必要があります:

$confirm = "1 record added to the database";
echo $confirm;

他の場所でエコーするので、そこにエコーは必要ないようです。に割り当てるだけの場合$confirm1 record added to the database、エコーなしで割り当てる必要があります。Echoは基本的に、printと同じ方法でHTMLに出力します。

于 2013-02-28T23:38:46.610 に答える
1

エラーメッセージはかなりはっきりしていると思います。 $confirm定義されてない。「成功したクエリ」セクションでのみ定義します。if(isset($_POST['submited'])){簡単な解決策は、ブロック全体の前に定義することです。置くだけ$confirm = '';で何も印刷されません。


いくつかのメモ:

あなたは学んでいて、これはまったく新しいので、今すぐext / mysqlの使用をやめて、またはDBエンジンとして使用する必要があります(私は前者の方が好きです)PDOmysqli

また、if($NewAccountQuery){あまり意味がありません。これは前に定義した文字列であるため、常にtrueになります。に切り替えるとPDO確認できPDOStatement::rowCountます。

于 2013-02-28T23:41:34.687 に答える
1

基本的に問題は、ホームページを初めてロードするときです。if(isset($_POST['submited']))$ _ POST ['submitted']が設定されていないため、ホームページは条件になりません。また、このループ内で$ confirmを設定しているため、このステートメントで <?php print $confirm; ?>は$confirm変数セットが見つかりません。したがって、PHP通知が表示されます。誰かがここで言ったよう$confirm = '';に、if条件の前に設定するか、印刷中にこのようなことを行うことができます

<?php 
if(isset($confirm))
   print $confirm; 
?>
于 2013-02-28T23:55:45.387 に答える
0

文字列をエコーまたは出力するだけの場合は、最初に文字列を変数に割り当てる必要はありません。これらのいずれかが機能します:

echo '1 record added to the database';

また

$confirm = '1 record added to the database';
echo $confirm;
于 2013-02-28T23:39:36.097 に答える
0
<?php
if(isset($_POST['submited'])){

    include('connect_mysql.php');

    $username= $_POST['username'];
    $password = $_POST['password'];
    $firstname = $_POST['first_name'];
    $lastname = $_POST['last_name'];
    $email = $_POST['email'];

    $NewAccountQuery = "INSERT INTO users VALUES ('$username','$password', '$firstname', '$lastname', '$email')"; // simplified query if those are only 5 cols in order
    $result = mysql_query($NewAccountQuery);

    if($result){
       $confirm = "1 record added to the database";
    } else {
        exit('error inserting row');
    }
}
?>
于 2013-02-28T23:51:58.090 に答える