• 0

Help integrating php/mysql with existing html page.


Question

<p>Hello, I know little about web design so I hope this makes sense.

I am trying to integrate a very basic php site into an existing html website to create a blog. I have one page where I can enter info which is then published onto a page called blogentries.php which works fine on it's own. I want the info to be published into the blogentries div on my website that says "I WANT BLOG ENTRIES HERE" close to the bottom.

I thought it would be a simple case of making the connection to the database in the header and put the rest of the php into the div, but obviously there is more to it than that.

I was wondering if someone could look at the code for the two pages and explain how it should be done?

Thank you

blogentries.php


<?php
mysql_connect("localhost:8889","root","root");
mysql_select_db("Alexweb");
echo "<html><head><link rel='stylesheet' href='style.css' type='text/css'></head><body>";
$query = "select * from content";
echo "<p>Query: ".$query;
$result = mysql_query($query);

$rows = mysql_num_rows($result);
for($i=0;$i<$rows;$i++) {
$row = mysql_fetch_array($result);
echo "<div class='".$row['class']."'>";
echo "<p> Date: ".$row['date']."</p>";
echo "<p><h3>".$row['title']."<?h3></p>";
echo "<p><img src='".$row['image']."'></p></div><p></p>";
echo "<p>".$row['text']."</p>";

}

echo "</body></html>";
?>
[/CODE]

[b]blogpage in html[/b]

[CODE]
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>AJWatson - Blog</title>
<meta name="keywords" content=" art design, digital media design, graphic design, logo design, ">
<link rel="shortcut icon" href="favicon.ico" />
<!-- Load CSS -->
<link href="css/style.css" rel="stylesheet" type="text/css" />
<!-- Load Fonts -->
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Droid+Serif:regular,italic,bold,bolditalic" type="text/css" />
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Droid+Sans:regular,bold" type="text/css" />
</head>

<body>

<!--This is the START of the header-->
<div id="topcontrol" style="position: fixed; bottom: 5px; left: 960px; opacity: 1; cursor: pointer;" title="Go to Top"></div>
<div id="header-wrapper">
<div id="header">
<div id="logo"><a href="index.html"><img src="images/logo.png" width="100" height="80" alt="logo" /></a></div>
<div id="header-text">
<h4>Blog</h4>
<h6><a href="index.html">Home</a> ? Blog</h6>
</div>
</div>
</div>
<!--END of header-->


<!--This is the START of the menu-->
<div id="menu-wrapper">
<div id="main-menu">
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a href="portfolio.html">Portfolio</a></li>
<li><a class="selected" href="blog.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>

<!--This is the START of the footer-->
<div id="footer">
<div id="social-box">
<ul>
<li>
<div class="facebook"><a href=""></a></div>
</li>
<li>
<div class="twitter"><a href=""></a></div>
</li>
<li>
<div class="linkedin"><a href=""></a></div>
</li>
</ul>
</div>
<h6></h6>
</div>
<!--END of footer-->

</div>
<!--END of menu-->

<!--This is the START of the content-->
<div id="content">

<!--This is the START of the blog-->

<div id="blogentries">


I WANT BLOG ENTRIES HERE


</div>
<!--END of blog-->

</div>
<!--END of content-->

</div>
</body>
</html>
[/CODE]

Recommended Posts

  • 0

Thanks, I tried that but still have the same issue.

Ok, sorry that it didn't work. I just figured it wasn't finding it because the path wasn't starting from the parent directory. I apologize that I couldn't be more helpful.

  • 0

Ok, sorry that it didn't work. I just figured it wasn't finding it because the path wasn't starting from the parent directory. I apologize that I couldn't be more helpful.

No worries. It's all worth trying for me :)

  • 0

i'm not entirely sure what you mean. i don't want to keep bugging people with basic questions though so i'll do a bit of googling. thanks again for your help :)

I think this is what he means:


if(isset($_FILES['photo']))
{
$photo = $_FILES['photo'];
}
[/CODE]

No worries. It's all worth trying for me :)

True. It is a learning experience. :)

  • 0

I think this is what he means:


if(isset($_FILES['photo']))
{
$photo = $_FILES['photo'];
}
[/CODE]

Just to add to this, if you're checking if the photo has a name, or if it's FALSE, default to false. So:

[CODE]
$photo = FALSE;
if(isset($_FILES['photo']))
{
$photo = $_FILES['photo']['name'];
}
[/CODE]

For further explanation: PHP is a bit wonky on what it returns/type checking. It's best to look up in the php manual what a function returns, although in this case since you're dealing with an associative array, the manual doesn't actually say. In that case, you have to check what it's returning, assume it could return a whole bunch of strange things, or check for FALSE on something further up.

Two other things, you're going to want to do something to all of those text entries you have coming in, throwing $_POST['text'] into a MySQL database is a disaster waiting to happen. Also, it's easier (IMO), to use NOW() for the MySQL time entry, then convert it using date() when you're pulling it out.

Feel free to ask questions here, I'm learning myself, I find it helpful to answer things like this. :)

  • 0

thanks for the replies guys and the extra php advice.

so should the check for whether or not $photo is False be in the php that gathers the info from, or the php that outputs the image and text the form? I thought it would be in the php that gathers the info from the form but I've tried putting it in there with no luck. This is what I tried...


//This gets all the other information from the form
$title=$_POST['title'];
$date= date("d F Y H:i:s");
$photo = FALSE;
if(isset($_FILES['photo']))
{
$photo = $_FILES['photo']['name'];
}
$text=$_POST['text'];

[/CODE]

  • 0

You should use is_uploaded_file() rather than isset when checking if the file is there.

Also I'd set $photo to an empty string, else the DB may store "FALSE" literally.

$photo = '';
if(is_uploaded_file($_FILES['photo']['tmp_name']))
{
	$photo = $_FILES['photo']['name'];
}

And you really need to escape your input texts with mysql_real_escape_string()

//This gets all the other information from the form
$title = mysql_real_escape_string($_POST['title']);
$date = date("d F Y H:i:s");
$photo = '';
if(is_uploaded_file($_FILES['photo']['tmp_name']))
{
	$photo = $_FILES['photo']['name'];
}
$text = mysql_real_escape_string($_POST['text']);

And the <b> problem from my last post is in some other lines as well, you should check.

  • 0

You check in addblog.php... I just realized this is probably an issue with how MySQL is storing "FALSE". So when printing the results, use this instead:


if(!empty($info['photo']))
{
echo "<p><img src=/blogimages/" . $info['photo'] . " /></p><br />";
}
else
{
echo "<p><img src='/blogimages/noimage.png' /></p><br />";
}
[/CODE]

isset checks for boolean values, empty will check for NULL, FALSE, and empty strings.

  • 0

Thanks so much guys! I managed to get it working with is_uploaded_file() and then the !empty command.

I will look over my code and tidy it up, I know it's a bit of a mess. I will also check out the mysql_real_escape_string() in more depth too, I had a quick look but didn't quite get it.

Thanks again, really appreciate it.

  • 0

Long story short, just put mysql_real_escape_string() around text you're going to insert into a database. Like:


$post = mysql_real_escape_string($_POST['post_text']);
[/CODE]

Again though, before this hits the web you should have an understanding of mysqli, and preferably prepared statements. Although it might seem like a lot to grasp right now, it will save you a lot of trouble in the long run.

  • 0

Long story short, just put mysql_real_escape_string() around text you're going to insert into a database. Like:


$post = mysql_real_escape_string($_POST['post_text']);
[/CODE]

Again though, before this hits the web you should have an understanding of mysqli, and preferably prepared statements. Although it might seem like a lot to grasp right now, it will save you a lot of trouble in the long run.

Thanks for the tip, I will make sure I check it out. My brain is about to explode with php for now so I'll take a look tomorrow with fresh eyes. :)

  • 0

Thanks so much guys! I managed to get it working with is_uploaded_file() and then the !empty command.

I will look over my code and tidy it up, I know it's a bit of a mess. I will also check out the mysql_real_escape_string() in more depth too, I had a quick look but didn't quite get it.

Thanks again, really appreciate it.

No problem! I am glad that I was able to help. Also, helping others learn different programming languages and techniques is a nice challenge, keeps the concepts fresh in my mind, and I enjoy going to look up things that I don't know or remember (in an attempt to help out) so that I can learn or remember them as well. It is a win-win situation for everyone involved! :)

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Im in Ohio, and my VPN endpoint is in Boston. If that helps, it does happen both on and off the VPN. and again only in Edge.
    • It is such a shame. I used to really respect Neowin's articles.
    • So.... slower fixes and slower security updates are preferred? I mean, there is no goldilocks zone here until it can literally update without ever needing a restart, and even then I'm sure someone would complain.
    • [New Deal] Save 73% on a lifetime EbookMagic Starter Plan by Steven Parker Today's highlighted Neowin Deal comes via our Apps + Software section, where you can get a lifetime subscription and save 73% on a lifetime EbookMagic Starter Plan. EbookMagic helps turn your ideas into complete, professionally formatted ebooks without spending weeks writing, editing or designing. Simply enter your title, genre and key details, and EbookMagic creates structured content, polished layouts and a custom cover in just minutes. Instead of juggling separate writing tools, formatting software and cover generators, EbookMagic handles the entire ebook creation process in one place. Generate content, customize your book and export ready-to-use files designed for publishing, sharing or personal projects. EbookMagic Lifetime gives aspiring authors, creators and entrepreneurs the flexibility to build, publish and scale projects over time without ongoing subscription fees. Whether you're building lead magnets, creating educational resources or starting your self-publishing journey, EbookMagic simplifies the process and helps bring ideas to life faster. AI-Powered Ebook Creation AI Writing Assistant: Transform prompts & ideas into complete ebook content. 12 Professional Writing Styles: Write using multiple styles and tones. Author Style Mimicking: Adapt content to preferred writing styles. Personalized Cover Generator: Produce custom ebook covers automatically. AI Audiobook Creator: Convert your books into professional-sounding audiobooks using a variety of realistic AI voices (1 audio book included). Built to Help You Create Faster Lightning Fast Creation: Build complete ebooks in minutes. Target Audience Optimization: Tailor content to specific demographics and reader preferences. Intelligent Chapter Structure: Automatically organize chapters and generate a table of contents. 15+ Genres Supported: Create fiction, non-fiction, business, romance, self-help and more. Quality Assurance: Improve readability and engagement with built-in content optimization. Convert to Interactive Books: Transform standard content into interactive experiences. 57 Major Languages Support: Produce ebooks across supported languages. Ready for Download & Publishing Ready for Sale: Create professional books that can be published and sold on Amazon KDP and other major publishing platforms Kindle & Print-Ready Formats: Export files prepared for publishing. No Watermarks: Create cleaner deliverables for publishing. Commercial Usage Rights: Sell or publish your ebooks. Built-In Editing Tools: Make edits before export. What You'll Get 5 Ebooks per month Each generated ebook can support up to 500,000 words per book. Up to 50 cover generations 12 professional writing styles Author style mimicking Personalized Cover Generator Convert to Interactive Books Multiple languages support Kindle & Print-ready formats Commercial usage rights No watermarks Good to know Length of access: Lifetime Redemption deadline: Redeem your code within 30 days of purchase Access options: Desktop and mobile Max number of devices: Up to 3 devices can be used per license. Available for both new and existing users that are not on lifetime plan. Updates included A lifetime subscription to EbookMagic Starter Plan normally costs $149, but this deal can be yours for just $39.99, that's a saving of $109. For full terms, specifications, and license info please click the link below. Get this EbookMagic Starter Plan lifetime deal for just $39.99 (was $149) Although priced in U.S. dollars, this deal is available for digital purchase worldwide. Support queries If you have queries or need support for any of the Neowin Deals, please use the contact form here. Neowin Deals are managed and sold by StackCommerce who represent Neowin on an affiliate basis. Why we post these deals We post these because we earn commission on each sale so as not to rely solely on advertising, which many of our readers block. It all helps toward paying staff reporters, servers and hosting costs. So for those that keep moaning and complaining, be thankful we're still online for you to even do that. Other ways to support Neowin Whitelist Neowin by not blocking our ads Create a free member account to see fewer ads Make a donation to support our day to day running costs Subscribe to Neowin - for $14 a year, or $28 a year for an ad-free experience Disclosure: Neowin benefits from revenue of each sale made through our branded deals site powered by StackCommerce.
  • Recent Achievements

    • One Month Later
      Clizby earned a badge
      One Month Later
    • One Month Later
      Timaximus earned a badge
      One Month Later
    • Week One Done
      Timaximus earned a badge
      Week One Done
    • Rookie
      FBSPL went up a rank
      Rookie
    • First Post
      davidbazooked earned a badge
      First Post
  • Popular Contributors

    1. 1
      +primortal
      492
    2. 2
      PsYcHoKiLLa
      169
    3. 3
      +Edouard
      164
    4. 4
      Steven P.
      85
    5. 5
      ATLien_0
      76
  • Tell a friend

    Love Neowin? Tell a friend!