PHP和MySQL留言簿

时间:2017-03-10 17:36:29

标签: php mysql

我正在为PHP初学者课程做作业。

我需要创建一个包含三个php文件的简单留言板:一个用于输入和处理,一个用于显示数据,一个用于数据库连接。

在这个社区的帮助下,我设法让许多功能正常运行。

现在,我希望在名称或输入字段为空时实现错误消息。我在一开始就添加了这段代码:

if (isset($_POST['submit']) &&
$_POST['submit'] == 'Submit')
  {
  if(!isset($_POST['name']) ||
  $_POST['name'] == ""
    {
    $msg = '<P>There is a problem. Did you enter a name? </P>';
    echo $msg;

  } elseif
    (!isset($_POST['message']) ||
    $_POST['message'] == ""
      {
      $msg = '<P>There is a problem. Did you enter a message? </P>';
      echo $msg;

  }else{

这给了我这个错误:

解析错误:语法错误,意外&#39 ;;&#39;在第10行的/Applications/MAMP/htdocs/051R4.php中

有人能指出我正确的方向吗?

这里是完整的代码:

vars.inc

<?php

$hostname = "localhost";
$username = (blanked)
$password = (blanked)
$database = "dbLOI";
$table = "guestbook";

?>

文件1. 051R4.php

    <?php
include 'vars2.inc';

if (isset($_POST['submit']) &&
$_POST['submit'] == 'Submit')
  {
  if(!isset($_POST['name']) ||
  $_POST['name'] == ""
    {
    $msg = '<P>There is a problem. Did you enter a name? </P>';
    echo $msg;

  } elseif
    (!isset($_POST['message']) ||
    $_POST['message'] == ""
      {
      $msg = '<P>There is a problem. Did you enter a message? </P>';
      echo $msg;

  }else{

$link = mysqli_connect($hostname, $username, $password, $database);
if (!$link)
die ('Could not connect: ' . mysqli_connect_error());


$name = mysqli_real_escape_string($link, $_POST["name"]);
$message = mysqli_real_escape_string($link, $_POST["message"]);
$date = date("y-m-d h:i:s"); //date time
$sport = mysqli_real_escape_string($link, $_POST["sport"]);
if(isset($_POST['submit'])) {

//Radio button has been set to "true"
if(isset($_POST['practitioner']) && $_POST['practitioner'] == 'true') $_POST['practitioner'] = TRUE;

//Radio button has been set to "false" or a value was not selected
else $_POST['practitioner'] = FALSE;
}
$practitioner = mysqli_real_escape_string($link, $_POST['practitioner']);

    $query="INSERT INTO Guestbook(name, message, date, sport, practitioner)VALUES('$name', '$message', '$date', '$sport', $practitioner)";
$result=mysqli_query($link, $query);

//check if query successful
if($result){
echo "Successful";
echo "<BR>";

// link to view guestbook page
echo "<a href='051R4.view.php'>View guestbook</a>";
}

else {
echo "ERROR";
}
mysqli_close($link);





require "051R4.view.php";
require "051R4.sign.php";


 ?>

file 2. 051R4.view.php

 <!DOCTYPE html>
<html lang=nl>
<head>
  <meta charset=utf-8>
  <meta name=description content="Guestbook">
  <meta name=keywords content="Guestbook, LOI">
  <title>Inzendopdracht 051R4</title>
</head>
<body>

  <table>
  <tr>
  <td><strong>View Guestbook | <a href="051R4.sign.php">Sign Guestbook</a> </strong></td>
  </tr>
  </table>
  <br>

  <?php

  include 'vars2.inc';

  $link = mysqli_connect($hostname, $username, $password, $database);
  if (!$link)
  die ('Could not connect: ' . mysqli_connect_error());

  $tbl_name="Guestbook"; // Table name

  $sql="SELECT * FROM $tbl_name ORDER BY ID desc";
  $result=mysqli_query($link, $sql);


  while($rows=mysqli_fetch_array($result)){
  ?>

  <table>
  <tr>
  <td><table>
  <tr>
  <td>Name</td>
  <td>:</td>
  <td><? echo $rows['Name']; ?></td>
  </tr>
  <tr>
  <td>Message</td>
  <td>:</td>
  <td><? echo $rows['Message']; ?></td>
  </tr>
  <tr>
  <td valign="top">Date/Time </td>
  <td valign="top">:</td>
  <td><? echo $rows['Date']; ?></td>
  </tr>
  </table></td>
  </tr>
  </table>

  <?php
  }
  mysqli_close($link); //close database


  ?>


</body>
</html>

file 3. 051R4.sign.php

<!DOCTYPE html>
<html lang=nl>
<head>
  <meta charset=utf-8>
  <meta name=description content="Guestbook">
  <meta name=keywords content="Guestbook, LOI">
  <title>Inzendopdracht 051R4</title>
</head>
<body>


<table>
<tr>
<td><strong>Sign Guestbook </strong></td>
</tr>
</table>


<table>
<tr>
<form id="form1" name="form1" method="post" action="051R4.php">
<td>

  <table>
    <tr>
      <td>Name</td>
      <td>:</td>
      <td ><input name="name" type="text" id="name" size="40" /></td>
    </tr>

    <tr>
      <td>Message</td>
      <td>:</td>
      <td><textarea name="message" cols="40" rows="3" id="message"></textarea></td>
    </tr>

    <tr>
      <td>Sport</td>
      <td>:</td>
      <td><select name="sport" id="sport">
          <option value=tennis>tennis</option>
          <option value=voetbal>voetbal</option>
          <option value=running>running</option>
          <option value=tafeltennis>tafeltennis</option>
          <option value=squash>squash</option>
          <option value=wielrennen>wielrennen</option>
          <option value=boksen>boksen</option>
      </select></td>
    </tr>

    <tr>
      <td>Practitioner</td>
      <td>:</td>
      <td><input type="radio" name="practitioner" value=true id=practitioner>yes<br>
      <input type="radio" name="practitioner" value=false checked id=practitioner>no<br>
      </td>
    </tr>


    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="Submit" /> <input type="reset" name="Submit2" value="Reset" /></td>
    </tr>

</table>


</td>
</form>
</tr>
</table>

<table>
<tr>
<td><strong><a href="051R4.view.php">View Guestbook</a> </strong></td>
</tr>
</table>
</body>
</html>

编辑:目前看来主要问题是$ practitioner变量中的某个地方。

编辑2:

我对单选按钮进行了一些编辑,并且我已经添加了以下代码:

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

//Radio button has been set to "true"
if(isset($_POST['Practitioner']) && $_POST['Practitioner'] == 'true')    $_POST['Practitioner'] = TRUE;

//Radio button has been set to "false" or a value was not selected
else $_POST['Practitioner'] = FALSE;
}

我认为这会将Practitioner单选按钮值转换为布尔值,但我似乎无法摆脱这个错误:

PHP注意:未定义的索引:第21行的/Applications/MAMP/htdocs/051R4.php中的从业者

编辑3: 单选按钮现在应该正常工作,没有更多的屏幕或日志文件错误(ERROR除外,表明没有$ result),仍然没有创建留言簿条目。

编辑4:关于错误处理的新问题。我把它贴在了顶部。

0 个答案:

没有答案