2 formulieren in 1 script
ik heb een script en daar zitten 2 formulieren in.
alleen als ik de eerst eheb gehad opent de volgende maar als ik daar op veranderen klik gaat die terug naar het begin.
hoe kan ik ervoor zorgen dat hij dan verder gaat met het script?
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
74
75
76
77
78
79
80
81
82
83
84
85
86
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
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php
include 'config.php';
error_reporting(E_ALL);
ini_set('display_errors', 1);
if (isset($_POST['kiezen']))
{
$query = mysql_query("SELECT * FROM project WHERE naam='".$_POST['project']."'");
$gegevens = mysql_fetch_object($query);
if (isset($_POST['veranderen']))
{
if (mysql_query("UPDATE project SET name='".$_POST['naam']."' beschrijving='".$_POST['beschrijving']."' WHERE id='".$gegevens->id."'"))
{
echo 'Gegevens zijn succesvol geupdated.';
}
else
{
echo 'Kon gegevens niet veranderen.';
}
}
else
{
echo "<table>";
echo "<form method=\"POST\" action='".$_SERVER['REQUEST_URI']."'>";
echo "<tr>";
echo "<td>Naam: </td>";
echo "<td><input type=\"text\" name=\"naam\" value='".$gegevens->naam."' /></td>";
echo "</tr>";
echo "<tr>";
echo "<td>Beschrijving: </td>";
echo "<td><textarea name=\"beschrijving\" cols=\"40\" rows=\"7\">".$gegevens->beschrijving."</textarea></td>";
echo "</tr>";
echo "<tr>";
echo "<td></td>";
echo "<td><input type=\"submit\" name=\"veranderen\" value=\"veranderen\" /></td>";
echo "</tr>";
echo "</form>";
echo "</table>";
}
}
else
{
echo "<table>";
echo "<form method=\"POST\" action='".$_SERVER['REQUEST_URI']."'>";
echo "<tr>";
echo "<td>Projectnaam: </td>";
echo "<td><select name=\"project\">";
$q_projecten = "SELECT naam FROM project";
$projecten = mysql_query($q_projecten);
while ($project = mysql_fetch_object($projecten))
{
echo "<option name=\"project1\">" . $project->naam . "</option>";
}
echo "</select></td>";
echo "</tr>";
echo "<tr>";
echo "<td></td>";
echo "<td><input type=\"submit\" name=\"kiezen\" value=\"kiezen\" /></td>";
echo "</tr>";
echo "</form>";
echo "</table>";
}
?>
include 'config.php';
error_reporting(E_ALL);
ini_set('display_errors', 1);
if (isset($_POST['kiezen']))
{
$query = mysql_query("SELECT * FROM project WHERE naam='".$_POST['project']."'");
$gegevens = mysql_fetch_object($query);
if (isset($_POST['veranderen']))
{
if (mysql_query("UPDATE project SET name='".$_POST['naam']."' beschrijving='".$_POST['beschrijving']."' WHERE id='".$gegevens->id."'"))
{
echo 'Gegevens zijn succesvol geupdated.';
}
else
{
echo 'Kon gegevens niet veranderen.';
}
}
else
{
echo "<table>";
echo "<form method=\"POST\" action='".$_SERVER['REQUEST_URI']."'>";
echo "<tr>";
echo "<td>Naam: </td>";
echo "<td><input type=\"text\" name=\"naam\" value='".$gegevens->naam."' /></td>";
echo "</tr>";
echo "<tr>";
echo "<td>Beschrijving: </td>";
echo "<td><textarea name=\"beschrijving\" cols=\"40\" rows=\"7\">".$gegevens->beschrijving."</textarea></td>";
echo "</tr>";
echo "<tr>";
echo "<td></td>";
echo "<td><input type=\"submit\" name=\"veranderen\" value=\"veranderen\" /></td>";
echo "</tr>";
echo "</form>";
echo "</table>";
}
}
else
{
echo "<table>";
echo "<form method=\"POST\" action='".$_SERVER['REQUEST_URI']."'>";
echo "<tr>";
echo "<td>Projectnaam: </td>";
echo "<td><select name=\"project\">";
$q_projecten = "SELECT naam FROM project";
$projecten = mysql_query($q_projecten);
while ($project = mysql_fetch_object($projecten))
{
echo "<option name=\"project1\">" . $project->naam . "</option>";
}
echo "</select></td>";
echo "</tr>";
echo "<tr>";
echo "<td></td>";
echo "<td><input type=\"submit\" name=\"kiezen\" value=\"kiezen\" /></td>";
echo "</tr>";
echo "</form>";
echo "</table>";
}
?>
opmerking en tips/hints zijn natuurlijk welkom;)
Script is lek => SQL-Injection.
Zie mysql_real_escape_string().
beveiliging komt nog;)
Beveiliging behoort tot de eerste prioriteit en niet tot de laatste.
hoe kan ik dit oplossen?
Over SQL-injection is veel te vinden:
http://www.phphulp.nl/php/tutorial/overig/sql-injection-guide/444/
Hopelijk kom je weer verder....
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
include 'config.php';
error_reporting(E_ALL);
ini_set('display_errors', 1);
if (isset($_POST['kiezen']))
{
$project = $_POST['project'];
$query = mysql_query("SELECT * FROM project WHERE naam='".$project."'");
$gegevens = mysql_fetch_object($query);
if (isset($_POST['veranderen']))
{
if (mysql_query("UPDATE project SET name='".mysql_real_escape_string($_POST['naam'])."' beschrijving='".mysql_real_escape_string($_POST['beschrijving'])."' WHERE id='".$gegevens->id."'"))
{
echo 'Gegevens zijn succesvol geupdated.';
}
else
{
echo 'Kon gegevens niet veranderen.';
}
}
else
{
echo "<table>";
echo "<form method=\"POST\" action='".$_SERVER['REQUEST_URI']."'>";
echo "<tr>";
echo "<td>Naam: </td>";
echo "<td><input type=\"text\" name=\"naam\" value='".$gegevens->naam."' /></td>";
echo "</tr>";
echo "<tr>";
echo "<td>Beschrijving: </td>";
echo "<td><textarea name=\"beschrijving\" cols=\"40\" rows=\"7\">".$gegevens->beschrijving."</textarea></td>";
echo "</tr>";
echo "<tr>";
echo "<td></td>";
echo "<input type=\"hidden\" name=\"kiezen\" />";
echo "<td><input type=\"submit\" name=\"veranderen\" name=\"kiezen\"value=\"veranderen\" /></td>";
echo "</tr>";
echo "</form>";
echo "</table>";
}
}
else
{
echo "<table>";
echo "<form method=\"POST\" action='".$_SERVER['REQUEST_URI']."'>";
echo "<tr>";
echo "<td>Projectnaam: </td>";
echo "<td><select name=\"project\">";
$q_projecten = "SELECT naam FROM project";
$projecten = mysql_query($q_projecten);
while ($project = mysql_fetch_object($projecten))
{
echo "<option name=\"project1\">" . $project->naam . "</option>";
}
echo "</select></td>";
echo "</tr>";
echo "<tr>";
echo "<td></td>";
echo "<td><input type=\"submit\" name=\"kiezen\" value=\"kiezen\" /></td>";
echo "</tr>";
echo "</form>";
echo "</table>";
}
?>
include 'config.php';
error_reporting(E_ALL);
ini_set('display_errors', 1);
if (isset($_POST['kiezen']))
{
$project = $_POST['project'];
$query = mysql_query("SELECT * FROM project WHERE naam='".$project."'");
$gegevens = mysql_fetch_object($query);
if (isset($_POST['veranderen']))
{
if (mysql_query("UPDATE project SET name='".mysql_real_escape_string($_POST['naam'])."' beschrijving='".mysql_real_escape_string($_POST['beschrijving'])."' WHERE id='".$gegevens->id."'"))
{
echo 'Gegevens zijn succesvol geupdated.';
}
else
{
echo 'Kon gegevens niet veranderen.';
}
}
else
{
echo "<table>";
echo "<form method=\"POST\" action='".$_SERVER['REQUEST_URI']."'>";
echo "<tr>";
echo "<td>Naam: </td>";
echo "<td><input type=\"text\" name=\"naam\" value='".$gegevens->naam."' /></td>";
echo "</tr>";
echo "<tr>";
echo "<td>Beschrijving: </td>";
echo "<td><textarea name=\"beschrijving\" cols=\"40\" rows=\"7\">".$gegevens->beschrijving."</textarea></td>";
echo "</tr>";
echo "<tr>";
echo "<td></td>";
echo "<input type=\"hidden\" name=\"kiezen\" />";
echo "<td><input type=\"submit\" name=\"veranderen\" name=\"kiezen\"value=\"veranderen\" /></td>";
echo "</tr>";
echo "</form>";
echo "</table>";
}
}
else
{
echo "<table>";
echo "<form method=\"POST\" action='".$_SERVER['REQUEST_URI']."'>";
echo "<tr>";
echo "<td>Projectnaam: </td>";
echo "<td><select name=\"project\">";
$q_projecten = "SELECT naam FROM project";
$projecten = mysql_query($q_projecten);
while ($project = mysql_fetch_object($projecten))
{
echo "<option name=\"project1\">" . $project->naam . "</option>";
}
echo "</select></td>";
echo "</tr>";
echo "<tr>";
echo "<td></td>";
echo "<td><input type=\"submit\" name=\"kiezen\" value=\"kiezen\" /></td>";
echo "</tr>";
echo "</form>";
echo "</table>";
}
?>
en ik krijg deze foutmeldingen:
Notice: Undefined index: project in /customers/dnnsdesign.nl/dnnsdesign.nl/httpd.www/dijkstraglas/projectbewerken.php on line 8
Notice: Trying to get property of non-object in /customers/dnnsdesign.nl/dnnsdesign.nl/httpd.www/dijkstraglas/projectbewerken.php on line 15
Kon gegevens niet veranderen.
hoe kan ik dit veranderen. hij bewaard de gegevens maar 1x en meot 2x worden zodat die in het 2de formulier ook werkt.
Gewijzigd op 11/06/2010 21:43:24 door dennis meijer
je handeld de post verkeerd af!
ok dat is ook een manier maar er komen 2 formulieren en hier is er maar plek voor 1?
print "<pre>\n";
print_r ($_POST);
print "</pre>\n";
...dan wordt alle 'inhoud' van je $_POST op het scherm getoond. De foutmelding wijst erop dat $_POST['project'] op dat moment niet bestaat.
Volgens mij wijst Noppes hier ook op.
PS. moest die hidden input niet in het tweede formulier? (advies SanThe??)
Gewijzigd op 11/06/2010 21:59:37 door Arnold C
hoe krijg ik dat voor elkaar.?
Je hebt plek voor 2 formulieren!
Output naar de browser komt altijd als laatste en bij de postafhandeling echo je in feite niets naar de browser.
script logica:
- sessie starten indien van toepassing
- scripts inlcuden
- database connectie indien van toepassing
- post / get / seesie / cookie afhandeling
- info vergaren naar aanleiding van de request / afhandelig
- output naar de browser
Gewijzigd op 11/06/2010 22:05:44 door Arnold C
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
//include 'config.php';
session_start();
function kiezen_formulier()
{
// Kiezen Formulier
echo '<table>';
echo '<form method="POST" action="' . $_SERVER['REQUEST_URI'] . '">';
echo '<tr>';
echo '<td>Projectnaam: </td>';
echo '<td><select name="project">';
$sql_projecten = "SELECT naam FROM project";
$result_projecten = mysql_query($sql_projecten);
if($result_projecten)
{
while ($row_project = mysql_fetch_assoc($result_projecten))
{
echo '<option value="' . $row_project['naam'] . '">' . $row_project['naam'] . '</option>';
}
}
else
{
// ERROR
}
echo '</select></td>';
echo '</tr>';
echo '<tr>';
echo '<td></td>';
echo '<td><input type="submit" name="kiezen" value="kiezen" /></td>';
echo '</tr>';
echo '</form>';
echo '</table>';
}
function veranderen_formulier($naam, $beschrijving)
{
// Veranderen Formulier
echo '<table>';
echo '<form method="POST" action="' . $_SERVER['REQUEST_URI'] . '">';
echo '<tr>';
echo '<td>Naam: </td>';
echo '<td><input type="text" name="naam" value="' . $naam . '" /></td>';
echo '</tr>';
echo '<tr>';
echo '<td>Beschrijving: </td>';
echo '<td><textarea name="beschrijving" cols="40" rows="7">' . $beschrijving . '</textarea></td>';
echo '</tr>';
echo '<tr>';
echo '<td></td>';
echo '<td><input type="submit" name="veranderen" value="veranderen" /></td>';
echo '</tr>';
echo '</form>';
echo '</table>';
}
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (isset($_POST['project']))
{
$sql = "SELECT id, naam, beschrijving
FROM project
WHERE naam='" . mysql_real_escape_string($_POST['project']) . "'";
$result = mysql_query($sql);
if($result)
{
$row = mysql_fetch_assoc($result);
$_SESSION['project_id'] = $row['id'];
veranderen_formulier($row['naam'], $row['beschrijving']);
}
else
{
// ERROR
}
}
else
{
if (isset($_POST['naam'], $_POST['beschrijving']))
{
if(isset($_SESSION['project_id']) and ($_SESSION['project_id'] > 0))
{
$sql = "UPDATE project
SET name='" . mysql_real_escape_string($_POST['naam']) . "',
beschrijving='" . mysql_real_escape_string($_POST['beschrijving']) . "'
WHERE id='" . $_SESSION['project_id'] . "'";
$result = mysql_query($sql);
if($result and mysql_affected_rows() > 0)
{
echo 'Gegevens zijn succesvol geupdated.';
}
else
{
echo 'Kon gegevens niet veranderen.';
}
}
}
}
}
else
{
$_SESSION['project_id'] = false;
kiezen_formulier();
}
?>
error_reporting(E_ALL);
ini_set('display_errors', 1);
//include 'config.php';
session_start();
function kiezen_formulier()
{
// Kiezen Formulier
echo '<table>';
echo '<form method="POST" action="' . $_SERVER['REQUEST_URI'] . '">';
echo '<tr>';
echo '<td>Projectnaam: </td>';
echo '<td><select name="project">';
$sql_projecten = "SELECT naam FROM project";
$result_projecten = mysql_query($sql_projecten);
if($result_projecten)
{
while ($row_project = mysql_fetch_assoc($result_projecten))
{
echo '<option value="' . $row_project['naam'] . '">' . $row_project['naam'] . '</option>';
}
}
else
{
// ERROR
}
echo '</select></td>';
echo '</tr>';
echo '<tr>';
echo '<td></td>';
echo '<td><input type="submit" name="kiezen" value="kiezen" /></td>';
echo '</tr>';
echo '</form>';
echo '</table>';
}
function veranderen_formulier($naam, $beschrijving)
{
// Veranderen Formulier
echo '<table>';
echo '<form method="POST" action="' . $_SERVER['REQUEST_URI'] . '">';
echo '<tr>';
echo '<td>Naam: </td>';
echo '<td><input type="text" name="naam" value="' . $naam . '" /></td>';
echo '</tr>';
echo '<tr>';
echo '<td>Beschrijving: </td>';
echo '<td><textarea name="beschrijving" cols="40" rows="7">' . $beschrijving . '</textarea></td>';
echo '</tr>';
echo '<tr>';
echo '<td></td>';
echo '<td><input type="submit" name="veranderen" value="veranderen" /></td>';
echo '</tr>';
echo '</form>';
echo '</table>';
}
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (isset($_POST['project']))
{
$sql = "SELECT id, naam, beschrijving
FROM project
WHERE naam='" . mysql_real_escape_string($_POST['project']) . "'";
$result = mysql_query($sql);
if($result)
{
$row = mysql_fetch_assoc($result);
$_SESSION['project_id'] = $row['id'];
veranderen_formulier($row['naam'], $row['beschrijving']);
}
else
{
// ERROR
}
}
else
{
if (isset($_POST['naam'], $_POST['beschrijving']))
{
if(isset($_SESSION['project_id']) and ($_SESSION['project_id'] > 0))
{
$sql = "UPDATE project
SET name='" . mysql_real_escape_string($_POST['naam']) . "',
beschrijving='" . mysql_real_escape_string($_POST['beschrijving']) . "'
WHERE id='" . $_SESSION['project_id'] . "'";
$result = mysql_query($sql);
if($result and mysql_affected_rows() > 0)
{
echo 'Gegevens zijn succesvol geupdated.';
}
else
{
echo 'Kon gegevens niet veranderen.';
}
}
}
}
}
else
{
$_SESSION['project_id'] = false;
kiezen_formulier();
}
?>
was even helemaal de kluts kwijt:( maarja toch goed gekomen.
ga het nog wel eventjes meer aanpassen maar hartelijk dank;)
Het is ook slechts een opzet en geen eindproduct.
Succes verder.