Edit pagina lukt maar niet..
Ik heb een website, waar mensen kunnen registreren en inloggen, ook hebben deze gebruikers toegang tot een profiel pagina waar hun gegevens staan weergegeven tijdens hun regestratie...
Wat ik nu dus er nog graag bij wil hebben is dat ze hun gegevens kunnen veranderen
'edit_profiel.php' 'profiel.php?edit' oid. Ik heb al een aantal tips gehad maar ik kom er maar niet uit!! :(:(
Wat heb je geprobeerd om je probleem op te lossen?
Op google gezocht naar formulier verwerking.
Zoeken naar een vergelijkbaar script. [niet gevonden]
Van zelf aantal dingen geprobeerd [zometeen te zien in de [.code.] [./code.] tags]
Wat is nou precies je vraag?
Is er iemand die miss een soort van tut hiervan heeft??
Zou iemand mij kunnen begeleiden door middel van Tips en commentaar.
Iemand een kleine opzet heeft zodat ik weet wat er gedaan moet worden.
Bij voorbaat dank en met vriendelijke groet,
Reduan Kurtaj
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
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
<?php
// Start de sessie.
session_start();
// Maakt verbinding met de database.
include('conn.php');
// Errors weergeven.
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
// SQL debug.
define('DEBUG_MODE',true); // true == aan, false == uit
// Functie voor SQL debug.
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
// Controle of de gebruiker wel is ingelogd
if (isset($_SESSION['username'])) {
echo 'Welcome: '.$_SESSION['username'];
} else {
header ('refresh: 1; url=index.php');
echo 'Niet ingelogd!';
}
// Controle of het formulier gepost is.
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
} else {
echo 'Geen form geselecteerd, ga terug naar de vorige pagina.';
// Controle of de array wel bestaat.
if(isset($_GET['id'], $_POST['gebruiker'], $_POST['voornaam'], $_POST['achternaam'], $_POST['email'], $POST['woonplaats']))
//Controle of geen enkele variabelen leeg is.
if (empty($voornaam) || empty($achternaam) || empty($email) || empty($woonplaats)) {
echo 'U heeft succesvol alles ingevuld, en Uw profiel is geupdate!';
} else {
header ('refresh: 3; url=edit_profiel.php');
echo 'Een of meerdere velden zijn niet ingevuld.';
}
// Haal gegevens op uit de database, en plaatst ze in $rij
$query ="SELECT * FROM users WHERE id= ".$_session['id']."";
$sql = mysql_query($query);
echo (showSQLError($sql, mysql_error()));
// als het query resultaat hoger als 0 is bestaat de user, anders niet.
if(mysql_num_rows($sql) > 0){
$rij = mysql_fetch_array($sql);
} else {
echo 'Deze gebruiker bestaat helaas niet (meer)';
}
echo
'<form method="post" action="bezig.php">
<p>
Voornaam:<br>
<input type="text" name="voornaam" maxlength="50" value='.$rij['voornaam'].'>
</p>
<p>
Achternaam:<br>
<input type="text" name="achternaam" maxlength="50" value='.$rij['achternaam'].'>
</p>
<p>
Woonplaats:<br>
<input type="text" name="woonplaats" maxlength="50" value='.$rij['woonplaats'].'>
</p>
<p>
Email:<br>
<input type="text" name="email" maxlength="50" value='.$rij['email'].'>
</p>
<input type="submit" class="submit" name="action" value="Update Profiel">
</p>
</form>';
}
?>
// Start de sessie.
session_start();
// Maakt verbinding met de database.
include('conn.php');
// Errors weergeven.
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
// SQL debug.
define('DEBUG_MODE',true); // true == aan, false == uit
// Functie voor SQL debug.
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
// Controle of de gebruiker wel is ingelogd
if (isset($_SESSION['username'])) {
echo 'Welcome: '.$_SESSION['username'];
} else {
header ('refresh: 1; url=index.php');
echo 'Niet ingelogd!';
}
// Controle of het formulier gepost is.
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
} else {
echo 'Geen form geselecteerd, ga terug naar de vorige pagina.';
// Controle of de array wel bestaat.
if(isset($_GET['id'], $_POST['gebruiker'], $_POST['voornaam'], $_POST['achternaam'], $_POST['email'], $POST['woonplaats']))
//Controle of geen enkele variabelen leeg is.
if (empty($voornaam) || empty($achternaam) || empty($email) || empty($woonplaats)) {
echo 'U heeft succesvol alles ingevuld, en Uw profiel is geupdate!';
} else {
header ('refresh: 3; url=edit_profiel.php');
echo 'Een of meerdere velden zijn niet ingevuld.';
}
// Haal gegevens op uit de database, en plaatst ze in $rij
$query ="SELECT * FROM users WHERE id= ".$_session['id']."";
$sql = mysql_query($query);
echo (showSQLError($sql, mysql_error()));
// als het query resultaat hoger als 0 is bestaat de user, anders niet.
if(mysql_num_rows($sql) > 0){
$rij = mysql_fetch_array($sql);
} else {
echo 'Deze gebruiker bestaat helaas niet (meer)';
}
echo
'<form method="post" action="bezig.php">
<p>
Voornaam:<br>
<input type="text" name="voornaam" maxlength="50" value='.$rij['voornaam'].'>
</p>
<p>
Achternaam:<br>
<input type="text" name="achternaam" maxlength="50" value='.$rij['achternaam'].'>
</p>
<p>
Woonplaats:<br>
<input type="text" name="woonplaats" maxlength="50" value='.$rij['woonplaats'].'>
</p>
<p>
Email:<br>
<input type="text" name="email" maxlength="50" value='.$rij['email'].'>
</p>
<input type="submit" class="submit" name="action" value="Update Profiel">
</p>
</form>';
}
?>
Gewijzigd op 15/01/2014 15:28:20 door Reduan kurtaj
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
$sql = "UPDATE users
SET voornaam=" . mysql_real_escape_string($_POST['voornaam']) . "
,achternaam=" . mysql_real_escape_string($_POST['achternaam']) . "
WHERE id=" . $_SESSION['id'] . "
LIMIT 1";
$res = mysql_query($sql);
if($res){ // als query goed gaat
if(mysql_affected_rows() > 0){ // als er velden zijn geupdate
echo 'Velden zijn geupdate';
} else {
echo 'Geen veranderingen. Niet geupdate';
}
} else {
echo 'Error ' . mysql_error();
}
?>
$sql = "UPDATE users
SET voornaam=" . mysql_real_escape_string($_POST['voornaam']) . "
,achternaam=" . mysql_real_escape_string($_POST['achternaam']) . "
WHERE id=" . $_SESSION['id'] . "
LIMIT 1";
$res = mysql_query($sql);
if($res){ // als query goed gaat
if(mysql_affected_rows() > 0){ // als er velden zijn geupdate
echo 'Velden zijn geupdate';
} else {
echo 'Geen veranderingen. Niet geupdate';
}
} else {
echo 'Error ' . mysql_error();
}
?>
edit: set vergeten X_X
Gewijzigd op 15/01/2014 15:34:58 door Michael -
of moet ik mijn stukje SQL vervangen door dat stukje van jou??
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
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
<?php
// Start de sessie.
session_start();
// Maakt verbinding met de database.
include('conn.php');
// Errors weergeven.
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
// SQL debug.
define('DEBUG_MODE',true); // true == aan, false == uit
// Functie voor SQL debug.
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
// Controle of de gebruiker wel is ingelogd
if (isset($_SESSION['username'])) {
echo 'Welcome: '.$_SESSION['username'];
} else {
header ('refresh: 1; url=index.php');
echo 'Niet ingelogd!';
}
$sql = "UPDATE users
SET voornaam=" . mysql_real_escape_string($_POST['voornaam']) . "
,achternaam=" . mysql_real_escape_string($_POST['achternaam']) . "
WHERE id=" . $_SESSION['id'] . "
LIMIT 1";
$res = mysql_query($sql);
if($res){ // als query goed gaat
if(mysql_affected_rows() > 0){ // als er velden zijn geupdate
echo 'Velden zijn geupdate';
} else {
echo 'Geen veranderingen. Niet geupdate';
}
} else {
echo 'Error ' . mysql_error();
}
// Haal gegevens op uit de database, en plaatst ze in $rij
$query ="SELECT * FROM users WHERE id= ".$_session['id']."";
$sql = mysql_query($query);
echo (showSQLError($sql, mysql_error()));
// als het query resultaat hoger als 0 is bestaat de user, anders niet.
if(mysql_num_rows($sql) > 0){
$rij = mysql_fetch_array($sql);
} else {
echo 'Deze gebruiker bestaat helaas niet (meer)';
}
echo
'<form method="post" action="bezig.php">
<p>
Voornaam:<br>
<input type="text" name="voornaam" maxlength="50" value='.$rij['voornaam'].'>
</p>
<p>
Achternaam:<br>
<input type="text" name="achternaam" maxlength="50" value='.$rij['achternaam'].'>
</p>
<p>
Woonplaats:<br>
<input type="text" name="woonplaats" maxlength="50" value='.$rij['woonplaats'].'>
</p>
<p>
Email:<br>
<input type="text" name="email" maxlength="50" value='.$rij['email'].'>
</p>
<input type="submit" class="submit" name="action" value="Update Profiel">
</p>
</form>';
}
?>
// Start de sessie.
session_start();
// Maakt verbinding met de database.
include('conn.php');
// Errors weergeven.
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
// SQL debug.
define('DEBUG_MODE',true); // true == aan, false == uit
// Functie voor SQL debug.
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
// Controle of de gebruiker wel is ingelogd
if (isset($_SESSION['username'])) {
echo 'Welcome: '.$_SESSION['username'];
} else {
header ('refresh: 1; url=index.php');
echo 'Niet ingelogd!';
}
$sql = "UPDATE users
SET voornaam=" . mysql_real_escape_string($_POST['voornaam']) . "
,achternaam=" . mysql_real_escape_string($_POST['achternaam']) . "
WHERE id=" . $_SESSION['id'] . "
LIMIT 1";
$res = mysql_query($sql);
if($res){ // als query goed gaat
if(mysql_affected_rows() > 0){ // als er velden zijn geupdate
echo 'Velden zijn geupdate';
} else {
echo 'Geen veranderingen. Niet geupdate';
}
} else {
echo 'Error ' . mysql_error();
}
// Haal gegevens op uit de database, en plaatst ze in $rij
$query ="SELECT * FROM users WHERE id= ".$_session['id']."";
$sql = mysql_query($query);
echo (showSQLError($sql, mysql_error()));
// als het query resultaat hoger als 0 is bestaat de user, anders niet.
if(mysql_num_rows($sql) > 0){
$rij = mysql_fetch_array($sql);
} else {
echo 'Deze gebruiker bestaat helaas niet (meer)';
}
echo
'<form method="post" action="bezig.php">
<p>
Voornaam:<br>
<input type="text" name="voornaam" maxlength="50" value='.$rij['voornaam'].'>
</p>
<p>
Achternaam:<br>
<input type="text" name="achternaam" maxlength="50" value='.$rij['achternaam'].'>
</p>
<p>
Woonplaats:<br>
<input type="text" name="woonplaats" maxlength="50" value='.$rij['woonplaats'].'>
</p>
<p>
Email:<br>
<input type="text" name="email" maxlength="50" value='.$rij['email'].'>
</p>
<input type="submit" class="submit" name="action" value="Update Profiel">
</p>
</form>';
}
?>
Controleer met if($_SERVER['REQUEST_METHOD'] == 'POST') of je formulier wordt verzonden, en controleer daarna of de velden die wilt zijn ingevuld.
Geen form geselecteerd, ga terug naar de vorige pagina. <--- Die niet... moet ik if($_SERVER['REQUEST_METHOD'] == 'POST'){
} pas sluiten na het form?? of maak dat niet uit?
En dit zijn gewoon fouten die die geeft :(:(
Notice: Undefined index: voornaam in /mnt/webc/e2/15/53954115/htdocs/bezig.php on line 44
Notice: Undefined index: achternaam in /mnt/webc/e2/15/53954115/htdocs/bezig.php on line 45
Error You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' achternaam= WHERE id=9 LIMIT 1' at line 3
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
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
<?php
// Start de sessie.
session_start();
// Maakt verbinding met de database.
include('conn.php');
// Errors weergeven.
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
// SQL debug.
define('DEBUG_MODE',true); // true == aan, false == uit
// Functie voor SQL debug.
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
// Controle of de gebruiker wel is ingelogd
if (isset($_SESSION['username'])) {
echo 'Welcome: '.$_SESSION['username'];
} else {
header ('refresh: 1; url=index.php');
echo 'Niet ingelogd!';
}
// Controle of het formulier gepost is.
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
} else {
echo 'Geen form geselecteerd, ga terug naar de vorige pagina.';
}
$sql = "UPDATE users
SET
voornaam=" . mysql_real_escape_string($_POST['voornaam']) . ",
achternaam=" . mysql_real_escape_string($_POST['achternaam']) . "
WHERE id=" . $_SESSION['id'] . "
LIMIT 1";
$res = mysql_query($sql);
if($res){ // als query goed gaat
if(mysql_affected_rows() > 0){ // als er velden zijn geupdate
echo 'Velden zijn geupdate';
} else {
echo 'Geen veranderingen. Niet geupdate';
}
} else {
echo 'Error ' . mysql_error();
}
echo
'<form method="post" action="bezig.php">
<p>
Voornaam:<br>
<input type="text" name="voornaam" maxlength="50" value="voornaam">
</p>
<p>
Achternaam:<br>
<input type="text" name="achternaam" maxlength="50" value="achternaam">
</p>
<p>
Woonplaats:<br>
<input type="text" name="woonplaats" maxlength="50" value="woonplaats">
</p>
<p>
Email:<br>
<input type="text" name="email" maxlength="50" value="email">
</p>
<input type="submit" class="submit" name="action" value="Update Profiel">
</p>
</form>';
?>
// Start de sessie.
session_start();
// Maakt verbinding met de database.
include('conn.php');
// Errors weergeven.
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
// SQL debug.
define('DEBUG_MODE',true); // true == aan, false == uit
// Functie voor SQL debug.
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
// Controle of de gebruiker wel is ingelogd
if (isset($_SESSION['username'])) {
echo 'Welcome: '.$_SESSION['username'];
} else {
header ('refresh: 1; url=index.php');
echo 'Niet ingelogd!';
}
// Controle of het formulier gepost is.
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
} else {
echo 'Geen form geselecteerd, ga terug naar de vorige pagina.';
}
$sql = "UPDATE users
SET
voornaam=" . mysql_real_escape_string($_POST['voornaam']) . ",
achternaam=" . mysql_real_escape_string($_POST['achternaam']) . "
WHERE id=" . $_SESSION['id'] . "
LIMIT 1";
$res = mysql_query($sql);
if($res){ // als query goed gaat
if(mysql_affected_rows() > 0){ // als er velden zijn geupdate
echo 'Velden zijn geupdate';
} else {
echo 'Geen veranderingen. Niet geupdate';
}
} else {
echo 'Error ' . mysql_error();
}
echo
'<form method="post" action="bezig.php">
<p>
Voornaam:<br>
<input type="text" name="voornaam" maxlength="50" value="voornaam">
</p>
<p>
Achternaam:<br>
<input type="text" name="achternaam" maxlength="50" value="achternaam">
</p>
<p>
Woonplaats:<br>
<input type="text" name="woonplaats" maxlength="50" value="woonplaats">
</p>
<p>
Email:<br>
<input type="text" name="email" maxlength="50" value="email">
</p>
<input type="submit" class="submit" name="action" value="Update Profiel">
</p>
</form>';
?>
Maar de hele update moet natuurlijk in die controle, anders wordt het nog steeds geupdate zonder dat het formulier gepost is.
Die notices krijg je omdat die variabelen (voornaam, achternaam) leeg zijn. Daarom moet je ze ook eerst checken
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
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
<?php
// Controle of het formulier gepost is.
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_POST['voornaam'],$_POST['achternaam'])){ // controle of je velden bestaan (weten we nog niet of ze gevuld zijn)
$sql = "UPDATE users
SET
voornaam = '" . mysql_real_escape_string($_POST['voornaam']) . "',
achternaam = '" . mysql_real_escape_string($_POST['achternaam']) . "'
WHERE id = " . $_SESSION['id'] . "
LIMIT 1";
$res = mysql_query($sql);
if($res){ // als query goed gaat
if(mysql_affected_rows() > 0){ // als er velden zijn geupdate
echo 'Velden zijn geupdate';
} else {
echo 'Geen veranderingen. Niet geupdate';
}
} else {
echo 'Error ' . mysql_error();
}
}
} else {
echo 'Geen form geselecteerd, ga terug naar de vorige pagina.';
}
?>
// Controle of het formulier gepost is.
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_POST['voornaam'],$_POST['achternaam'])){ // controle of je velden bestaan (weten we nog niet of ze gevuld zijn)
$sql = "UPDATE users
SET
voornaam = '" . mysql_real_escape_string($_POST['voornaam']) . "',
achternaam = '" . mysql_real_escape_string($_POST['achternaam']) . "'
WHERE id = " . $_SESSION['id'] . "
LIMIT 1";
$res = mysql_query($sql);
if($res){ // als query goed gaat
if(mysql_affected_rows() > 0){ // als er velden zijn geupdate
echo 'Velden zijn geupdate';
} else {
echo 'Geen veranderingen. Niet geupdate';
}
} else {
echo 'Error ' . mysql_error();
}
}
} else {
echo 'Geen form geselecteerd, ga terug naar de vorige pagina.';
}
?>
Controle op je velden is aan jezelf.
Michael - op 15/01/2014 16:22:47:
Controle op je velden is aan jezelf.
Heel erg bedankt.. hij doet het bijna X.X
Controle op velden doe ik zo:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
/*Check of geen enkele variabelen leeg is, is er wel een leeg, Dan krijg je een foutmelding.*/
if (empty($voornaam) || empty($achternaam) || empty($woonplaats) || empty($email)) {
header ('refresh: 2; url=edit_profiel.php.php');
} else {
echo ('Een of meerdere velden zijn niet ingevuld!');
}
?>
/*Check of geen enkele variabelen leeg is, is er wel een leeg, Dan krijg je een foutmelding.*/
if (empty($voornaam) || empty($achternaam) || empty($woonplaats) || empty($email)) {
header ('refresh: 2; url=edit_profiel.php.php');
} else {
echo ('Een of meerdere velden zijn niet ingevuld!');
}
?>
en nog steeds krijg ik dit te zien... Geen form geselecteerd, ga terug naar de vorige pagina.
Live voorbeeld:
Http://www.mmgnews.nl
login met user: phphulp ww: phphulp
Daarna het kopje: Wijzig profiel
Http://www.mmgnews.nl/edit_profiel.php
Gewijzigd op 15/01/2014 17:14:06 door reduan kurtaj
Reduan kurtaj op 15/01/2014 17:13:28:
Heel erg bedankt.. hij doet het bijna X.X
Controle op velden doe ik zo:
en nog steeds krijg ik dit te zien... Geen form geselecteerd, ga terug naar de vorige pagina.
Live voorbeeld:
Http://www.mmgnews.nl
login met user: phphulp ww: phphulp
Daarna het kopje: Wijzig profiel
Http://www.mmgnews.nl/edit_profiel.php
Michael - op 15/01/2014 16:22:47:
Controle op je velden is aan jezelf.
Heel erg bedankt.. hij doet het bijna X.X
Controle op velden doe ik zo:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
/*Check of geen enkele variabelen leeg is, is er wel een leeg, Dan krijg je een foutmelding.*/
if (empty($voornaam) || empty($achternaam) || empty($woonplaats) || empty($email)) {
header ('refresh: 2; url=edit_profiel.php.php');
} else {
echo ('Een of meerdere velden zijn niet ingevuld!');
}
?>
/*Check of geen enkele variabelen leeg is, is er wel een leeg, Dan krijg je een foutmelding.*/
if (empty($voornaam) || empty($achternaam) || empty($woonplaats) || empty($email)) {
header ('refresh: 2; url=edit_profiel.php.php');
} else {
echo ('Een of meerdere velden zijn niet ingevuld!');
}
?>
en nog steeds krijg ik dit te zien... Geen form geselecteerd, ga terug naar de vorige pagina.
Live voorbeeld:
Http://www.mmgnews.nl
login met user: phphulp ww: phphulp
Daarna het kopje: Wijzig profiel
Http://www.mmgnews.nl/edit_profiel.php
'Geen form...' Krijg je zolang er geen request is gedaan, dus hij doet precies wat je wil. Die else kan wat dat betreft ook weg.
Je manier van controleren is vreemd. $voornaam is niet het zelfde als $_POST['voornaam']
Waarom een refresh als 1 variabele niet is ingevuld (... OF ... OF ..) en een melding 'niet ingevuld' als ze juist wel zijn ingevuld.
Laat het script eens zien zoals je het nu hebt :)
D B op 15/01/2014 18:18:12:
Laat het script eens zien zoals je het nu hebt :)
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
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
<?php
// Maakt verbinding met de database.
include('conn.php');
// Errors weergeven.
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
// SQL debug.
define('DEBUG_MODE',true); // true == aan, false == uit
// Functie voor SQL debug.
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
// Controle of de gebruiker wel is ingelogd
if (isset($_SESSION['username'])) {
} else {
header ('refresh: 1; url=index.php');
echo 'Niet ingelogd!';
}
// Controle of het formulier gepost is.
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// controle of je velden bestaan (weten we nog niet of ze gevuld zijn)
if(isset($_POST['voornaam'],$_POST['achternaam'],$_POST['woonplaats'],$_POST['email'])){
/*Check of geen enkele variabelen leeg is, is er wel een leeg, Dan krijg je een foutmelding.*/
if (empty($voornaam) || empty($achternaam) || empty($woonplaats) || empty($email)) {
header ('refresh: 2; url=edit_profiel.php.php');
} else {
echo ('Een of meerdere velden zijn niet ingevuld!');
}
$sql = "UPDATE users
SET
voornaam = '" . mysql_real_escape_string($_POST['voornaam']) . "',
achternaam = '" . mysql_real_escape_string($_POST['achternaam']) . "'
WHERE id = " . $_SESSION['id'] . "
LIMIT 1";
$res = mysql_query($sql);
// als query goed gaat
if($res){
if(mysql_affected_rows() > 0){ // als er velden zijn geupdate
echo 'Velden zijn geupdate';
} else {
echo 'Geen veranderingen. Niet geupdate';
}
} else {
echo 'Error ' . mysql_error();
}
}
} else {
echo 'Geen form geselecteerd, ga terug naar de vorige pagina.';
}
echo
'<form method="post" action="edit_profiel.php">
<p>
Voornaam:<br>
<input type="text" name="voornaam" maxlength="50" value="voornaam">
</p>
<p>
Achternaam:<br>
<input type="text" name="achternaam" maxlength="50" value="achternaam">
</p>
<p>
Woonplaats:<br>
<input type="text" name="woonplaats" maxlength="50" value="woonplaats">
</p>
<p>
Email:<br>
<input type="text" name="email" maxlength="50" value="email">
</p>
<input type="submit" class="submit" name="action" value="Update Profiel">
</p>
</form>';
?>
// Maakt verbinding met de database.
include('conn.php');
// Errors weergeven.
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
// SQL debug.
define('DEBUG_MODE',true); // true == aan, false == uit
// Functie voor SQL debug.
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
// Controle of de gebruiker wel is ingelogd
if (isset($_SESSION['username'])) {
} else {
header ('refresh: 1; url=index.php');
echo 'Niet ingelogd!';
}
// Controle of het formulier gepost is.
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// controle of je velden bestaan (weten we nog niet of ze gevuld zijn)
if(isset($_POST['voornaam'],$_POST['achternaam'],$_POST['woonplaats'],$_POST['email'])){
/*Check of geen enkele variabelen leeg is, is er wel een leeg, Dan krijg je een foutmelding.*/
if (empty($voornaam) || empty($achternaam) || empty($woonplaats) || empty($email)) {
header ('refresh: 2; url=edit_profiel.php.php');
} else {
echo ('Een of meerdere velden zijn niet ingevuld!');
}
$sql = "UPDATE users
SET
voornaam = '" . mysql_real_escape_string($_POST['voornaam']) . "',
achternaam = '" . mysql_real_escape_string($_POST['achternaam']) . "'
WHERE id = " . $_SESSION['id'] . "
LIMIT 1";
$res = mysql_query($sql);
// als query goed gaat
if($res){
if(mysql_affected_rows() > 0){ // als er velden zijn geupdate
echo 'Velden zijn geupdate';
} else {
echo 'Geen veranderingen. Niet geupdate';
}
} else {
echo 'Error ' . mysql_error();
}
}
} else {
echo 'Geen form geselecteerd, ga terug naar de vorige pagina.';
}
echo
'<form method="post" action="edit_profiel.php">
<p>
Voornaam:<br>
<input type="text" name="voornaam" maxlength="50" value="voornaam">
</p>
<p>
Achternaam:<br>
<input type="text" name="achternaam" maxlength="50" value="achternaam">
</p>
<p>
Woonplaats:<br>
<input type="text" name="woonplaats" maxlength="50" value="woonplaats">
</p>
<p>
Email:<br>
<input type="text" name="email" maxlength="50" value="email">
</p>
<input type="submit" class="submit" name="action" value="Update Profiel">
</p>
</form>';
?>
Bij de isset op regel 38 open je de if en die sluit pas ergens onderaan, daar zit het een en ander niet goed.
Als ik bij regel 38 begin zou ik het zo doen:
(ben zelf ook nog maar een beginner maar ga je proberen te helpen :))
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
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
<?
if ($_SERVER['REQUEST_METHOD'] == 'POST') { // Controle of het formulier gepost is.
if(isset($_POST['voornaam'],$_POST['achternaam'],$_POST['woonplaats'],$_POST['email'])){ // controle of je velden bestaan (weten we nog niet of ze gevuld zijn)
if (empty($voornaam) || empty($achternaam) || empty($woonplaats) || empty($email)) { /*Check of geen enkele variabelen leeg is, is er wel een leeg, Dan krijg je een foutmelding.*/
echo ('Een of meerdere velden zijn niet ingevuld!');
}
else {
$sql = "UPDATE
users
SET
voornaam = '" . mysql_real_escape_string($_POST['voornaam']) . "',
achternaam = '" . mysql_real_escape_string($_POST['achternaam']) . "'
WHERE
id = " . $_SESSION['id'] . "
LIMIT 1
";
$res = mysql_query($sql);
if($res){ // als query goed gaat
if(mysql_affected_rows() > 0){ // als er velden zijn geupdate
echo 'Velden zijn geupdate';
}
else {
echo 'Geen veranderingen. Niet geupdate';
}
}
else {
echo 'Error ' . mysql_error();
}
}
}
else {
echo 'Er is geen form geselecteerd, ga terug naar de vorige pagina.';
}
}
else {
echo
'<form method="post" action="edit_profiel.php">
<p>
Voornaam:<br>
<input type="text" name="voornaam" maxlength="50" value="voornaam">
</p>
<p>
Achternaam:<br>
<input type="text" name="achternaam" maxlength="50" value="achternaam">
</p>
<p>
Woonplaats:<br>
<input type="text" name="woonplaats" maxlength="50" value="woonplaats">
</p>
<p>
Email:<br>
<input type="text" name="email" maxlength="50" value="email">
</p>
<input type="submit" class="submit" name="action" value="Update Profiel">
</p>
</form>';
}
?>
if ($_SERVER['REQUEST_METHOD'] == 'POST') { // Controle of het formulier gepost is.
if(isset($_POST['voornaam'],$_POST['achternaam'],$_POST['woonplaats'],$_POST['email'])){ // controle of je velden bestaan (weten we nog niet of ze gevuld zijn)
if (empty($voornaam) || empty($achternaam) || empty($woonplaats) || empty($email)) { /*Check of geen enkele variabelen leeg is, is er wel een leeg, Dan krijg je een foutmelding.*/
echo ('Een of meerdere velden zijn niet ingevuld!');
}
else {
$sql = "UPDATE
users
SET
voornaam = '" . mysql_real_escape_string($_POST['voornaam']) . "',
achternaam = '" . mysql_real_escape_string($_POST['achternaam']) . "'
WHERE
id = " . $_SESSION['id'] . "
LIMIT 1
";
$res = mysql_query($sql);
if($res){ // als query goed gaat
if(mysql_affected_rows() > 0){ // als er velden zijn geupdate
echo 'Velden zijn geupdate';
}
else {
echo 'Geen veranderingen. Niet geupdate';
}
}
else {
echo 'Error ' . mysql_error();
}
}
}
else {
echo 'Er is geen form geselecteerd, ga terug naar de vorige pagina.';
}
}
else {
echo
'<form method="post" action="edit_profiel.php">
<p>
Voornaam:<br>
<input type="text" name="voornaam" maxlength="50" value="voornaam">
</p>
<p>
Achternaam:<br>
<input type="text" name="achternaam" maxlength="50" value="achternaam">
</p>
<p>
Woonplaats:<br>
<input type="text" name="woonplaats" maxlength="50" value="woonplaats">
</p>
<p>
Email:<br>
<input type="text" name="email" maxlength="50" value="email">
</p>
<input type="submit" class="submit" name="action" value="Update Profiel">
</p>
</form>';
}
?>
Gewijzigd op 15/01/2014 19:00:50 door D B
D B op 15/01/2014 18:46:56:
Bij regel 38 open je een isset, daarna ga je op regel 40 controleren of ze ingevuld zijn. Als ze niet ingevuld zijn stuur je een helder en als ze wel ingevuld zijn stuur je een echo dat ze niet zij ingevuld.
Bij de isset op regel 38 open je de in en die sluit pas ergens onderaan, daar zit het een en ander niet goed.
Als ik bij regel 38 begin zou ik het zo doen:
(ben zelf ook nog maar een beginner maar ga je proberen te helpen :))
Bij de isset op regel 38 open je de in en die sluit pas ergens onderaan, daar zit het een en ander niet goed.
Als ik bij regel 38 begin zou ik het zo doen:
(ben zelf ook nog maar een beginner maar ga je proberen te helpen :))
Ik ga het even testen of die nu wel werkt (a)
Toevoeging op 15/01/2014 19:03:37:
Voor de else op regel 35 in joun script was je een } vergeten..
nu is de 'Er is geen form geselecteerd, ga terug naar de vorige pagina.' wel weg gelukkig maar als ik nu op update klik krijg ik de fout: Een of meerdere velden zijn niet ingevuld! wat dus niet het geval is.
Code (php)
Bij empty moet hij natuurlijk naar de $_POST['voornaam'] kijken en niet naar $voornaam, zo ook voor de rest
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') { // Controle of het formulier gepost is.
if(isset($_POST['voornaam'],$_POST['achternaam'],$_POST['woonplaats'],$_POST['email'])){ // controle of je velden bestaan (weten we nog niet of ze gevuld zijn)
if (empty($_POST['$voornaam']) || empty($_POST['$achternaam']) || empty($_POST['$woonplaats']) || empty($_POST['$email'])) { /*Check of geen enkele variabelen leeg is, is er wel een leeg, Dan krijg je een foutmelding.*/
echo ('Een of meerdere velden zijn niet ingevuld!');
}
?>
if ($_SERVER['REQUEST_METHOD'] == 'POST') { // Controle of het formulier gepost is.
if(isset($_POST['voornaam'],$_POST['achternaam'],$_POST['woonplaats'],$_POST['email'])){ // controle of je velden bestaan (weten we nog niet of ze gevuld zijn)
if (empty($_POST['$voornaam']) || empty($_POST['$achternaam']) || empty($_POST['$woonplaats']) || empty($_POST['$email'])) { /*Check of geen enkele variabelen leeg is, is er wel een leeg, Dan krijg je een foutmelding.*/
echo ('Een of meerdere velden zijn niet ingevuld!');
}
?>
$_POST['voornaam'] <<< let op geen $ voor voornaam
D B op 15/01/2014 19:15:07:
$_POST['voornaam'] <<< let op geen $ voor voornaam
Pffff had ik moeten weten jha :$
maar hij doet het nu eindelijk (A)(A)(A)
SUPPPEEEEEEER BEDANKT!!!
Ps. Je hebt 1 nadeel: Omdat je values aan je input velden meegeeft, zullen ze bijna nooit empty zijn. Dus misschien moet je na empty ook nog controleren op de standaard values :)
als mijn naam in de Database voornaam is, en ik wil hem updaten naar voornaam krijg ik de fout: Er is helaas iets fout gegaan, Uw profiel is niet geupdate
maar wat ik nu wil gaan proberen is om de gegevens uit de database in die values te plaatsen, dat je alleen je 'email' hoeft aan te passen als dat het enige is wat aangepast moest worden .
Toevoeging op 15/01/2014 21:27:10:
Reduan kurtaj op 15/01/2014 19:27:17:
maar wat ik nu wil gaan proberen is om de gegevens uit de database in die values te plaatsen, dat je alleen je 'email' hoeft aan te passen als dat het enige is wat aangepast moest worden .
Iemand die hier een oplossing voor heeft??
ik heb het al geprobeerd met session maar dat werkte niet :(
of moet ik het eerst ophalen uit de database en dan in een array zetten??
Gewijzigd op 15/01/2014 21:26:52 door reduan kurtaj
Zoiets
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$sql = "SELECT voornaam, achternaam FROM users WHERE id = " . (int)$_SESSION['id'];
$res = mysql_query($sql);
if($res){
if(mysql_num_rows($res) > 0){
$row = mysql_fetch_assoc($res);
echo '<input name="voornaam" value="' . $row['voornaam'] . '"/>'
.'<input name="achternaam" value="' . $row['achternaam'] . '"/>';
} else {
echo 'User niet gevonden';
}
} else {
echo 'Error ' . mysql_error();
}
?>
$sql = "SELECT voornaam, achternaam FROM users WHERE id = " . (int)$_SESSION['id'];
$res = mysql_query($sql);
if($res){
if(mysql_num_rows($res) > 0){
$row = mysql_fetch_assoc($res);
echo '<input name="voornaam" value="' . $row['voornaam'] . '"/>'
.'<input name="achternaam" value="' . $row['achternaam'] . '"/>';
} else {
echo 'User niet gevonden';
}
} else {
echo 'Error ' . mysql_error();
}
?>
edit: typo
Jou was trouwens al verteld dat Mysql functies 'deprecated' zijn toch? Nou steek je er heel veel tijd in, maar straks vervallen de Mysql functies en kun je alles weer aanpassen naar Mysqli.
Toevoeging op 16/01/2014 09:06:27:
Krijgt D B nou alle eer? :P
Trouwens die controle zou ik ook niet zo doen. De isset is voor de notices dat je zeker weet dat deze geset zijn (zegt verder niks over de inhoud) en empty() zegt eigenlijk ook niet veel. Een spatie is geen empty meer. Als ik als e-mailadres een spatie invul is dit dus goed.
Daarbij kan je if regel van isset en van empty ook samen ipv 2 aparte if-structuren.
Voorbeeld van hoe ik de controle zou doen:
http://phphulp.turmin.com/inschrijf.phps (formulier die ik laatst voor iemand hier had gemaakt)
Daar zie je trouwens ook de values gevuld worden. Misschien heb je er wat aan.
Gewijzigd op 16/01/2014 08:35:06 door Michael -