id meesturen bij het maken van Nieuws

Status
Niet open voor verdere reacties.

Martijn31

Gebruiker
Lid geworden
6 sep 2009
Berichten
362
Hallo Helpmij,

Ik ben bezig met een pagina voor het maken van Nieuws. Wanneer iemand een artikel toevoegt kan die persoon zijn naam zelf invullen als auteur. Echter heeft iedere gebruiker ook een id. deze wil ik ongezien meesturen in de database.
zodat er na kan worden gegaan of de auteur ook echt de de schrijver is.

het is dus niet de bedoeling dat de gebruiker ook zelf een id moet invullen.
Code:
if(isset($_POST['submit'])){
                                $id =    ($_POST['id']);
                                $title = filter($_POST['title']);
                                $image = filter($_POST['image']);
				$shortstory = filter($_POST['shortstory']);
				$longstory = filter($_POST['longstory']);
                                $author = filter($_POST['author']);
                                $author_id = mysql_query("SELECT id FROM users WHERE username = '".$username."'");



				mysql_query("INSERT INTO  news (id, title, image, shortstory, longstory, author, author_id) VALUES ('".$id."','".$title."','".$image."', '".$shortstory."', '".$longstory."', '".$author."','".$author_id."')");
				logAction($_SESSION['user']['username'], 'news_add', 'Toegevoegd', $title);

het gaat om $author_id. het id moet worden opgehaalt in de tabel users. Wanneer ik op submit klik op de site werkt alles prima. Alleen bij author_id zet hij het volgende in de database: Resource id #10. kan iemand mij vertellen wat er mis gaat?

p.s ik weet dat er nieuwere versie's van php zijn maar ik blijf graag nog even bij deze.
mvg Martijn
 
1) Stap van de oude mysql_*** functies af. In PHP 7 zijn deze verwijderd. Dus gebruik liever MySQLi of PDO. Hoe langer je wacht met overgaan, hoe meer pijn het zal doen. Eind dit jaar loopt de ondersteuning van de PHP 5-serie af!
2) Een query die je uitvoert geeft geen resultaat met je gewenste data terug, je zult dus nog moeten fetchen met mysq_fetch_assoc().
3) Verder ben je behoorlijk vatbaar voor SQL-injection en corruptie van je query. Gebruik dus mysql_real_escape_string() op je $_POST waardes.

Eigenlijk waar ik de oude PHP mysql_****() functies benoemd moet je eigenlijk een vervangende functie zoeken binnen MySQLi of PDO.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan