2012-03-18 7 views
3

が起こって、私は私のページをロードするときは、次の2つのエラーを取得しています:私は、これらの変数の両方を定義行うPHP - 注意:未定義の変数が二回

Notice: Undefined variable: realtor in C:\Program Files\EasyPHP-5.3.9\www\cglst\images\addform.php on line 255 

Notice: Undefined variable: phone in C:\Program Files\EasyPHP-5.3.9\www\cglst\images\addform.php on line 256 

ので、私なぜこれらのエラーが出ているのか分かりません。ここに私のコードは次のとおりです。

function addListing() {//if data was provided, insert it into database and confirm 
    //this will allow everything to be sanitized properly 
    require_once "sanitize.php"; 
    $submitted = false; 

    //Checking if values were passed 
    if (isset($_POST['area']) && 
     isset($_POST['price']) && 
     isset($_POST['address']) && 
     isset($_POST['bedrooms']) && 
     isset($_POST['fullbath']) && 
     isset($_POST['halfbath']) && 
     isset($_POST['sqft'])) 
     //if passed, sanitize and set variables accordingly 
     { 
      $area = sanitizeOne(get_post('area'), 'plain'); 
      $price = sanitizeOne(get_post('price'), 'int'); 
      $address = sanitizeOne(get_post('address'), 'plain'); 
      $bedrooms = sanitizeOne(get_post('bedrooms'), 'int'); 
      $fullbath = sanitizeOne(get_post('fullbath'), 'int'); 
      $halfbath = sanitizeOne(get_post('halfbath'), 'int'); 
      $sqft = sanitizeOne(get_post('sqft'), 'int'); 
      $submitted = true; 
     } 

    //optional fields 
    if (isset($_POST['remarks'])) 
     { 
      $remarks = sanitizeOne(get_post('remarks'), 'plain'); 
     } 
    else 
     {$remarks = ' ';} 

    if (isset($_POST['realtor'])) 
     { 
      $remarks = sanitizeOne(get_post('realtor'), 'plain'); 
     } 
    else 
     {$realtor = "Anne-Marie Pelletier";} 

    if (isset($_POST['phone'])) 
     { 
      $remarks = sanitizeOne(get_post('phone'), 'plain'); 
     } 
    else 
     {$phone = "201.710.5500";} 

    if ($submitted) { 
     $query = 'PREPARE statement FROM "INSERT INTO bix(area, price, address, bedrooms, 
       fullbath, halfbath, sqft, remarks, realtor, phone) VALUES(?,?,?,?,?,?,?,?,?,?)"'; 
     mysql_query($query); 
     $query = 'SET 
        @area = "' . $area . '"' . 
        '@price = "' . $price . '"' . 
        '@address = "' . $address . '"' . 
        '@bedrooms = "' . $bedrooms . '"' . 
        '@fullbath = "' . $fullbath . '"' . 
        '@halfbath = "' . $halfbath . '"' . 
        '@sqft = "' . $sqft . '"' . 
        '@remarks = "' . $remarks . '"' . 
        '@realtor = "' . $realtor . '"' . //line 255 
        '@phone = "' . $phone . '"'; //line 256 
     mysql_query($query); 
     $query = 'EXECUTE statement USING @area,@price,@address,@bedrooms,@fullbath,@halfbath,@sqft,@remarks,@realtor,@phone'; 
     mysql_query($query); 
     $query = 'DEALLOCATE PREPARE statement'; 
     mysql_query($query); 
     return true; 
    } 
} 
function get_post($var) 
{ 
    return mysql_real_escape_string($_POST[$var]); 
} 

これは単に、あなたの問題はここにある(ページがこれを行うにはitsselfにフォームを送信する)cut'nを

答えて

2

を、それが提出された場合は、データベースにエントリを追加しています'ペーストエラー。不動産業者はポストパラメータとして設定されている場合は

if (isset($_POST['realtor'])) 
{ 
    $remarks = sanitizeOne(get_post('realtor'), 'plain'); 
} 
else 
    {$realtor = "Anne-Marie Pelletier";} 

は、あなたが代わり$realtorへの$remarksにポスト変数の値を割り当てます。

$phoneは全く同じ問題があります。

+0

ah、whoops!ありがとう。 – mavix

+0

ok新しい問題:私のデータベースにエントリを追加していますが、すべてのフィールドは何とかnullです... – mavix

+0

'SET'クエリにはパラメータを区切るカンマがありません。引用符は' ''でなければなりません'' 'を指定してください。それをエコーし​​て、PhpMyAdminのように動作するかどうかを確認してください。いずれの場合でも、戻り値をチェックしていないので、診断がはるかに簡単になります。 –

0

$ realtorまたは$ phoneには何も割り当てません。

if (isset($_POST['realtor'])) 
     { 
      $remarks = sanitizeOne(get_post('realtor'), 'plain'); 
     } 

あなたはおそらく$電話用$realtor = sanitizeOne(get_post('realtor'), 'plain');

同じを使用することを意味します。

1

電話の値を使用して、携帯電話のコンテンツへの変数の発言を設定している渡された場合は、そのあなたが固定電話を設定している設定されていない場合

変更:

if (isset($_POST['phone'])) 
    { 
     $remarks = sanitizeOne(get_post('phone'), 'plain'); 
    } 
else 
    {$phone = "201.710.5500";} 

if (isset($_POST['phone'])) 
    { 
     $phone = sanitizeOne(get_post('phone'), 'plain'); 
    } 
else 
    {$phone = "201.710.5500";} 

realtorと同じ

すべてnullの問題をデバッグするには、不動産業者や電話なしで、つまりコードのデフォルトを使用してレコードを記録する。それらの2つの値が格納されている場合、問題はsantizeOneにあり、コードを投稿するとヘルプが表示されます。そのすべての最初のクエリの出力をキャプチャし、それを投稿しようとしない場合。

関連する問題