【问题标题】:data not being published: unexpected T_STRING未发布数据:意外的 T_STRING
【发布时间】:2012-06-16 05:35:54
【问题描述】:

我的操作方式有问题,我尝试了一些不同的方法,但似乎没有任何效果。

当我像下面的代码一样拥有它时,它可以工作,但它不会插入用户名数据。

我收到带有消息“解析错误:语法错误,意外的 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>";

?>

如果我这样做是为了让用户按照他们的意愿输入用户名,它可以工作,但我希望它像上面的代码一样与我们的系统会话一起工作。

还有其他方法吗?谢谢!

【问题讨论】:

  • 这是完整的错误信息吗?没有行号?
  • 我也试过这种方式> echo('$_SESSION[usr_name]');?> 但这也不起作用。当我使用该代码时,我没有收到错误消息“解析错误:语法错误,意外的 T_STRING”,但它只是没有将数据插入 mysql。
  • 嗨 Tadeck,解析错误:语法错误,第 176 行 /home/a3761627/public_html/forum/post.php 中的意外 T_VARIABLE
  • 我也试过这个: print '" size="20 ">
    ';
  • 请张贴并清楚标注post.php的第176行

标签: php mysql html forum


【解决方案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>';

【讨论】:

  • 感谢 Tadeck 成功了,我也要清理代码。我只是在学习...
  • 还是有问题。它不只显示非 html 的 html 文本。我猜那是帖子中的错误?对吗?
  • @NickkN:确保这是服务器问题,而不是浏览器问题。当您的浏览器加载页面时,您可以通过按 Ctrl + U 来检查服务器生成的确切 HTML,然后您将在单独的窗口或选项卡中看到生成的 HTML。我敢打赌这是浏览器问题。
猜你喜欢
  • 2012-05-19
  • 2013-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
  • 2019-03-13
相关资源
最近更新 更多