2012-01-05 19 views
3

私はいくつかの簡単なhtmlテキスト入力があります。私は、ユーザーがスペースだけでなく何かを入力したことを確認したいと思います。私の下のコードは動作していません。 (形式)PHPがテキスト入力で何かを入力したかどうかを確認します

HTML:

<input type='text' name='email' id='email' /> 

PHP(フォームの "アクション" ページ):mysqlの内部データを入力する際に​​

$email=mysql_real_escape_string(strtolower(trim($_POST['email']))); 

    if (!$email || empty($email)){ // these are the checks that don't work 
      echo "no email entered"; 
    } 
+1

'$ _POST []'の内容を確認しましたか? – Rupak

+0

あなたに感謝してくれてありがとう。 – Robert

+0

"アクション"の部分の前に '$ _POST ['email']'にあるものを確認してください。また、*作業していない*と言うと、空の電子メール変数があるときに「入力された電子メールはありません」と表示されません。 – Josh

答えて

9

まず、あなただけのmysql_real_escape_stringの使用する必要があります。点検中は使用しないでください。

私の典型的なマニュアルの検証構文はこれです:次に

if(!isset($_REQUEST['email']) || strlen(trim($_REQUEST['email'])) == 0){ 
    $errors[] = 'No email provided'; 
} 

確認後、使用mysql_real_escape_stringのmysqlのにデータを入力しながら

mysql_query('UPDATE myusers SET email = "'.mysql_real_escape_string($_REQUEST['email']).'" WHERE id = "'.mysql_real_escape_string($_REQUEST['id']).'"'); 

幸運

1

これを試してみてください。

if(preg_match('/[[:space:]]*/',$email){ 
    echo "no email entered"; 
} 

この方法でもあなたは避けてください改行タブ。私はちょうど「メール」に「テキスト」からの入力フィールドの種類を変更

$email = trim($email); 

if (!isset($email)){ 
    echo "no email entered"; 
} 

または

if ($email == ''){ 
    echo "no email entered"; 
} 
+2

正規表現はこの場合非常に重いと思われます... – rdlowrey

+0

はシンプルで効率的です。どうしたの? –

+1

正規表現が過度にリソースを大量に消費するという通常の議論がありますが、何度も繰り返さない限りパフォーマンスの差が生じるほどです。私はこの問題がもっと重要だと主張しています** **意味論**:PHPはこの種のことを処理する組み込み関数を持っています。組み込みのソリューションが存在する場合は、考えられるシナリオ(正規表現など)を処理するために設計された一般的な広範なソリューションを使用することをお勧めします。 – rdlowrey

1

場合には、自動的にチェックします誰かが有効な電子メールを入力したかどうか。

0

をしようと私の頭の上オフ

+0

これは答えより多くのコメントです。簡単な問題だと思っている場合や、リンクなどを参照したい場合でも、回答の詳細を十分に記述してください。 – Masoud

+0

これは質問に対する答えを提供しません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- i-do-代わりに)。 - [レビューから](/レビュー/低品質の投稿/ 16722419) – svarog

関連する問題