Bericht toevoegen in database
iik had een vraagje? kan iemand mij uitleggen hoe ik een nieuws bericht toevoeg in mijn database
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?
include'config.php';
//-- linkje terug naar het nieuws overzicht
//-- haal het specifieke nieuwsbericht uit de database
//-- $HTTP_GET_VARS[id] is het id adres die wordt meegegeven in de link.
$sql = "SELECT id,titel,bericht,datum FROM nieuws WHERE id = $HTTP_GET_VARS[id]";
//-- via de functie mysql_query() kun je de SQL code
//-- die in $sql staat uitvoeren.
$res = mysql_query($sql);
//-- via de functie mysql_fetch_array() zet je
//-- alle velden die je zojusit geselecteerd hebt
//-- van het specifieke nieuwsbericht in een array.
//-- je kunt ze dus aanroepen via $row[kolom_naam].
$row = mysql_fetch_array($res);
//-- zet enters om in <br>'s voor een juiste weergave
$row['bericht'] = nl2br(htmlentities($row['bericht']));
echo "<b>" . $row['titel'] . "</b> | " . $row['datum'] . "<p>";
echo $row['bericht'];
//-- dan nu de reacties
echo "<br><br>";
echo "<b>Reacties:<br></b>";
echo "<br>";
//-- haal alle reacties waarvan tid $HTTP_GET_VARS[id] is
//-- (deze variabele bestaat nog steeds natuurlijk want die
//-- is dus meegegeven in de link van overzicht.php
$sql = "SELECT naam,bericht FROM reacties WHERE tid = " . $_GET['id'];
//-- je weet wat er nu gebeurd met deze functie
$res = mysql_query($sql);
//-- je weet nu wat er gechecked wordt
if (mysql_num_rows($res) >= 1)
{
//-- je weet ook wat hier gebeurt
while ($row = mysql_fetch_array($res))
{
echo "<b>" . $row['naam'] . "</b><br>";
//-- sommige mensen vinden het leuk om
//-- bijvoorbeeld via reacties je layout
//-- te verknoeien. Dit kun je voorkomen
//-- met de functie htmlentities(). Deze
//-- zet namelijk alle HTML codes om in
//-- karakter entities. Dit houdt in dat
//-- van een < %lt; wordt gemaakt. Nu is
//-- het dus onmogelijk om de pagina te
//-- verknoeien via HTML tags..
$row['bericht'] = htmlentities($row['bericht']);
//-- deze moet na de htmlentities() aange-
//-- roepen worden. Dit omdat anders deze
//-- functie weinig zin heeft. Hij zet dan
//-- immers de <br>'s in <br> om :)
$row['bericht'] = nl2br($row['bericht']);
echo $row['bericht'] . "<p>";
}
}
else
{
//-- geen reacties
echo "Plaats hier een reactie !";
}
//-- linkje terug naar het nieuws overzicht
echo "<p><a href=\"archief.php\">nieuws overzicht</a></p>";
?>
include'config.php';
//-- linkje terug naar het nieuws overzicht
//-- haal het specifieke nieuwsbericht uit de database
//-- $HTTP_GET_VARS[id] is het id adres die wordt meegegeven in de link.
$sql = "SELECT id,titel,bericht,datum FROM nieuws WHERE id = $HTTP_GET_VARS[id]";
//-- via de functie mysql_query() kun je de SQL code
//-- die in $sql staat uitvoeren.
$res = mysql_query($sql);
//-- via de functie mysql_fetch_array() zet je
//-- alle velden die je zojusit geselecteerd hebt
//-- van het specifieke nieuwsbericht in een array.
//-- je kunt ze dus aanroepen via $row[kolom_naam].
$row = mysql_fetch_array($res);
//-- zet enters om in <br>'s voor een juiste weergave
$row['bericht'] = nl2br(htmlentities($row['bericht']));
echo "<b>" . $row['titel'] . "</b> | " . $row['datum'] . "<p>";
echo $row['bericht'];
//-- dan nu de reacties
echo "<br><br>";
echo "<b>Reacties:<br></b>";
echo "<br>";
//-- haal alle reacties waarvan tid $HTTP_GET_VARS[id] is
//-- (deze variabele bestaat nog steeds natuurlijk want die
//-- is dus meegegeven in de link van overzicht.php
$sql = "SELECT naam,bericht FROM reacties WHERE tid = " . $_GET['id'];
//-- je weet wat er nu gebeurd met deze functie
$res = mysql_query($sql);
//-- je weet nu wat er gechecked wordt
if (mysql_num_rows($res) >= 1)
{
//-- je weet ook wat hier gebeurt
while ($row = mysql_fetch_array($res))
{
echo "<b>" . $row['naam'] . "</b><br>";
//-- sommige mensen vinden het leuk om
//-- bijvoorbeeld via reacties je layout
//-- te verknoeien. Dit kun je voorkomen
//-- met de functie htmlentities(). Deze
//-- zet namelijk alle HTML codes om in
//-- karakter entities. Dit houdt in dat
//-- van een < %lt; wordt gemaakt. Nu is
//-- het dus onmogelijk om de pagina te
//-- verknoeien via HTML tags..
$row['bericht'] = htmlentities($row['bericht']);
//-- deze moet na de htmlentities() aange-
//-- roepen worden. Dit omdat anders deze
//-- functie weinig zin heeft. Hij zet dan
//-- immers de <br>'s in <br> om :)
$row['bericht'] = nl2br($row['bericht']);
echo $row['bericht'] . "<p>";
}
}
else
{
//-- geen reacties
echo "Plaats hier een reactie !";
}
//-- linkje terug naar het nieuws overzicht
echo "<p><a href=\"archief.php\">nieuws overzicht</a></p>";
?>
dus niet een reactie maar gewoon een heel nieuw bericht ?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
CREATE TABLE nieuws (
id int(11) NOT NULL auto_increment,
titel varchar(50) NOT NULL default '',
bericht text NOT NULL,
datum varchar(16) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;
id int(11) NOT NULL auto_increment,
titel varchar(50) NOT NULL default '',
bericht text NOT NULL,
datum varchar(16) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;
Gewijzigd op 01/01/1970 01:00:00 door Niels van Dijk
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?PHP
$Query =
"
INSERT INTO
jouwtabel
(
veld1,
veld2,
veld3
)
VALUES
(
'".mysql_real_escape_string($_POST['veld1vanform'])."',
'".mysql_real_escape_string($_POST['veld2vanform'])."',
'".mysql_real_escape_string($_POST['veld3vanform'])."'
)
";
?>
$Query =
"
INSERT INTO
jouwtabel
(
veld1,
veld2,
veld3
)
VALUES
(
'".mysql_real_escape_string($_POST['veld1vanform'])."',
'".mysql_real_escape_string($_POST['veld2vanform'])."',
'".mysql_real_escape_string($_POST['veld3vanform'])."'
)
";
?>
Let op dat je nog wel alle controles uitvoert of een veld is ingevuld.
Na de query moet je een fouten afhandeling maken.
Volgens mij wijst de code zich van zelf wel.
ark schreef op 20.05.2009 00:00:
Let op dat je nog wel alle controles uitvoert of een veld is ingevuld.
Na de query moet je een fouten afhandeling maken.
Volgens mij wijst de code zich van zelf wel.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?PHP
$Query =
"
INSERT INTO
jouwtabel
(
veld1,
veld2,
veld3
)
VALUES
(
'".mysql_real_escape_string($_POST['veld1vanform'])."',
'".mysql_real_escape_string($_POST['veld2vanform'])."',
'".mysql_real_escape_string($_POST['veld3vanform'])."'
)
";
?>
$Query =
"
INSERT INTO
jouwtabel
(
veld1,
veld2,
veld3
)
VALUES
(
'".mysql_real_escape_string($_POST['veld1vanform'])."',
'".mysql_real_escape_string($_POST['veld2vanform'])."',
'".mysql_real_escape_string($_POST['veld3vanform'])."'
)
";
?>
Let op dat je nog wel alle controles uitvoert of een veld is ingevuld.
Na de query moet je een fouten afhandeling maken.
Volgens mij wijst de code zich van zelf wel.
nou nee snap het niet
Quote:
nou nee snap het niet
Dan zou je op het minst kunnen vertellen wat je er niet van snapt.
We gaan natuurlijk niet alles voor je maken want dan snap je er nog niets van.
Heb je al eens gezocht hier in het forum?, Of in de script library? Zijn tal van voorbeelden genoeg.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?PHP
$Query =
"
INSERT INTO
nieuws
(
id,
titel,
bericht,
datum
)
VALUES
(
'".mysql_real_escape_string($_POST['id'])."',
'".mysql_real_escape_string($_POST['titel'])."',
'".mysql_real_escape_string($_POST['bericht'])."'
'".mysql_real_escape_string($_POST['datum'])."'
)
";
?>
$Query =
"
INSERT INTO
nieuws
(
id,
titel,
bericht,
datum
)
VALUES
(
'".mysql_real_escape_string($_POST['id'])."',
'".mysql_real_escape_string($_POST['titel'])."',
'".mysql_real_escape_string($_POST['bericht'])."'
'".mysql_real_escape_string($_POST['datum'])."'
)
";
?>
dit heb ik nu maar nu hoe moet ik dat in een form maken ?
Quote:
dit heb ik nu maar nu hoe moet ik dat in een form maken ?
Heb even een opzetje voor je gemaakt.
Met Request_method post kijk je of de server een post ontvangt.
=> id int(11) NOT NULL auto_increment,
Je hoeft niet het id op te slaan in de database want je hebt het veld auto_increment staan, Dus hij voegt zelf het id toe.
Lees goed de oranje text om de code te begrijpen.
Je mag hem nu zelf gaan uitbreiden.
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?PHP
/* Errors weergeven. */
error_reporting(E_ALL);
/* Kijken of er gepost wordt. */
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
/* Kijken of er een titel is ingevuld. */
if(isset($_POST['titel']) && !empty($_POST['titel']))
{
/* Er is een titel ingevuld, We gaan het nu in de database plaatsen. */
/* mysql_real_escape_string gebruiken om sql injection te voorkomen. */
$Query =
"
INSERT INTO
nieuws
(
titel
)
VALUES
(
'".mysql_real_escape_string($_POST['titel'])."'
)
";
/* Resultaat van de query. */
$Resultaat = mysql_query($Query);
/* Kijken of er een result is. */
if(!$Resultaat)
{
/* Er is een fout opgetreden met de query. */
echo 'Helaas konden wij de gegevens niet in de database plaatsen.';
}
else
{
/* Succesvol in de database geplaatst. */
echo 'Het is succesvol in de database geplaats.';
}
}
else
{
/* Er is geen naam ingevuld. */
echo 'Vul A.U.B een naam in.';
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<h3>Database Toevoegen</h3>
<form id="form1" name="form1" method="post" action="">
Titel:
<input type="text" name="titel" id="titel" />
<input type="submit" name="submit" id="submit" value="Submit" />
</form>
</body>
</html>
/* Errors weergeven. */
error_reporting(E_ALL);
/* Kijken of er gepost wordt. */
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
/* Kijken of er een titel is ingevuld. */
if(isset($_POST['titel']) && !empty($_POST['titel']))
{
/* Er is een titel ingevuld, We gaan het nu in de database plaatsen. */
/* mysql_real_escape_string gebruiken om sql injection te voorkomen. */
$Query =
"
INSERT INTO
nieuws
(
titel
)
VALUES
(
'".mysql_real_escape_string($_POST['titel'])."'
)
";
/* Resultaat van de query. */
$Resultaat = mysql_query($Query);
/* Kijken of er een result is. */
if(!$Resultaat)
{
/* Er is een fout opgetreden met de query. */
echo 'Helaas konden wij de gegevens niet in de database plaatsen.';
}
else
{
/* Succesvol in de database geplaatst. */
echo 'Het is succesvol in de database geplaats.';
}
}
else
{
/* Er is geen naam ingevuld. */
echo 'Vul A.U.B een naam in.';
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<h3>Database Toevoegen</h3>
<form id="form1" name="form1" method="post" action="">
Titel:
<input type="text" name="titel" id="titel" />
<input type="submit" name="submit" id="submit" value="Submit" />
</form>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
Fatal error: Call to undefined function: mysql_real_escape_string() in c:\phpdev\www\vandijk\addnieuws.php on line 22
Jah... moet je wel database verbinding voor hebben he..
Hoe ziet je config.php eruit?
*EDIT*
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
ob_start();
//Je gegevens
$mysql_con = "Er is een fout tijdens de connectie opgetreden."; //Fout tijdens de connectie
$mysql_dat = "De verbinding met de database ($data) is mislukt."; //Fout bij selecteren van database
$sitenaam = ""; //Je sitenaam
$titel = "Nieuws"; //Titel (hetgene tussen <title> en </title>
$adminnaam = ""; //Je username om in de admin te komen
$password = ""; //Je wachtwoord om in de admin te komen
//Connectie gegevens
$host = ""; // je hostname, meestal localhost
$user = ""; // je username
$pass = ""; // je wachtwoord
$data = "blog-db"; // je database-naam
//De connectie
mysql_connect($host, $user, $pass) or die($mysql_con);
mysql_select_db($data) or die($mysql_dat);
?>
ob_start();
//Je gegevens
$mysql_con = "Er is een fout tijdens de connectie opgetreden."; //Fout tijdens de connectie
$mysql_dat = "De verbinding met de database ($data) is mislukt."; //Fout bij selecteren van database
$sitenaam = ""; //Je sitenaam
$titel = "Nieuws"; //Titel (hetgene tussen <title> en </title>
$adminnaam = ""; //Je username om in de admin te komen
$password = ""; //Je wachtwoord om in de admin te komen
//Connectie gegevens
$host = ""; // je hostname, meestal localhost
$user = ""; // je username
$pass = ""; // je wachtwoord
$data = "blog-db"; // je database-naam
//De connectie
mysql_connect($host, $user, $pass) or die($mysql_con);
mysql_select_db($data) or die($mysql_dat);
?>
Gewijzigd op 01/01/1970 01:00:00 door Niels van Dijk
ik heb het toegevoegd ;d
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$host = ""; // je hostname, meestal localhost
$user = ""; // je username
$pass = ""; // je wachtwoord
$data = "blog-db"; // je database-naam
?>
$host = ""; // je hostname, meestal localhost
$user = ""; // je username
$pass = ""; // je wachtwoord
$data = "blog-db"; // je database-naam
?>
Gewijzigd op 01/01/1970 01:00:00 door Jeroen G
zit er niet in het is op de localhost
en vergeet het username en password ook niet.. anders wordt dit weer de volgende vraag.
Gewijzigd op 01/01/1970 01:00:00 door Jeroen G
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
$host = "localhost"; // je hostname, meestal localhost
$user = ""; // je username
$pass = ""; // je wachtwoord
$dbas = "blog-db"; // je database-naam
// connect naar database
if(mysql_connect($host, $user, $pass)) {
// selecteer database
mysql_select_db($dbas) or die(mysql_error());
} else {
// connecten naar database is mislukt
echo "Geen connectie met de database.";
exit;
}
?>
$host = "localhost"; // je hostname, meestal localhost
$user = ""; // je username
$pass = ""; // je wachtwoord
$dbas = "blog-db"; // je database-naam
// connect naar database
if(mysql_connect($host, $user, $pass)) {
// selecteer database
mysql_select_db($dbas) or die(mysql_error());
} else {
// connecten naar database is mislukt
echo "Geen connectie met de database.";
exit;
}
?>
ik heb geen ww en geen user
maar hij geeft nog steeds de zelfde fout aan
Quote:
Dat is naar mijn weten onmogelijk. Heb je wel toegang met phpadmin?ik heb geen ww en geen user
En welke php versie heb je geinstalleerd?
Gewijzigd op 01/01/1970 01:00:00 door Jeroen G
je hoeft toch nooit een pass en user in te voeren als je op de localhost als het online moet moet dat wel
Kan zo zijn dat je username root is.
hij geeft nog steeds deze fout aan ?
Welke versie van php gebruik jij eigenlijk?
Bij php5 raad ik aan te kijken naar MySQLi of PDO omdat die sneller en veiliger zijn. (Ja OOK als je offline werkt)