session en sql-update foutje

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Jens V

Jens V

16/01/2007 17:21:00
Quote Anchor link
Hoi daar,

Ik ben men pagina om het paswoord te veranderen aan't maken.
Als ik een paswoord ingeef, dan zet de browser dat alles goed is.
Toch wordt er niets geupdate in de datebase.
Met E_ALL aan, geeft ie ook geen notices/warnings/errors meer.

Wat is er mis?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?
include('includes/config.php');
require('includes/auth.php');
$sess_id = $_SESSION['id'];
ini_set ('display_errors', 1);
error_reporting (E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
  function
strip_var($value)
            {

                $value1 = addslashes($value);
                $value2 = strip_tags($value1);
                $value3 = htmlspecialchars($value2);
                return $value3;
            }

            $pw1 = strip_var($_POST['pw1']);
            $pw2 = strip_var($_POST['pw2']);
            if($pw1 == $pw2)
            {

              $pass = sha1('$pw1');
              mysql_query ("UPDATE users SET password='$pass' WHERE id='$sess_id'") or die(mysql_error());
                          header('Refresh: 3; URL=http://www.vandenreyt.be/koks/index.php');
echo "<html>";
echo "<head>";
echo "<title>Agenda Koks</title>";
echo "<style type=\"text/css\">";
echo "    @import 'includes/stylesheetadmin.css';";
echo "</style>";
echo "</head>";
echo "<body>";
  echo '<div align="center" class="body">';
  echo '<center>';
  echo 'Het paswoord is gewijzigd!<br>';
  echo '</center>';
  echo '</div>';
            }

            else
            {
              echo 'Paswoorden komen niet overeen, <a href="changepass.php">probeer opnieuw</a>';
            }
}

else
{
  echo '<form action="changepass.php" method="post">';
  echo 'Paswoord<input type="password" name="pw1"><br>';
  echo 'Paswoord<input type="password" name="pw2"> (bevestiging)<br>';
  echo '<input type="submit" value="Verander">';
  echo '</from>';
}

?>


Jens
Gewijzigd op 01/01/1970 01:00:00 door Jens V
 
PHP hulp

PHP hulp

19/11/2024 21:25:37
 
Vdleije .

vdleije .

16/01/2007 17:25:00
Quote Anchor link
@offtopic
Waarom echo je niet alles in 1x?
 
Jens V

Jens V

16/01/2007 17:25:00
Quote Anchor link
ik doe dit altijd zo:)
maar ik heb juist nog eens dat sess_id laten echoen, en hij zegt dat mijn id 10 is. Dat zou 1 moeten zijn :/...
 
- wes  -

- wes -

16/01/2007 17:27:00
Quote Anchor link
persoonlijke voorkeur, ik doe het ook zo.

@jens, zet je vars overal buiten quotes, overal!

bijv:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$pass
= sha1('$pw1'); // dit is dus de sha1 over de string '$pw1' en niet de var $pw1
?>
 
Jens V

Jens V

16/01/2007 17:32:00
Quote Anchor link
Ik zie juist dat als ik onder een andere naam inlog, mijn session id OOK 10 is... HOE KAN DAT:s:s

Dit is de pagina om de sessie te zetten: (van jan koehoorn..)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
    session_start ();

    // terug naar de loginpagina. Met sleep bouwen we een pauze in tegen brute-forcen
    function to_login () {
        header ('Location: http://www.vandenreyt.be/koks/login.php');  // NIET VERGETEN AAN TE PASSEN!!!
    }

    function
check_login ($username, $password) {
        // query opstellen
        // je tabel kan er heel simpel uitzien:
        // id INT(11) auto_increment
        // username VARCHAR 64
        // password VARCHAR 64. Het password sla je op in je DB met een SHA1 hash
        // daarom staat SHA1 dus ook in de query

        $sql = "
            SELECT id
            FROM users
            WHERE username = '"
. mysql_real_escape_string ($username) . "'
            AND password = SHA1('"
. mysql_real_escape_string ($password) . "')
            "
;
        if ($res = mysql_query ($sql)) {
            if (mysql_num_rows ($res) == 1) {
                // de query is gelukt en we hebben 1 resultaat
                $row = mysql_fetch_assoc ($res);
                $_SESSION['id'] = $row['id'];
                $_SESSION['logged_in'] = true;
            }

            else {
                to_login ();
            }
        }

        else {
            to_login ();
        }
    }


    // eerst maar eens kijken of $_SESSION['logged_in'] bestaat
    if (!isset ($_SESSION['logged_in'])) {
        // nog niet eerder ingelogd, maar misschien heeft iemand net het loginformulier ingevuld?
        if (isset ($_POST['username'], $_POST['password'])) {
            check_login ($_POST['username'], $_POST['password']);
        }

        else {
            to_login ();
        }
    }

?>
 
Vdleije .

vdleije .

16/01/2007 17:35:00
Quote Anchor link
(je geeft geen session_start() mee terwijl je wel met een $_SESSION werkt!
 
Jens V

Jens V

16/01/2007 17:36:00
Quote Anchor link
shiiit:d
merci jonge;)

WERKT NOG NIET -.-'
Gewijzigd op 01/01/1970 01:00:00 door Jens V
 
Vdleije .

vdleije .

16/01/2007 17:36:00
Quote Anchor link
~LOL, geen dank~

Maar hoe zit het na het invoeren van session_start()?
Gewijzigd op 01/01/1970 01:00:00 door vdleije .
 
Jens V

Jens V

16/01/2007 17:39:00
Quote Anchor link
heb session strart erboven gezet, werkt nog steeds niet...
(die session_start(); staat ook al in de auth pagina;) )

de pagina:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?
include('includes/config.php');
require('includes/auth.php');
session_start();
$sess_id = $_SESSION['id'];
ini_set ('display_errors', 1);
error_reporting (E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
  function
strip_var($value)
            {

                $value1 = addslashes($value);
                $value2 = strip_tags($value1);
                $value3 = htmlspecialchars($value2);
                return $value3;
            }

            $pw1 = strip_var($_POST['pw1']);
            $pw2 = strip_var($_POST['pw2']);
            if($pw1 == $pw2)
            {

              $pass = sha1($pw1);
              mysql_query ("UPDATE users SET password='$pass' WHERE id='$sess_id'") or die(mysql_error());
                          header('Refresh: 3; URL=http://www.vandenreyt.be/koks/index.php');
echo "<html>";
echo "<head>";
echo "<title>Agenda Koks</title>";
echo "<style type=\"text/css\">";
echo "    @import 'includes/stylesheetadmin.css';";
echo "</style>";
echo "</head>";
echo "<body>";
  echo '<div align="center" class="body">';
  echo '<center>';
  echo '<table width="500" cellspacing="0" cellpadding="2" border="0">';
  echo '<tr>';
  echo '<td width="20%" height="200"></td>';
  echo '<td width="60%" height="200"></td>';
  echo '<td width="20%" height="200"></td>';
  echo '</tr>';
  echo '<tr>';
  echo '<td width="20%" height="50"></td>';
  echo '<td width="60%" height="50" class="header">';
  echo 'Het paswoord is gewijzigd!<br>';
  echo '<a href="index.php">Ga naar de agenda</a>';
  echo '</td>';
  echo '<td width="20%" height="50"></td>';
  echo '</tr>';
  echo '</table>';
  echo '</center>';
  echo '</div>';
            }

            else
            {
              echo 'Paswoorden komen niet overeen, <a href="changepass.php">probeer opnieuw</a>';
            }
}

else
{
  echo $sess_id.'<br>';
  echo '<form action="changepass.php" method="post">';
  echo 'Paswoord<input type="password" name="pw1"><br>';
  echo 'Paswoord<input type="password" name="pw2"> (bevestiging)<br>';
  echo '<input type="submit" value="Verander">';
  echo '</from>';
}

?>


Die echo $sess_id; 's is om te kijken welk id ik nu heb...
Maar dat blijft overal 10
Gewijzigd op 01/01/1970 01:00:00 door Jens V
 
Vdleije .

vdleije .

16/01/2007 17:42:00
Quote Anchor link
Waar wordt die $_SESSION['id'] aangemaakt?


**typo**
Gewijzigd op 01/01/1970 01:00:00 door vdleije .
 
K i p

K i p

16/01/2007 17:43:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
include('includes/config.php');
require('includes/auth.php');
$sess_id = $_SESSION['id'];
ini_set ('display_errors', 1);
error_reporting (E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    function
strip_var($value)
    {

        $value1 = addslashes($value);
        $value2 = strip_tags($value1);
        $value3 = htmlspecialchars($value2);
        return $value3;
    }

    $pw1 = strip_var($_POST['pw1']);
    $pw2 = strip_var($_POST['pw2']);
    if($pw1 == $pw2)
    {

        $sql = "
            UPDATE
                users
            SET
                password= SHA1('"
. $pw1 . "')
            WHERE
                id = "
. $sess_id . "
            ;
        "
;
        if (! $res = mysql_query($sql))
        {

            trigger_error(mysql_error());
            echo '<pre>'.$sql.'</pre>';
        }

        else
        {
            header('Refresh: 3; URL=http://www.vandenreyt.be/koks/index.php');
            echo "<html>";
            echo "<head>";
            echo "<title>Agenda Koks</title>";
            echo "<style type=\"text/css\">";
            echo "    @import 'includes/stylesheetadmin.css';";
            echo "</style>";
            echo "</head>";
            echo "<body>";
            echo '<div align="center" class="body">';
            echo '<center>';
            echo 'Het paswoord is gewijzigd!<br>';
            echo '</center>';
            echo '</div>';
        }
    }

    else
    {
         echo 'Paswoorden komen niet overeen, <a href="changepass.php">probeer opnieuw</a>';
    }
}

else
{
    echo '<form action="changepass.php" method="post">';
    echo 'Paswoord<input type="password" name="pw1"><br>';
    echo 'Paswoord<input type="password" name="pw2"> (bevestiging)<br>';
    echo '<input type="submit" value="Verander">';
    echo '</from>';
}

?>


Zoiets?
Gewijzigd op 01/01/1970 01:00:00 door K i p
 
Jens V

Jens V

16/01/2007 17:43:00
Quote Anchor link
als je in de auth.php kijkt (staat wat hoger), dan zie je dat ze wordt gemaakt...
 
Vdleije .

vdleije .

16/01/2007 17:45:00
Quote Anchor link
Verander deze:
mysql_query ("UPDATE users SET password='$pass' WHERE id='$sess_id'") or die(mysql_error());

in:
mysql_query ("UPDATE `users` SET `password`= '".$pass."' WHERE `id` = '".$sess_id."'") or die(mysql_error());


(sorry boris, ik zag je berichiej niet)
Gewijzigd op 01/01/1970 01:00:00 door vdleije .
 
Jens V

Jens V

16/01/2007 17:47:00
Quote Anchor link
@ boris: zaten 2 typo's in, maar werkt ook niet.

@ vdleije: ik kijk dadelijk eens;)
 
Jens V

Jens V

16/01/2007 17:49:00
Quote Anchor link
Daar zitten de fouten allemaal neit..

Ik heb naar de sessie gekeken, en die geeft als id ALTIJD 10
dat is de fout...

Jens

EDIT ben sewwes terug
Gewijzigd op 01/01/1970 01:00:00 door Jens V
 
K i p

K i p

16/01/2007 17:58:00
Quote Anchor link
Raar dat je geen errors kreeg bij mijn versie. Ik zag namelijk zelf net een parse error zitten. Nu ge-edit...
 
Jens V

Jens V

16/01/2007 18:12:00
Quote Anchor link
Boris schreef op 16.01.2007 17:58:
Raar dat je geen errors kreeg bij mijn versie. Ik zag namelijk zelf net een parse error zitten. Nu ge-edit...


Die errors had ik al aangepast;-)
zit er nog een in;)
het haakje om de if te sluiten ;)
Maar het is de session fout eh
Gewijzigd op 01/01/1970 01:00:00 door Jens V
 
K i p

K i p

16/01/2007 18:26:00
Quote Anchor link
Wat krijg je met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<pre><?php
    print_r($_SESSION);
?>
</pre>
?
 
Jens V

Jens V

16/01/2007 18:33:00
Quote Anchor link
@ boris, waar moet ik dat zetten?
Op een nieuwe pagina is dat gewoon wit...
Gewijzigd op 01/01/1970 01:00:00 door Jens V
 
Vdleije .

vdleije .

16/01/2007 19:27:00
Quote Anchor link
neej, op dezelfde pagina
 
Vdleije .

vdleije .

17/01/2007 22:48:00
Quote Anchor link
Is het gelukt?
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.