ホームページ > バックエンド開発 > PHPチュートリアル > $_POST のデータをクリアするにはどうすればよいですか?

$_POST のデータをクリアするにはどうすればよいですか?

WBOY
リリース: 2016-06-23 14:06:34
オリジナル
2414 人が閲覧しました

ログインインターフェースを作成しようとしましたが、テスト中に問題が発見されました。 $_POST の値は、ユーザー名を入力するたびにクリアされず、$_POST にユーザー名が 1 つ追加されます。その結果、ユーザー名が最初に間違って入力されると、そのユーザー名は入力できなくなります。もう一度正しく。 。 。ブラウザがページを更新しない限り。 。 。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta content="en-us" http-equiv="Content-Language" /><meta content="text/html; charset=utf-8" http-equiv="Content-Type" /><title>Welcome back</title><style type="text/css">.auto-style2 {	text-align: center;}.auto-style1 {	font-size: 36pt;	text-align: left;}.auto-style4 {	font-family: Broadway;	font-size: xx-large;}</style></head><body><table align="center" style="width: 100%">	<tr>		<td>		<div class="auto-style2">			<table align="center" style="width: 100%">				<tr>					<td class="auto-style1">Welcome back</td>					<td>					<img height="89" src="logo.jpg" style="float: right" width="184" /></td>				</tr>			</table>		</div>		<hr />				<p class="auto-style4">Log in:</p>		<form action="login.php" method="post" style="height: 213px">			<div class="auto-style2">				<table style="width: 100%">					<tr>						<td class="auto-style2">User Name:</td>					</tr>					<tr>						<td class="auto-style2">							<input name="user_name" type="text" value="								<?php 									if(isset($_POST['user_name']))									{										print htmlspecialchars($_POST['user_name']);									}								?>							"/>						</td>					</tr>					<tr>						<td class="auto-style2">Password:</td>					</tr>					<tr>						<td class="auto-style2">						<input name="password" type="password" /></td>					</tr>				</table>				<br />				<br />				<input name="submit" type="submit" value="Sign in" /></div>		</form>		</td>	</tr></table><?phprequire_once 'connectDB.php';print '<style type = "text/css" media = "screen">.error {color: red;}</style>';if($_SERVER['REQUEST_METHOD']=='POST'){	$problem = false;	$login = false;	if(empty($_POST['user_name']))	{		$problem = true;		print '<p class = "error">Please enter your user name!</p>';	}	if(empty($_POST['password']))	{		$problem = true;		print '<p class = "error">Please enter a password</p>';	}	if(!$problem)	{		$user = trim(stripslashes($_POST['user_name']));		$pwd = trim(stripslashes($_POST['password']));		$user = mysql_real_escape_string($user);		$pwd = mysql_real_escape_string($pwd);				$q = "SELECT * FROM USER WHERE USER_NAME = '$user' and PASSWORD = '$pwd'";				echo $q;				$result = mysql_query($q);				if(!$result || mysql_num_rows($result) == 0)		{			print '<p class = "error">Wrong Username or Password.</p>';		}		else		{			$row = mysql_fetch_array($result);			$id = $row['USER_ID'];			$name = $row['USER_NAME'];			echo "User ID is ".$id;						session_start();			$_SESSION['$id'] = $id;						//clear the POST array				$_POST = array();   //网上找来的办法, 但貌似不管用					}			}	else	{		print '<p class = "error">Please try again!</p>';	}		}?></body></html>
ログイン後にコピー



解決を手伝ってください、感謝します


ディスカッション (解決策) に返信します

                            <input name="user_name" type="text" value="                                <?php                                     if(isset($_POST['user_name']))                                    {                                        print htmlspecialchars($_POST['user_name']);                                    }                                ?>                            "/>
ログイン後にコピー
                            <input name="user_name" type="text" value="<?php                                     if(isset($_POST['user_name']))                                    {                                        print htmlspecialchars($_POST['user_name']);                                    }                                ?>"/>
ログイン後にコピー
に変更するだけです
値のスペース、復帰、改行が原因ですトラブル

PHP コード?12345678 if(isset($_P OST['user_nam.... なぜスペースとキャリッジリターンが問題を引き起こすのか説明できますか?
input type=text は単一行のテキストエディタです

次の場合複数行のテキストを指定すると、最初の行だけを編集できます。これが問題の原因です


============ =============== =================


私は学びにここにいます

割り当てるときに問題があるかもしれませんpost の値は前の値を上書きするだけです。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート