0

ここのphpが単純な変数をIFステートメントに送信していない理由がまったくわかりません。IF ステートメントで $to_who 変数をエコーし​​ようとしましたが、何も表示されません。その結果、INSERT ステートメントは最初の列に何も挿入していません。$to_who 変数には、IF ステートメントまでの番号があります。

$to_who = $_GET['id'];
require('connect.php');

echo $to_who;


$to_who_search = "SELECT * FROM donorstable WHERE donor_id = '$to_who'";

$to_who_raw = mysql_query($to_who_search);

$name = mysql_result($to_who_raw , 0 , 'first_name') . ' ' .  mysql_result($to_who_raw , 0 , 'last_name') ;
$email =  mysql_result($to_who_raw , 0 , 'email');


if(isset($_POST['submit1'])){
    require('connect.php');

//gets from data

$getsubject = $_POST['subject'];
$getmessage = $_POST['message'];

//Gets user's email from table

$getformsql = "SELECT * FROM donorstable WHERE donor_id = '$userid'";
$getfrom = mysql_query($getformsql);

//builds email
$to = $email;
$subject = $getsubject;
$message = $getmessage;
$from = mysql_result($getfrom , 0  , 'email');
$headers = "From:" . $from;
//mail($to,$subject,$message,$headers);
echo "Mail Sent.";

$inserstatement = "INSERT INTO messages VALUES ('$to_who' , '$from' ,'$subject', '$message' , '0' , '')";

mysql_query($inserstatement);

 }

ありがとう

4

1 に答える 1

1

コメントで述べたように、$to_who は、別のページから (クエリ文字列として) 来た場合にのみ値を持ちますが、if(isset($_POST['submit1'])){ の後のコードは GET プロトコルであるため機能しません。使われた。そして、$to_who 変数が空になると言ったフォームにこの Id がある場合、データベースに donor_id='' の何かがない限り、クエリ $to_who_raw は結果を得られません。

さらに、コメントで言ったように別のページから来た場合は、使用するすべての変数$_POST$_GET

したがって、あなたが言ったように両方のプロトコルを機能させるには、コードを少し変更する必要があります。したがって、次のようになります。

require('connect.php');

$to_who = $_REQUEST['id'];

echo $to_who;

//Here I'm guessing that you have all variables send 
// by your FORM OR in a querystring like somepage.php?id=1&subject=adasdad&message=asdasdads
if( isset($_POST['submit1']) || isset($_GET['id'])  ){

$to_who_search = "SELECT * FROM donorstable WHERE donor_id = '$to_who'";
$to_who_raw = mysql_query($to_who_search);

$name = mysql_result($to_who_raw , 0 , 'first_name') . ' ' .  mysql_result($to_who_raw , 0 , 'last_name') ;
$email =  mysql_result($to_who_raw , 0 , 'email');

$getsubject = $_REQUEST['subject']; //see my previous comment
$getmessage = $_REQUEST['message']; 

$getformsql = "SELECT * FROM donorstable WHERE donor_id = '$userid'";
$getfrom = mysql_query($getformsql);

//builds email
$to = $email;
$subject = $getsubject;
$message = $getmessage;
$from = mysql_result($getfrom , 0  , 'email');
$headers = "From:" . $from;
//mail($to,$subject,$message,$headers);
echo "Mail Sent.";

$inserstatement = "INSERT INTO messages VALUES ('$to_who' , '$from' ,'$subject', '$message' , '0' , '')";

mysql_query($inserstatement);

}
于 2013-10-27T03:54:29.683 に答える