Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Form syöttää tyhjän tiedon ja sitten halutun

Grimmi [05.11.2005 08:32:53]

#

Jooh, elikkä mulla on sivuillani tekeillä admin paneli jolla voi lisätä/poistaa/muokata asioita, mutta kun testasin lisätä asioita, se tekee ekana tyhjän viestin MySQL tietokantaan, sitten se laittaa sen minkä haluan.

Index.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">

<HTML>

<HEAD>

  <META http-equiv="content-type" CONTENT="text/html; charset=iso-8859-1">

  <TITLE>Purgatory INC</TITLE>

  <META NAME="description" CONTENT="Purgatory INC official homepage">

  <META NAME="author" CONTENT="Grim Gurnarok">

  <LINK HREF="http://www.purgatory-inc.com/css/main.css" TYPE="text/css" REL="StyleSheet">

</HEAD>

<BODY>

<?php



if( isset($_GET['area']) )

{

   $area = $_GET['area'];

}

else

{

   $area = NULL;

}



if( isset($_GET['name']) )

{

   $name = $_GET['name'];

}

else

{

   $name = NULL;

}
?>

<DIV ID="menu">
<P ID="admin">Admin Panel</P>
<A HREF="../" TITLE="Back to normal area">Back to normal</A>
<A HREF="?area=news" TITLE="Add News">Add News</A>
</DIV>

<DIV ID="txt">
<?php
if($area == "")
{

$connection = mysql_connect("localhost", "guest", "") or die("Connection failed.");

mysql_select_db("purgatory_inc", $connection) or die("Unable to select database.");

$search = mysql_query(" SELECT * FROM news ORDER BY `date` DESC ", $connection);

while($result = mysql_fetch_array($search))

	{

		$author = $result['Author'];

		$entry = $result['Entry'];
		$date = $result['Date'];
		$title = $result['Title'];

		echo "<TABLE ID=\"news\" CELLPADDING=\"5px\" CELLSPACING=\"0px\">\n";
		echo "		<TR>\n";

		echo "		<TD ID=\"news\">Title:</TD>\n";

		echo "		<TD ID=\"news1\">$title</TD>\n";
		echo "		</TR><TR>\n";
		echo "		<TD ID=\"news\">Author:</TD>\n";
		echo "		<TD ID=\"news1\">$author</TD>\n";
		echo "		</TR><TR>\n";
		echo "		<TD ID=\"news\">Date:</TD>\n";
		echo "		<TD ID=\"news1\">$date</TD>\n";
		echo "		</TR><TR>\n";
		echo "		<TD ID=\"news\">Entry:</TD>\n";
		echo "		<TD ID=\"news1\">$entry</TD>\n";
		echo "		</TR>\n";
		echo "</TABLE><BR>\n";

	}

}
else
{
	include("$area.txt");
}

?>
</DIV>


</BODY>

</HTML>

Tällä hetkellä on vain news kohta käytössä.

news.txt

<FORM ACTION="<?echo $PHP_SELF?>" METHOD="post">
	Author:<BR>
	<INPUT TYPE="text" NAME="name"><BR>
	Title:<BR>
	<INPUT TYPE="text" NAME="title"><BR>
	Entry:<BR>
	<TEXTAREA COLS="40" ROWS="4" name="entry"></TEXTAREA><BR>
	<INPUT TYPE="submit" VALUE="Post the news">
</FORM>

<?php

$connection = mysql_connect("localhost", "baka", "baka") or die("Connection failed.");

mysql_select_db("purgatory_inc", $connection) or die("Unable to select database.");

$author = $_POST['name'];
$title = $_POST['title'];
$entry = $_POST['entry'];
$date = date('d.m.Y');

mysql_query("INSERT INTO news(Author, Title, Entry, Date) VALUES ('$author','$title','$entry','$date')");

?>

Miksi se tekee tyhjän lähetyksen kantaan, kun avaan news kohdan?

ajv [05.11.2005 09:31:48]

#

No siksi, että tuo SQL-lause suoritetaan joka kerta, kun lataat sivun. Laitat siihen jonkun ehdon, että jos tiedot on lähetetty, niin silloin tallennetaan, muuten näytetään vaikka tuo lisäyslomake. Got it?

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta