0

i am new to php and started developing one dynamic website, i have created few static pages and one news page.

For news page i have created database in phpmyadmin but i am not able to get any data in my database but i am getting images in images folder, please have look in my codes.

to insert post i have created this :

<html>
<head>
<title>Insert New Post</title>
</head>
<body>
<form method="post" action="insert_post.php" enctype="multipart/form-data">

<table allign="center" border="10" width="600">
<tr>
<td align="center" colspan="5" bgcolor="yellow">
<h1>Insert New Post Here</h1></td>
</tr>

<tr>
<td align="right">Post Title:</td>
<td><input type="text" name="title" size="40"></td>
</tr>

<tr>
<td align="right">Post Author:</td>
<td><input type="text" name="author"></td>
</tr>

<tr>
<td align="right">Post image:</td>
<td><input type="file" name="image"></td>
</tr>

<tr>
<td align="right">Post content:</td>
<td><textarea name="content" cols="40" rows="20"></textarea></td>
</tr>

<tr>
<td align="center" colspan="6"><input type="submit" name="submit" value="Publish Now"></td>
</tr>

</table>

</form>
</body>
</html>

<?php
include('includes/connect.php');


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

     $title = $_POST['title'];
     $date = DATE('y-m-d');
     $author = $_POST['author'];
     $content = $_POST['content'];
     $image_name = $_FILES['image']['name'];
     $image_type = $_FILES['image']['type'];
     $image_size = $_FILES['image']['size'];
     $image_tmp = $_FILES['image']['tmp_name'];

     if($title == '' or $author =='' or $content ==''){
     echo "<script>alert('Any filed is empty')</script>";
     exit();
     }
     if($image_type=="image/jpeg" or $image_type=="image/png" or $image_type=="image/gif"){

     if($image_size<=50000){
     move_uploaded_file($image_tmp,"images/$image_name");
     }
     else {
     echo "<script>alert('image is larger, only 50kb size is allowed')</script>";
     }
     }
     else {
     echo "<script>alert('image type is invalid')</script>";
     }

     $query = "insert into post (post_title,post_date,post_author,post_image,post_content) values ('$title','$date','$author','$image_name','$content')";

     if(mysql_query($query)){
     echo "<center><h1>Post has been Published</h1></center>";

     }
}

?>

Now i have created connect.php files, witch have following codes:

<?php
mysql_connect("localhost","root","");
mysql_select_db("rect");

?>

i am new to php so sorry if i did anything wrong in question and thank you in advance.

Isaac Bennetch
  • 11,830
  • 2
  • 32
  • 43
Desai
  • 11
  • 4

1 Answers1

1

Note:

  • Make sure you have a table named post with this corresponding column names: post_title, post_date, post_author, post_image, post_content
  • And as suggested by @spencer7593, I'll try to convert your code to mysqli_* as their is a problem with your connection, and also to prevent SQL injections.

If you're gonna insert date into your database, instead of:

$date=DATE("y-m-d"); /* YY-MM-DD */

you should do:

$date=DATE("Y-m-d"); /* YYYY-MM-DD */

First is we fix your connection to your database (connect.php):

<?php

$mysqli = new mysqli("localhost", "root", "", "rect");

/* CHECK CONNECTION */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

?>

Then change your insert query like this simple example:

$stmt = $mysqli->prepare("INSERT INTO post (post_title, post_date, post_author, post_image, post_content) VALUES (?,?,?,?,?)");

$stmt->bind_param('sssss',$title,$date,$author,$image_name,$content); /* BIND VARIABLES TO THE QUERY */

$stmt->execute(); /* EXECUTE QUERY */

?>
Community
  • 1
  • 1
Logan Wayne
  • 6,001
  • 16
  • 31
  • 49