Username updaten

Gestart doorSemmiiee13 reacties133 weergaven

14 berichten · pagina 1 van 1

Semmiiee

Lid · Topicstarter

Berichten
4.013
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
emo
Ik weet niet hoe je een gebruikersnaam kan veranderen in the database via een PHP Script die een ingelogde gebruiker kan gebruiken.

$changeUser = mysqli_real_escape_string($dbc, $_POST[changeUser]);
        $changeUser_submit = $_POST[changeUser_submit];
        
        $test = "SELECT id FROM accounts WHERE username = {$_SESSION[username]}";
        $tresult = mysqli_query($dbc, $test);
        $row = mysqli_fetch_assoc($tresult);
        
        
        $changeUser_sql = "UPDATE  `accounts` SET `username` = {$username} WHERE `id` = {$row[id]}";
        // Check SQL Syntax in database after UPDATING (changing) a name!
        $changeUser_result = mysqli_query($dbc, $changeUser_sql);
    
        if(isset($changeUser_submit)){
        
            if(!empty($changeUser)){
                if($changeUser_result){
                    echo "<div>Username changed to <i>" .$changeUser. "</i>!</div>";
                }
                else{    
                    echo "Error: <b>" .$mysqli_error($dbc). "</b>";
                }
            }else { echo "<p>Please enter a username.";}
        }


Ik probeer de gebruiksnaam te veranderen (UPDATE accounts SET username = $username) maar de ID-part werkt niet (WHERE id = $row[id]).

Als ik de ID zelf op 2 zet (De ID van de gebruik waarmee ik ben ingelogd) werkt het wel, maar het moet de ID van de ingelogde gebruiker vinden en zo de gebruikersnaam updaten.

Help?
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
welke error krijg je?
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Je script klopt op meerdere punten niet echt volgens mij.
Ook is dit "SELECT id FROM accounts WHERE username = {$_SESSION[username]}";" niet veilig.
User input NOOIT vertrouwen.

toevoeging op 18 december 2014, 15:26:48:
Verder kunnen we meer met errors smile
0
Semmiiee

Lid · Topicstarter

Berichten
4.013
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dylanh schreef:
welke error krijg je?
Geen emo
Het zegt dat de gebruikersnaam veranderd is, maar er gebeurt niks in de database.
Xjessex schreef:
Je script klopt op meerdere punten niet echt volgens mij.
Ook is dit "SELECT id FROM accounts WHERE username = {$_SESSION[username]}";" niet veilig.
User input NOOIT vertrouwen.
toevoeging op 18 december 2014, 15:26:48:
Verder kunnen we meer met errors smile
Het is de enige manier die ik ken om het te doen
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Wat is de output van:
- $_SESSION[username]
- De mysqli_error na $tresult = mysqli_query($dbc, $test);
- De mysqli_error na $changeUser_result = mysqli_query($dbc, $changeUser_sql);
0
Semmiiee

Lid · Topicstarter

Berichten
4.013
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Xjessex schreef:
Wat is de output van:
- $_SESSION[username]
- De mysqli_error na $tresult = mysqli_query($dbc, $test);
- De mysqli_error na $changeUser_result = mysqli_query($dbc, $changeUser_sql);
$_SESSION[username] = test (De gebruiksnaam waarmee ik ben ingelogd)

De errors geven niks omdat er geen errors met de mysqli connectie is
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Errors met de query. Niet met de connectie emo
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Xjessex schreef:
Je script klopt op meerdere punten niet echt volgens mij.
Ook is dit "SELECT id FROM accounts WHERE username = {$_SESSION[username]}";" niet veilig.
User input NOOIT vertrouwen.
toevoeging op 18 december 2014, 15:26:48:
Verder kunnen we meer met errors smile
Misschien is $_SESSIO[ username] geen user input
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Sessies vallen te hijacken, dus user input
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Cookies vallen te hijacken, sessies niet.
Maar het hangt van de situatie af.
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Dylanh schreef:
Cookies vallen te hijacken, sessies niet.
Maar het hangt van de situatie af.
Een voor die sessie heb je een cookie nodig .
0
Berichten
13.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Met die cookie kun je die SESSION variabelen niet aanpassen hoor.. Je kunt hooguit de cookie van een ander gebruiken zodat je dezelfde session hebt als de ander, maar dat gevaar is met bijvoorbeeld te checken op IP wel te minimaliseren.
Om die session variabelen aan te passen heb je al toegang nodig tot de locatie waar het is opgeslagen of je moet code kunnen uitvoeren..
0
Berichten
8.602
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dylanh schreef:
Eerdere citaten tonen
Xjessex schreef:
Je script klopt op meerdere punten niet echt volgens mij.
Ook is dit "SELECT id FROM accounts WHERE username = {$_SESSION[username]}";" niet veilig.
User input NOOIT vertrouwen.

toevoeging op 18 december 2014, 15:26:48:
Verder kunnen we meer met errors smile
Misschien is $_SESSIO[ username] geen user input
Dat klopt, maar beter een slot teveel dan een slot te weinig wink Er zou maar per ongeluk een username zijn die TRUNCATE TABLE * heet ofzo.
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Oh god, gebruik toch eens prepared statements.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren