2

私はプロジェクトを作成するのがとても新しいので、気にしないでください。php、html、cssを使用してコードを作成し、データをmysqlデータベースに保存しました。すべて問題ありませんが、電子メールの値はデータベースに %email として保存されます。誰でも私を助けてください。

電子メール フィールドの html コード:

<div class="row">
        <div class="label">Email Id</div>
        <div class="inputaddr">
            <input type="text" id="email" required="required" class="detail" name="email"/>
        </div>
        <div class="label">Category</div>
        <div class="inputmobile">
            <input type="text" id="category" required="required" class="shortdetail" name="category"/>
        </div>                  
    </div> <!-- end of 5th row -->

.php ファイル:

<?php
$conn = mysql_connect("localhost", "root", "");
$db = mysql_select_db('ssitdashboard', $conn) or die(mysql_error());

if(isset($_REQUEST['submit'])){
    $fullname = $_POST['fullname'];
    $fname = $_POST['fname'];
    $mname = $_POST['mname'];
    $raddr = $_POST['raddr'];
    $laddr = $_POST['laddr'];
    $email = $_POST['email'];
    $sex = $_POST['sex'];
    $dob = $_POST['dob'];
    $bloodgroup = $_POST['bloodgroup'];
    $mobile = $_POST['mobile'];
    $rmobile = $_POST['rmobile'];
    $category = $_POST['category'];
    $usn = $_POST['usn'];
    $branch = $_POST['branch'];
    $sem = $_POST['sem'];
    $eca = $_POST['eca'];
    $year = $_POST['years'];
    $quota = $_POST['quota'];

    $que = "INSERT INTO personal_details(name, fname, mname, raddr, laddr, email, sex, dob, blood_group, mobile, rmobile, category, usn, branch, sem, eca, year, quota) VALUES ('$fullname', '$fname', '$mname', '$raddr', '$laddr', '%email', '$sex', '$dob', '$bloodgroup', '$mobile', '$rmobile', '$category', '$usn', '$branch', '$sem', '$eca', '$year', '$quota')";
    if(mysql_query($que)){
//          echo "<script>alert('You have registered successfully')</script>";
//          echo "<script>window.open('http://www.ssit.edu.in')</script>";  
        header("Location:thankyou.html");
        exit;

    }

}

?>

データベースでは、電子メール フィールドは varchar(30) として取得されます

4

3 に答える 3

1

SQL ステートメントを に変更%emailしてみてください。$email

ただし、さらに、この実装は SQL インジェクションに対して脆弱であるため、PDOを調べてください。

PDO の実装について詳しく説明するには、状況に応じて次のようにすることができます。

$username = "root";
$password = "";
$host = "localhost";
$dbname = "ssitdashboard";

$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');

try{
   $db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);
}catch(PDOException $ex){
   die("Failed to connect: ".$ex->getMessage());
}

$dbこれで、クエリを実行できるPDO 接続が保存されました。PHP 5.4 を使用していない場合は、マジック クォートを考慮する必要があるかもしれません。そのことを覚えておいてください。

それ以外の場合は、次のようにクエリステートメントを作成します..

$query = "INSERT INTO personal_details ( name, fname, mname, raddr, laddr, email, sex, dob, blood_group, mobile, rmobile, category, usn, branch, sem, eca, year, quota ) VALUES ( :name, :fname, :mname, :raddr, :laddr, :email, :sex, :dob, :blood_group, :mobile, :rmobile, :category, :usn, :branch, :sem, :eca, :year, :quota )"

$_POSTその後、変数の値を、変数の:前にあるパラメーター (のように)にバインドします:name。あなたはそれを次のようにします:

$query_params = array( ':name' => $_POST['fullname'], ':fname' => $_POST['fname'], ':mname' => $_POST['mname'], ':raddr' => $_POST['raddr'], ':laddr' => $_POST['laddr'], ':email' => $_POST['email'], ':sex' => $_POST['sex'], ':dob' => $_POST['dob'], ':blood_group' => $_POST['bloodgroup'], ':mobile' => $_POST['mobile'], ':rmobile' => $_POST['rmobile'], ':category' => $_POST['category'], ':usn' => $_POST['usn'], ':branch' => $_POST['branch'], ':sem' => $_POST['sem'], ':eca' => $_POST['eca'], ':year' => $_POST['years'], ':quota' => $_POST['quota']);

最後に、ステートメントとパラメーターを取得したので、前に作成した$db変数を使用して、ステートメントを準備および実行します。

$statement = $db->prepare($query);
$result = $statement->execute($query_params);

データベースに変数を ing しているだけなのでINSERT、必要なのはそれだけです。ただし、データを処理している場合SELECTは、上記を実行した後にこのようなことを行うことができます...

$rows = $statement->fetchAll();

$rowこれで、foreach ステートメントを使用して、各データベース テーブル内の列ヘッダーを参照できるようになりました。

$bloodArray = array();
foreach($rows as $row){
   if(isset($row['blood_group'])){
       $bloodArray[] = $row['blood_group'];
   }
}

お役に立てば幸いです。遅れて申し訳ありません。

于 2013-07-25T17:07:24.003 に答える