PHP scriptje: ik kom er niet uit...

Status
Niet open voor verdere reacties.

Dragoboss

Gebruiker
Lid geworden
30 jul 2009
Berichten
68
Ik probeer een scriptje te maken, met een paart "inputs" en een knop, die vervolgend de info in een database zet.
Ik heb 3 bestandjes, heb een aantal dingen al anders geprobeerd, maar kom er gewoon niet uit.
Huidige bestandjes:
sidenote.php
Code:
<html>
	<head>
		<title>Admin Post Page</title>
	</head>
	<body>
		<h2>Type your post here:</h2>
		<form action="insert.php" method="post">
			Title: <input type="text" name="title"><br />
			Post: <textarea cols="50" rows="10" name="content"></textarea><br />
			Posted by: <input type="text" name="author"></br />
			<hr>
			<input type="submit" value="Post it!">
			<input type="reset" name="reset" value="Clear fields"><br />
			<a href="./index.php">Return to homepage</a>
		</form> 
	</body>
</html>
insert.php
Code:
<?php
	require 'conf.php';
	// variables van ingevulde informatie //
	$title = $_POST['title'];
	$content = $_POST['content'];
	$author = $_POST['author'];
	$date = $_POST['date'];
				
	// database verbinding //
	$conn = mysql_connect("$host","$user","$pass");
	@mysql_select_db($db) or die( "Unable to select database");
	
	// query voor verwerking informatie in database //
	mysql_query("INSERT INTO".$tablename."(`title`,`content`,`author`,`date`)
	VALUES (".$title.",".$content.",".$author.",".$date.")");
	
	// sluit mySQL connectie //
	mysql_close($conn);
?>
conf.php
Code:
<?php
	$host = "localhost";
	$user = "root";
	$pass = "dpdr+2bf";
	
	$db = "site";	
	$tablename = "sidenote";
?>
 
Laatst bewerkt:
Allereerst: hoe heten de bestanden, en wat doen ze wel, en wat niet...
 
Het spijt me daarvan, toen ik het postte had ik erge haast, dus moest het kort houden.

Ik heb de name van de bestandjes erbij gezet nu.
De bedoeling is:
In sidenote.php zijn een paar inputs, waar een titel, een bericht, en een auteur-naam.
De info over uit die inputs zouden daarmee met "form action="insert.php" door het insert.php bestandje in een database gezet worden.
Het derde bestandje is config voor database verbinding, database-naam, table naam.
 
Ik neem aan dat je dit in de haast ook hier niet goed post en dat het "live" wel goed staat

require 'conf.php' en niet config.php in je insert.php bestand
 
:S :S ik ben weer lekker bezig, hiero offline klopt hij wel :)

Aangepast. Heb nu ookal iemand anders die ernaar kijkt, komt er ook niet uit :P
 
wat zie je als je wat doet? zijn er meldingen? enz enz

eerste opmerking: heb je wel een server iets waarvan je dit draait? dit werkt niet zoals een standaard html bestand!

Code:
<?php
	require 'conf.php';
	// variables van ingevulde informatie //
	$title = mysql_real_escape_string($_POST['title']);
	$content = mysql_real_escape_string($_POST['content']);
	$author = mysql_real_escape_string($_POST['author']);
	$date = mysql_real_escape_string($_POST['date']);
				
	// database verbinding //
	$conn = mysql_connect("$host","$user","$pass");
	mysql_select_db($db) or die( "Unable to select database");
	
	// query voor verwerking informatie in database //
	mysql_query("INSERT INTO `".$tablename."` (`title`,`content`,`author`,`date`)
	VALUES ('".$title."','".$content."','".$author."','".$date."')");
	
	// sluit mySQL connectie //
	mysql_close($conn);
?>

ik heb hier wat aanpassingen gedaan:
1) VEILIGHEID: mysql_real_escape_string op ALLES wat van de user input komt, zodat je geen last heb van SQL injection
2) Syntax: spatie achter INSERT INTO, quotes om de values...
3) backquotes om de tabelnaam (niet verplicht)

indien je toch net begint met dit soort zaken, zou ik aanraden ook direct naar mysqli en parameter binding te kijken, indien je geinteresseerd bent, maak ik hier wel een kort voorbeeldje.
 
Laatst bewerkt:
Hij gaf geen berichten, maar zette ook niks in database, en ja, ik gebruik momenteel "USB Webserver" en heb nog een website online ergens anders...

Ik heb je tips / veranderingen toegepast.
Hij lijkt nu te werken, nu nog snel een output maken op andere pagina :)

Thx voor de hulp :)
 
Dan waren het de wijzigingen in de mysql query. Zet erachter: or die(mysql_error());

Dan krijg je de sql foutmelding
 
Als ik jou was zou ik nog wel even je eerste post wijzigen. Daar staat nu je wachtwoord (in conf.php).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan