0

私は自分のやり方に問題があり、いくつかの異なる方法を試しましたが、何もうまくいかないようです.

以下のコードのようにすると動作しますが、ユーザー名データは挿入されません。

「解析エラー: 構文エラー、予期しない T_STRING」というエラー ページが表示されます。

<?php

include "connect.php"; //connection string

print "<link rel='stylesheet' href='style.css' type='text/css'>";

print "<table class='maintables'>";

print "<tr class='headline'><td>Post a message</td></tr>";

print "<tr class='maintables'><td>";

if(isset($_POST['submit']))

{

   $name=$_POST['name'];

   $yourpost=$_POST['yourpost'];

   $subject=$_POST['subject'];

   if(strlen($name)<1)

   {

      print "You did not type in a name."; //no name entered

   }

   else if(strlen($yourpost)<1)

   {

      print "You did not type in a post."; //no post entered

   }

   else if(strlen($subject)<1)

   {

      print "You did not enter a subject."; //no subject entered

   }

   else

   {

      $thedate=date("U"); //get unix timestamp

      $displaytime=date("F j, Y, g:i a");

      //we now strip HTML injections

      $subject=strip_tags($subject);

      $name=strip_tags($name);

      $yourpost=strip_tags($yourpost); 

      $insertpost="INSERT INTO forumtutorial_posts(author,title,post,showtime,realtime,lastposter) values('$name','$subject','$yourpost','$displaytime','$thedate','$name')";

      mysql_query($insertpost) or die("Could not insert post"); //insert post

      print "Message posted, go back to <A href='index.php'>Forum</a>.";

   }



}

else

{

   print "<form action='post.php' method='post'>";

   print "<input type='hidden' name='name' value='<? echo("$_SESSION[usr_name]");?>' size='20'><br>";

   print "Subject:<br>";

   print "<input type='text' name='subject' size='20'><br>";

   print "Your message:<br>";

   print "<textarea name='yourpost' rows='5' cols='40'></textarea><br>";

   print "<input type='submit' name='submit' value='submit'></form>";



}

print "</td></tr></table>";

?>

ユーザーが好きなようにユーザー名を入力できるようにすると機能しますが、システムセッションで上記のコードのように機能するようにしたいと思います。

別の方法はありますか?ありがとう!

4

1 に答える 1

1

問題

あなたは多くの詳細を提供しませんでしたが、ここに少なくとも 1 つの構文エラーがあります。

print "<input type='hidden' name='name' value='<? echo("$_SESSION[usr_name]");?>' size='20'><br>";

文字列と変数の間に有効な文字が不足しているだけです:

print "<input (...) echo("$_SESSION[usr_name]"); (...)";
                         ^^                 ^^

しかし、あなたが何を望んでいたかを推測しようとすると、基本的にPHPコードを文字列内、PHPコード内に含めているに違いありませんが、それは間違っています.

解決

代わりに次のようにします。

print "<input type='hidden' name='name' value='$_SESSION[usr_name]' size='20'><br>";

またはさらにクリーン:

print '<input type="hidden" name="name" value="' . $_SESSION[usr_name] . '" size="20"><br>';
于 2012-06-16T05:40:00.733 に答える