invoer velden gastenboek
ik heb nu een gastenboek draaiend gekregen en wil er nog een invoer veld bij maken.
dit is het invoer veld naam en email.
//invulveld
echo "Naam:<br />";
echo "<input type= \"text\" name=\"naam\" cols=\"35\" value=\"" . htmlentities($_POST['naam']) . "\"><br />";
echo "Email:<br />";
echo "<input type=\"text\" name=\"email\" cols=\"35\" value=\"" . htmlentities($_POST['email']) . "\"><br />";
echo "<center>Bericht:<br /></center>";
?>
als ik deze bv. kopieer dan krijg ik er een nieuw invoer veld bij en daar kan ik ook een naam aan geven bijvoorbeeld je eigen site.
als ik er wat invoer gekopieerd hij dit ook naar het gekopieerde veld :S
ik kan niet terug vinden waar ik een verandering moet aanbrengen om een veld er bij te krijgen en dit ook een plek in het bericht te geven bv. achter je naam.
hoop dat jullie een kleine uitleg hierover kunnen geven ben nog niet heel wegwijs in php.
Gewijzigd op 29/05/2010 14:44:51 door Joren de Wit
Edit: topic verplaatst naar het juiste board, dit heeft (nog) niets met SQL te maken...
Gewijzigd op 29/05/2010 14:45:32 door Joren de Wit
kan je me een hint geven welk stuk script je wilt zien?
Het stuk waar op dit moment wat gedaan wordt met de huidige invoervelden. Dus waar de variabelen $_POST['naam'] en $_POST['email'] gebruikt worden. Dat zal ook de plaats zijn waar je het nieuwe invoerveld moet gaan verwerken...
$sql = "INSERT INTO gastenboek SET ";
$sql .= "id = ''";
$sql .= ", naam = '" . $_POST['naam'] . "'";
$sql .= ", email = '" . $_POST['email'] . "'";
$sql .= ", bericht = '" . $_POST['bericht'] . "'";
$sql .= ", datum = '" . $datum . "'";
dat moet deze zijn
Nog een paar andere opmerkingen:
- Pas op voor SQL injectie, je script is daar nu gevoelig voor! Gebruik altijd mysql_real_escape_string() of andere variant om data te beveiligen voordat je ze invoert in de database.
- Het is niet nodig om elke regel van je query af te sluiten en op een volgende regel verder te gaan.
Zo kan het ook:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$sql = "
INSERT INTO gastenboek (
naam,
email,
bericht,
datum
)
VALUES (
'".mysql_real_escape_string($_POST['naam'])."',
'".mysql_real_escape_string($_POST['email'])."',
'".mysql_real_escape_string($_POST['bericht'])."',
'".$datum."'
)
";
?>
$sql = "
INSERT INTO gastenboek (
naam,
email,
bericht,
datum
)
VALUES (
'".mysql_real_escape_string($_POST['naam'])."',
'".mysql_real_escape_string($_POST['email'])."',
'".mysql_real_escape_string($_POST['bericht'])."',
'".$datum."'
)
";
?>
en super dat je gelijk de beveiliging ook ff checkt!
NOW()
Gewijzigd op 29/05/2010 15:25:47 door Joren de Wit
ik heb nu dit
CREATE TABLE `gastenboek` (
`id` int(11) NOT NULL auto_increment,
`naam` varchar(100) NOT NULL default '',
`email` varchar(200) NOT NULL default '',
`bericht` text NOT NULL,
`website` varchar(100) NOT NULL default '',
`datum` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
);
krijg trouwens dat er iets fout is gegaan bij het invoeren in de database sinds website er bij staat
Marcel:
hoe kan ik hem uitlijken dat het dus naam datum/ tijd en dan website er achter kan.
Wat bedoel je hiermee? De volgorde waarop jij data weergeeft bepaal je in je PHP script. Hoe ziet je INSERT query er nu uit?
ps. Niet bumpen, als je nog wat wilt toevoegen kun je je bericht aanpassen met het 'edit' knopje...
Gewijzigd op 29/05/2010 15:45:13 door Joren de Wit
ik geef je ff het hele script tis wel lang maar ja tis makkelijker.
ik moet helaas er ff vandoor probeer weer zo snel mogelijk te reageren.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
//voert de SQL code uit
$res = mysql_query($sql);
if (!empty($res))
{
echo "<center><h1>Bericht toegevoegd</h1>";
echo "<p>Bedankt voor je bericht. Het bericht is toegevoegd. Ga nu naar <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten overzicht\">het berichten overzicht</a>.</center>";
}
else
echo "<center>Bericht NIET toegevoegd. Er is iets misgegaan met het invoeren in de database.</center>";
}
elseif ($_GET['show'] == "add" || $_POST['show'] == "add")
{
echo "<center><h1>Voeg een bericht toe</h1>";
echo "<p>Toon mij <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten in gastenboek\">alle berichten in het gastenboek</a>.</p>";
?>
//voert de SQL code uit
$res = mysql_query($sql);
if (!empty($res))
{
echo "<center><h1>Bericht toegevoegd</h1>";
echo "<p>Bedankt voor je bericht. Het bericht is toegevoegd. Ga nu naar <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten overzicht\">het berichten overzicht</a>.</center>";
}
else
echo "<center>Bericht NIET toegevoegd. Er is iets misgegaan met het invoeren in de database.</center>";
}
elseif ($_GET['show'] == "add" || $_POST['show'] == "add")
{
echo "<center><h1>Voeg een bericht toe</h1>";
echo "<p>Toon mij <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten in gastenboek\">alle berichten in het gastenboek</a>.</p>";
?>
Gebruik om je code overzichtelijk weer te geven[/edit]
Gewijzigd op 30/05/2010 21:10:46 door Joren de Wit
ik ben nog even aan het knutselen geweest maar blijkbaar snap ik toch nog niet genoeg van php krijg dat veld er echt niet in.
oeps vergeten te editen sorry
edit : hij neemt het nu wel op in de database nu het weergeven nog.
Gewijzigd op 30/05/2010 21:13:39 door marcel sauer
Ik zie nog nergens een INSERT query in de code die je gegeven hebt?
zag trouwens ook dat er geen tijd bij staat waneer het bericht geplaatst is wel de datum.
in de database wordt dit wel opgenomen.
edit : NICE!!!!!!! het is gelukt!!! duurt ff maar dan heb je ook wat
nu de tijd nog en kan je ook in 1 tabel een enter geven dat de rest van de info er onder komt?
Gewijzigd op 30/05/2010 21:24:28 door marcel sauer
Wat bedoel je met een 'enter geven in een tabel' en waaronder wil je de rest van de info?
krijg trouwens met geen mogelijkheid die tijd achter de datum.
hij is wel in de database opgeslagen.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<tr>
<!--zin voor weergave in bericht-->
<td bgcolor="#A2C0EE" bgstyle="color: #FFCC66;"><?php echo "<p><a>" . $row['naam'] . "</a> schreef op <i>" . $row['show_datum'] . "</i>: <i>" . $row['website'] . "</i> </td>"; ?>
</tr>
<!--zin voor weergave in bericht-->
<td bgcolor="#A2C0EE" bgstyle="color: #FFCC66;"><?php echo "<p><a>" . $row['naam'] . "</a> schreef op <i>" . $row['show_datum'] . "</i>: <i>" . $row['website'] . "</i> </td>"; ?>
</tr>
Tja, dit zijn echt allemaal hele basale vaardigheden waar het nu op aankomt. Als je die nog niet onder de knie hebt, is het misschien toch handiger om nog wat handleidingen door te lezen?
die enter kom ik vanzelf wel achter alleen die tijd heb ik al vanalles geprobeerd.
ik denk dat het te maken heeft met show_datum dat die verandert moet worden maar waarin?