• 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

    • Google Chrome 149.0.7827.115 (offline installer) by Razvan Serea The web browser is arguably the most important piece of software on your computer. You spend much of your time online inside a browser: when you search, chat, email, shop, bank, read the news, and watch videos online, you often do all this using a browser. Google Chrome is a browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier. Use one box for everything--type in the address bar and get suggestions for both search and Web pages. Thumbnails of your top sites let you access your favorite pages instantly with lightning speed from any new tab. Desktop shortcuts allow you to launch your favorite Web apps straight from your desktop. Chrome has many useful features built in, including automatic full-page translation and access to thousands of apps, extensions, and themes from the Chrome Web Store. Google Chrome is one of the best solutions for Internet browsing giving you high level of security, speed and great features. Important to know! The offline installer links do not include the automatic update feature. Download web installer: Google Chrome Web 32-bit | Google Chrome 64-bit | Freeware Download: Google Chrome Offline Installer 64-bit | Direct Link | 131.0 MB Download: Google Chrome Offline Installer 32-bit | Direct Link | 119.0 MB Download page: Google Chrome Portable Download: Chrome ARM64 | Direct Link View: Chrome Website | Release Notes Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Oh, it's happening on more than one dialog? This is the dialog that I'm unable to interact with.
    • WSCC - Windows System Control Center 10.0.3.8 by Razvan Serea Windows System Control Center is a free, portable program that allows you to install, update, execute and organize the utilities from various system utility suites. WSCC can install and update the supported utilities automatically. Alternatively, WSCC can use the http protocol to download and run the programs. WSCC is portable, installation is not required. Extract the content of the downloaded zip archive to any directory on your computer. Free for personal use. The setup packages and updates are downloaded directly from their author's website! This edition of WSCC supports the following utility suites: Windows Sysinternals Suite (including support for "Sysinternals Live" service) NirSoft Utilities Mitec and more... WSCC - Windows System Control Center 10.0.3.8 changelog: [NEW] update progress is now visible on the Windows taskbar [FIXED] fixed an issue with the Update dialog [FIXED] minor fixes Download: WSCC (64-bit) | 5.4 MB (Free for personal use) Download: WSCC (32-bit) | 6.3 MB View: WSCC Homepage | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • The level of stupidity at Google and Microsoft is beyond belief. All they are doing by killing this is forcing people to jump over to Firefox and ditch them all together, therefore giving Firefox the market boost it needs to finally crush them all in the end.
    • HWMonitor 1.64 by Razvan Serea HWMonitor is a hardware monitoring program that reads PC systems main health sensors : voltages, temperatures, fans speed. The program handles the most common sensor chips, like ITE® IT87 series, most Winbond® ICs, and others. In addition, it can read modern CPUs on-die core thermal sensors, as well has hard drives temperature via S.M.A.R.T, and video card GPU temperature. Special hardware monitors such as abit® uGuru and Gigabyte® ODIN™ power supplies serie are supported too. HWMonitor 1.64 changelog: Intel Arc G3 & G3 Extreme (Panther Lake). Intel Core Ultra 5 250KF Plus (Arrow Lake Refresh). AMD Ryzen 7 7700X3D (Raphael). AMD Ryzen AI Max+ 495, 492, 488 (Gorgon Halo). AMD Ryzen AI Max 490, 485 (Gorgon Halo). AMD Ryzen AI Max PRO 495, 490, 485, 480 (Gorgon Halo). AMD Ryzen 9 9950X3D2 (Granite Ridge). AMD Ryzen 9 PRO 9965X3D, PRO 9945 (Granite Ridge). AMD Ryzen 7 PRO 9755, PRO 9745 (Granite Ridge). AMD Ryzen 5 PRO 9645 (Granite Ridge). AMD Ryzen AI 7/PRO 450G/GE (Gorgon Point 2). AMD Ryzen AI 5/PRO 440G/GE (Gorgon Point 2). AMD Ryzen AI 5/PRO 435G/GE (Gorgon Point 3). Support of HUDIMM and HSODIMM memory modules. New themes. New real-time graphs. Download: HWMonitor 1.64 | 3.4 MB (Freeware) Download: Portable HWMonitor 1.64 | 2.7 MB View: HWMonitor Homepage | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • 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
      495
    2. 2
      PsYcHoKiLLa
      171
    3. 3
      +Edouard
      163
    4. 4
      Steven P.
      86
    5. 5
      ATLien_0
      77
  • Tell a friend

    Love Neowin? Tell a friend!