Formulier naar database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Harm Hofstede

Harm Hofstede

26/05/2015 21:07:10
Quote Anchor link
Ik wil graag de inhoud van een formulier wegschrijven in een database. Het gaat om www.koekelen.nl waarbij een link naar een website op basis van het formulier wordt geopend in een nieuw venster.
De links die bezocht worden, wil ik graag opslaan in een database.

Ik heb al:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
mysql_connect('localhost','USERNAME','PASSWORD');
mysql_select_db('DATABASE') or die (mysql_error());

// if (isset($_POST['submit']))
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

   $wat = addslashes($_POST['optone']);
   $waar = addslashes($_POST['sengines']);
   $trefwoord = addslashes($_POST['searchterms']);

    mysql_query("INSERT INTO opdrachten (wat, waar, trefwoord) VALUES ('".$wat."', '".$waar."', '".$trefwoord."')") or die (mysql_error());

  }

else
  {  
?>


<form name="searchform" id="searchform" onSubmit="return dosearch();" method="POST" >
<select name="optone" id="optone" required title="Maak een keuze" size="1" onchange="setOptions(document.searchform.optone.options[document.searchform.optone.selectedIndex].value);">
<option disabled selected value="">Koekelen naar...</option>
<option value="Informatie">Informatie</option>
<option value="Afbeelding">Afbeelding</option>
<option value="Video">Video</option>
<option value="Anders">Anders...</option>
</select><br> <br>
<select name="sengines" id="sengines" required title="Maak een keuze" size="1">
<option value="" selected="selected" dis>Kies eerst w&aacute;t je wil zoeken</option>
</select>
<br><br>
<input type="text" name="searchterms" onfocus="clearThis(this)" value="zoekwoord(en)" class="textbox" required>
<br><br>
<input type="submit" name="submit" class="imgClass1" id="knop"/>
</form>
<?
  }
?>



De databaseverbinding werkt, want als ik foutieve inloggegevens invul, krijg ik een foutmelding,
Er wordt alleen niets naar de database weggeschreven:

De database export:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
-- phpMyAdmin SQL Dump
-- version 4.1.12
-- http://www.phpmyadmin.net
--
-- Machine: localhost:3306
-- Gegenereerd op: 26 mei 2015 om 21:06
-- Serverversie: 5.5.32-cll-lve
-- PHP-versie: 5.4.33

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Databank: `r4gusoc0`
--

-- --------------------------------------------------------

--
-- Tabelstructuur voor tabel `opdrachten`
--

CREATE TABLE IF NOT EXISTS `opdrachten` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `wat` varchar(255) NOT NULL,
  `waar` varchar(255) NOT NULL,
  `trefwoord` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

--
-- Gegevens worden gexporteerd voor tabel `opdrachten`
--

INSERT INTO `opdrachten` (`id`, `wat`, `waar`, `trefwoord`) VALUES
(1, '', '', ''),
(2, 'afbeelding', 'WikiKids', 'molen'),
(3, 'afbeelding', 'WikiKids', 'molen'),
(4, '', '', '');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Regel 2 en 3 heb ik handmatig ingevoerd.

Kan iemand deze beginner helpen?

Dankjewel alvast!
Gewijzigd op 26/05/2015 21:11:21 door - Ariën -
 
PHP hulp

PHP hulp

26/04/2024 09:48:01
 
- Ariën  -
Beheerder

- Ariën -

26/05/2015 21:11:49
Quote Anchor link
Welke melding krijg je?
 
Thomas van den Heuvel

Thomas van den Heuvel

26/05/2015 21:22:05
Quote Anchor link
- je selecteert geen character encoding bij het maken van een database verbinding
- je escaped je database-input niet (addslashes is NIET bestemd voor db-input), dit kan gevaarlijk zijn
- je maakt gebruik van mysql_ functies; deze zijn al ca. 10 jaar verouderd, gebruik PDO of MySQLi

- last but not least (en wss de veroorzaker van je problemen): wat doet dit: onSubmit="return dosearch();"? POST je ook echt iets?
 
Harm Hofstede

Harm Hofstede

26/05/2015 22:19:32
Quote Anchor link
O jee, ik ben dus geen phpprogrammeeur en weet bestaande code niet eens te hergebruiken.
Er komt geen foutmelding, alleen ook niets in de database...

@thomas: kun je me wijzen op een stukje code dat wel doet wat ik wil? ik ben weer goed in heel andere dingen, zoals moois maken voor het onderwijs...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.