blogid toevoegen bij het reageren van een bericht
Ik ben bezig met een reageer systeem aan het maken en dat lukt al aardig alleen nu moet ik nog doen dat hij het blogid van het bericht opslaat in de database als hij het bericht plaats dit heb ik nu :
Code (php)
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
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
<?php
mysql_connect('****','****','***');
mysql_select_db('****') or die (mysql_error());
if(isset($_POST['verzenden']))
{
$snaam = addslashes($_POST['naam']);
$sdatum= addslashes($_POST['datum']);
$sblogid= addslashes($_POST['blogid']);
$sbericht = addslashes($_POST['bericht']);
mysql_query("INSERT INTO reactie (naam, bericht, datum, blogid)
VALUES ('".$snaam."', '".$sdatum."', '".$sblogid."', '".$sbericht."') ") or die (mysql_error());
echo 'verzonden ...';
}
else
{
?>
mysql_connect('****','****','***');
mysql_select_db('****') or die (mysql_error());
if(isset($_POST['verzenden']))
{
$snaam = addslashes($_POST['naam']);
$sdatum= addslashes($_POST['datum']);
$sblogid= addslashes($_POST['blogid']);
$sbericht = addslashes($_POST['bericht']);
mysql_query("INSERT INTO reactie (naam, bericht, datum, blogid)
VALUES ('".$snaam."', '".$sdatum."', '".$sblogid."', '".$sbericht."') ") or die (mysql_error());
echo 'verzonden ...';
}
else
{
?>
<form action="http://pretparkgids.altervista.org/page/artikel.php?artikel=" method="POST">
<table border="0" >
<fieldset>
<b>schrijf een reactie</b>
<tr>
<td>naam:</td>
<td><input name="naam" type="text" /></td>
</tr>
<tr>
<td>datum :</td>
<td><input name="datum" type="text" /></td>
</tr>
<tr>
<td>datum :</td>
<td><input name="datum" type="text" /></td>
</tr>
</tr>
<tr>
<td>text :</td>
<td>
<textarea name="bericht" type="text" cols="40" rows="10"></textarea>
</td>
<td>
<input type="submit" name="verzenden" value="verstuur" /> </td>
</tr>
</table>
</form>
Gewijzigd op 12/09/2012 16:22:30 door Chris dodenwaard
- Gebruik om het versturen van je formulier te controleren dit: if($_SERVER['REQUEST']=="POST")....
- Gebruik geen addslashes om je tegen SQL-injection te beschermen, maar mysql_real_escape_string
- De volgorde van je velden kloppen niet met je values...
- Zorg voor goede foutafhandeling, zonder die()-techniek.
Gewijzigd op 12/09/2012 16:25:02 door - Ariën -
oke, maar hij doet het wel zo ? alleen ik wil niet als ik de blogid in een tekstvak word weergegeven maar gewoon alleen automatisch erbij word geplaatst maar veder doet hij het helemaal
Je script is nu onveilig. Lek dus.
Als je het BlogID veld verandert naar een INT, en een Prim. key en een AUTO-INCREMENT setting meegeeft, dan verhoogt MySQL helemaal zelf de waarde.
Oke ik snap wat je bedoel maar dat heet al ID en dat heb ik al met een AUTO-INCREMENT maar als je bijv. als je op artikel=17 zit en je plaats een bericht moet hij uit de url de 17 hallen en dat is bij mij de blogid
Kan je toch met $_GET doen?
ja maar ik wil niet zo tekstvak zoals <input name="datum" type="text" /> hoe meot ik het dan doen ?
Met GET? Wat wil je nou precies dan?
Voor de datum gebruik je gewoon NOW() in de query.
Quote:
CREATE TABLE IF NOT EXISTS `reactie` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`blogid` int(10) NOT NULL DEFAULT '0',
`naam` varchar(20) NOT NULL DEFAULT '',
`emailadres` varchar(50) NOT NULL DEFAULT '',
`bericht` text NOT NULL,
`datum` varchar(10) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
`id` int(10) NOT NULL AUTO_INCREMENT,
`blogid` int(10) NOT NULL DEFAULT '0',
`naam` varchar(20) NOT NULL DEFAULT '',
`emailadres` varchar(50) NOT NULL DEFAULT '',
`bericht` text NOT NULL,
`datum` varchar(10) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
id= het id van het bericht zelf
blogid= het id van de blog zodat als je bij die blog kijk dat hij allemaal die reactie's van dat blog laad bij 5 reactie's met het getal 5.
voorbeeld url: www.website.nl/artikel=17
maar ik wil als je een reactie toevoeg dat hij bij blogid automatisch het id 17 erbij zet zonder dat je het zelf in hoef te vullen.
ik hoop dat ik het zo iets duidelijker heb uitgelegd
Maak van:
`datum` varchar(10)
even een echte datum.
Geen VARCHAR maar DATE of DATETIME.
- SanThe - op 12/09/2012 21:25:59:
Zie de reactie van Eddy.
Maak van:
`datum` varchar(10)
even een echte datum.
Geen VARCHAR maar DATE of DATETIME.
Maak van:
`datum` varchar(10)
even een echte datum.
Geen VARCHAR maar DATE of DATETIME.
heb het gedaan ;)
En is het gelukt?
nee maar ben wel een stapje veder alleen de blogid erbij sturen lukt mij nog niet veder werkt het helemaal perfect
Die blogID kan je toch uit de GET meegeven?
- Aar - op 12/09/2012 22:26:09:
Die blogID kan je toch uit de GET meegeven?
Hoe kan ik die dan meesturen ? want dan zou het probleem opgelost zijn
En dan kan je met $_GET['blogID'] deze ophalen in je query. Zorg wel voor beveiliging tegen SQL-injection door deze waardes (al komen ze van POST, GET of COOKIE) te filteren met mysql_real_escape_string()...
Gewijzigd op 13/09/2012 18:48:56 door chris dodenwaard