0

必須フィールドにエラーがありますが、入力してもエラー メッセージが表示されます。else ステートメントが必要かもしれませんが、正確にはわかりません。

session_start();
// this sets variables in the session
$id = $_SESSION['user_id'];
foreach($_POST as $key => $value)
$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Couldn't make connection.");
$err = array();
$result = mysql_query("SELECT `id` FROM users WHERE `banned` = '0'") or 
die  (mysql_error());

if(empty($_SESSION['$user_id']))  // user not logged in; redirect to somewhere else
if (!empty($_POST['doThesis']) && $_POST['doThesis'] == 'Save')
{
    $result = mysql_query("SELECT `id` FROM users WHERE `banned` = '0'") or 
die (mysql_error());


 list($id) = mysql_fetch_row($result);

 if(empty($abstract))
 {
 $err[] = "ERROR - Enter Abstract";
 //header("Location: thesis.php?msg=$err[0]");
 }
 /// Automatically collects the hostname or domain  like example.com)
 $host  = $_SERVER['HTTP_HOST'];
 $host_upper = strtoupper($host);
 $path   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');

if(empty($err)) {
        for($i = 0; $i < count($_POST["other"]); $i++)
        {
            $thesis_Name = mysql_real_escape_string($_POST['thesis_Name'][$i]);
            $abstract = mysql_real_escape_string($_POST['abstract'][$i]);


$sql_insert = "INSERT into `thesis`
     (`user_id`,`thesis_Name`,`abstract`  )
VALUES
     ('$id','$thesis_Name','$abstract' ";

 mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error());
        }

 header("location: myaccount.php?id=" . $_SESSION['user_id']. "");
}

明らかに、2 番目のヘッダーは、データがボックスにある場合に移動する場所です。最初のヘッダーを含めると、エラー メッセージが URL バーに表示されます。ヘッダー行を含めない場合は、ページ上 (あるべき場所) に表示されます。

エラーが発生した場合、それは私が設定したエラーであり、何かが入力された場合でも、「要約を入力してください」が常に表示されます。

4

1 に答える 1

1

エラーと正確に何を達成したいのかで質問を更新してください..コードを見た後..多くのことが間違っています

A. mysqlリンクで foreach を使用する

// this sets variables in the session
$id = $_SESSION['user_id'];
foreach($_POST as $key => $value)
$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Couldn't make connection.");

B. 互いに矛盾する複数の If ステートメント

if(empty($_SESSION['$user_id']))  // user not logged in; redirect to somewhere else
if (!empty($_POST['doThesis']) && $_POST['doThesis'] == 'Save')
{

C.{ 適切に閉じられていない ...

D. 未使用のクエリの複数のインスタンス

$result = mysql_query ( "SELECT `id` FROM users WHERE `banned` = '0'" ) or die ( mysql_error () );

ERROR - Enter Abstractあなたがそれを持っている理由はあなたが持っていないからなので、あなたの問題のリストでなければなりませんdeclared $abstract...

EDIT 1あなたが必要だと思うもの

session_start ();
// this sets variables in the session
$id = $_SESSION ['user_id'];
$link = mysql_connect ( DB_HOST, DB_USER, DB_PASS ) or die ( "Couldn't make connection." ); // Database
$errors = array (); // Link

/**
 * Check if user is logged in
 */
if (empty ( $_SESSION ['$user_id'] )) {
    header ( "Location: logout.php?action=expired" ); // Change to what you want
    exit ();
}

if (! empty ( $_POST ['doThesis'] ) && $_POST ['doThesis'] == 'Save') {
    $host = $_SERVER ['HTTP_HOST'];
    $host_upper = strtoupper ( $host );
    $path = rtrim ( dirname ( $_SERVER ['PHP_SELF'] ), '/\\' );

    for($i = 0; $i < count ( $_POST ["other"] ); $i ++) {
        $thesis_Name = mysql_real_escape_string ( $_POST ['thesis_Name'] [$i] );
        $abstract = mysql_real_escape_string ( $_POST ['abstract'] [$i] );

        if (empty ( $abstract )) {

            $errors[] =" Adbstract not set for $thesis_Name" ;
            continue;
        }

        $sql_insert = "INSERT into `thesis`
            (`user_id`,`thesis_Name`,`abstract`  )
            VALUES
            ('$id','$thesis_Name','$abstract' ";

        mysql_query ( $sql_insert, $link ) or die ( "Insertion Failed:" . mysql_error () );
    }


    if(count($errors) == 0)
    {
        header ( "location: myaccount.php?id=" . $_SESSION ['user_id'] . "" );
    }
    else
    {
        print_r($errors); // Change it how you want to display your error 
    }

}

ありがとう

于 2012-04-14T07:52:56.887 に答える