2016-09-30 36 views
1

フォームに値を挿入したり、データベースに電子メールが既に存在する場合には大文字小文字を使用したりせずに、index2.htmlにリダイレクトします。私は成功せずにいくつかのアプローチを試みました。値が頭に存在する場合

if (dbNumRows($result) == 1) { 
     header ('Location: index2.php'); 
    }else { 

    $sql = "INSERT INTO tbl_users (Title, fullname, email, gender) 
      VALUES ('$title', '$fullname', '$email', '$gender')"; 
    dbQuery($sql); 
    } 
+0

エラーが表示されましたか? – rbr94

+0

あなたの場所変更後に 'exit();' – Aziz

答えて

2

が他 例では、あなたのINSERTクエリを入れながらここに私のfunction.phpは

<?php 

require 'database.php'; 

$title = $_POST['Title']; 
$fullname = $_POST['fullname']; 
$email = $_POST['email']; 
$gender = $_POST['gender']; 

$sql = "SELECT email FROM tbl_users WHERE email = $email"; 
$result = dbQuery($sql); 
if (dbNumRows($result) == 1) { 
    header ('Location: index2.php'); 
} 

$sql = "INSERT INTO tbl_users (Title, fullname, email, gender) 
     VALUES ('$title', '$fullname', '$email', '$gender')"; 
dbQuery($sql); 

switch ($_POST['gender']) 
{ 
    case 'male': 
     header('Location: male.php'); 
     break; 
    case 'female': 
     include 'female.php'; 
     break; 
    } 
?> 

です残りのコードを読み込んで実行します。だから、単にこれは、問題を修正する必要があります

header('Location: index2.php'); 
die(); 
2

をリダイレクトした後、あなたがPHPを終了する必要がある、またはそれだ - 私のフォーム

<form action="function.php" method="post 
    <input name="Title" placeholder="Title" type="text"> 
    <input name="fullname" placeholder="fullname" type="text"> 
    <input name="email" placeholder="email" type="text"> 
    <select name="gender"> 
     <option selected="selected" value="-">Please select your bank</option> 
     <option value="male">Male</option> 
     <option value="female">Female</option> 
    </select> 
</form> 
+0

'exit()'ではなくdie()を使うのはなぜですか? 'die()'はエラー報告関数であり、エラーログにエントリを生成する可能性があります。 – syck

+1

die()とexit()は同等であるため、いずれも問題ありません。 –

+0

いくつかの言語がありますので、私は失敗の場合のみ 'die'を、成功した場合は' exit'を使用することをお勧めします(推奨)。 – syck

3

これは本当にあなたのコード

WHERE email = $email"; 

あなたのコード/ヘッダの一部である場合、それが引用されていなかったので、失敗している:

WHERE email = '$email'"; 

$emailは文字列であり整数ではないためです。

さらにを,ヘッダーの後に追加する必要があります。そうでないと、コードは引き続き実行します。

参考:

あなたはSQLインジェクションに開放しています。準備されたステートメントを使用してください。

参考文献:<form action="function.php" method="postは、あなたの実際のコードの(再)一部である場合

Plusは、それが引用"とそれのためのクロージング>の両方が不足しています。

<form action="function.php" method="post"> 

脚注:APIを接続するために使用

/でのクエリが不明であるため、エラー報告をクエリにしてPHPを経由してエラーをチェック。

空のフィールドも確認する必要があります。そうしないと、予期しない結果や驚きが生じる可能性があります。


を "私は私のフォームはindex2.htmlにリダイレクトしたい" とあなたは(.phpで)

を使用しています
header ('Location: index2.php'); 

これらのうちの1つでタイプミスをした可能性があります。そうでない場合は、.htmlという拡張子を使用してください。

+0

簡単にするためにコードを入力しました。それらは実際のコードにそのまま残っています。 –

+0

@JaphetSmith人々がコードを投稿すると、文字通り実際の問題の一部になるので、私はチャンスを取っていません.-これは将来の質問/回答者の訪問者のためのものです。 –

+0

@JaphetSmith何か私は理解していませんが、あなたは 'case 'male'のヘッダを使っています: header( 'Location:male.php');' 'case 'female'のインクルメント: 'female.php';を含めます。私の答えにもう一度行き、エラーをチェックしてください。私がそれに加えることのできるものはほかにありません。 –

関連する問題