Jump to content

Data problems adding to DB


Mr Chris

Recommended Posts

Hi Guys,

This is driving me mental! I have a simple form:

[code]
<?php

session_start();

//Connect to DB
include("*************");

// POST variables
$section=$_POST['section'];
$added_by=$_POST['added_by'];
$headline=$_POST['headline'];
$opening=$_POST['opening'];
$body_text=$_POST['body_text'];


if (empty ($_POST['opening']) || empty ($_POST['body_text']))
{
  $msg = "There is an error";
}
if (!isset ($error))
{
$query = "INSERT INTO cms_stories(section,added_by,headline,opening,body_text) VALUES ('$section','$added_by','$headline','$opening','$body_text')";
  $msg = "A new Story has been added to the database - Please Click <a href=\"http://index\">Here</a> to return to the main menu";
  
  $link = mysql_connect;
  mysql_select_db($db);
  $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  mysql_close();
}
?>

<html>
<head>
<title>Add to DB</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<form action="add_blank.php" method="post" name="frmAdd">
  <p><?php echo $msg?></p>
  <table width="737" border="0" cellspacing="1" cellpadding="1">
  <tr>
    <td>Section</td>
    <td>
      <select name="section">
        <option value="news">News</option>
        <option value="sport">Sport</option>
        <option value="business">Business</option>
        <option value="viator">Viator</option>
      </select>
    </td>
  </tr>
  <tr>
    <td>Added By</td>
    <td>
      <input name="added_by" type="text" size="35" maxlength="128" value="">
    </td>
  </tr>
  <tr>
    <td height="35">Headline</td>
    <td height="35">
      <input type="text" size="48" maxlength="255" name="headline">
    </td>
  </tr>
  <tr>
    <td>Opening Paragraph</td>
    <td>
      <textarea name="opening" wrap="virtual" rows="4" cols="80"></textarea>
    </td>
  </tr>
  <tr>
    <td>Body Text:</td>
    <td>
      <textarea name="body_text" wrap="virtual" rows="25" cols="80"></textarea>
    </td>
  </tr>
</table>
<input type="Submit" name="Submit" value="Submit">
<input type="reset" name="Reset" value="Clear Story">
</form>
</body>
</html>
[/code]

Now I want the form to submit the data to the database:
UNLESS
The body_text and opening textboxes contain no values
IF this is the case
Echo a message to the screen and don’t submit the data
IF they do contain data
Then the data will be submitted

But the form loads with the message [b]‘A new Story has been added to the database - Please Click here[/b]

As shown [url] [a href=\"http://www.slougheaz.org/greenock/new_news/add_tester.php\" target=\"_blank\"]http://www.slougheaz.org/greenock/new_news/add_tester.php[/a][/url]

And it ignores my rules!

Can anyone please advise as this is driving me potty!

Thanks

Chris
Link to comment
Share on other sites

[code]$msg = "There is an error";
}
if (!isset ($error
[/code]

I don't see where $error is set...

Also, why not just do this instead of setting the message variable?
[code]
if(form data was empty){
echo "There is an error";
exit();
} else {
process here;
}
[/code]

If you wish to show the form again, you could stick the form as being part of a function, and call the function when the page is loaded. If post data is no of value, and it was submitted, instead of exit instantly - it could just call the function to display the form once more...
Link to comment
Share on other sites

Aggghh!!!

Thanks:

I've modified my form now to say:

1) IF Submit is hit but 'opening' and 'body' are empty then output an error
2) IF there is no error then submit the data

I'm pretty sure i'm nearly there, but it does not like this line:

[b] empty ($_POST['opening']) || empty ($_POST['body_text']) [/b]

Parse error: parse error, unexpected T_VARIABLE in *********/*****/new_news/*****.php on line 19

[code]
<?php

session_start();

//Connect to DB
include("*****");

// POST variables
$section=$_POST['section'];
$added_by=$_POST['added_by'];
$headline=$_POST['headline'];
$opening=$_POST['opening'];
$body_text=$_POST['body_text'];


if (isset($_POST['Submit']))
{
  empty ($_POST['opening']) || empty ($_POST['body_text'])
  $error = "There is an error";
}
if (!isset ($error))
{
$query = "INSERT INTO cms_stories(section,added_by,headline,opening,body_text) VALUES ('$section','$added_by','$headline','$opening','$body_text')";
  $msg = "A new Story has been added to the database - Please Click <a href=\"http://index\">Here</a> to return to the main menu";
  
  $link = mysql_connect;
  mysql_select_db($db);
  $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  mysql_close();
}
?>

<html>
<head>
<title>Add to DB</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<form action="add_blank.php" method="post" name="frmAdd">
  <p><?php echo $msg?> <?php echo $error?></p>
  <table width="737" border="0" cellspacing="1" cellpadding="1">
  <tr>
    <td>Section</td>
    <td>
      <select name="section">
        <option value="news">News</option>
        <option value="sport">Sport</option>
        <option value="business">Business</option>
        <option value="viator">Viator</option>
      </select>
    </td>
  </tr>
  <tr>
    <td>Added By</td>
    <td>
      <input name="added_by" type="text" size="35" maxlength="128" value="">
    </td>
  </tr>
  <tr>
    <td height="35">Headline</td>
    <td height="35">
      <input type="text" size="48" maxlength="255" name="headline">
    </td>
  </tr>
  <tr>
    <td>Opening Paragraph</td>
    <td>
      <textarea name="opening" wrap="virtual" rows="4" cols="80"></textarea>
    </td>
  </tr>
  <tr>
    <td>Body Text:</td>
    <td>
      <textarea name="body_text" wrap="virtual" rows="25" cols="80"></textarea>
    </td>
  </tr>
</table>
<input type="Submit" name="Submit" value="Submit">
<input type="reset" name="Reset" value="Clear Story">
</form>
</body>
</html>
[/code]
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.