Input soll Mysql User ändern

SebiPuck

Erfahrenes Mitglied
Hallo,
ich habe schon einen Thread gehabt, wo das Problem ungenau geschildert wurde. Nun bin ich schon ein ganzes Stück weiter.

Was ich will:

Aus der Datenbank (Spalten: Id/user/passwort) eine Userliste ausgeben (alle user auflisten). das hab ich.
weiters sollen diese in textboxen aufgelistet sein, um die Usernames zu ändern, was mit inem button unter der liste bestätigt werden soll. das geht soweit, jedoch kann ich nur ALLE ändern, da die "Where" funktion nicht so richtig klappt.

Hier mein code:

Code:
<div class="p-object-userlist-repeat">
                     <!--generation of textbox muathafucker -->
                        <input type="text" name="user" value="<?php echo "$row[user]"; ?>">
                       
                </div>
                <?php
            }
                 ?>
                
        <input class="Reg-Submit" type="submit" value="Senden" />
    </form>

        <?php
            $user = strtolower($_POST["user"]);

        $con=mysqli_connect("localhost","root","","share");
        // Check connection
            if (mysqli_connect_errno()) {
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
            }

            mysqli_query($con,"UPDATE login SET user='$user' WHERE user=$user");

            mysqli_close($con);
            ?>

Ich denke, dass da nicht mehr viel fehlt ...
Bitte versucht, den Code anzusehen und mir den Fehler auszubessern, ich suche schon seit einigen Stunden vergebens...

Danke im Voraus,
LG
 
Im Query fehlen Anführungszeichen in der WHERE-Klausel.

Ich würde dir aber raten, erst einmal das Projekt stillzulegen und Lektüre über PHP-Sicherheit in Bezug auf Datenbanksysteme zu lesen. Der Code oben ist ein Geschenk für all jene, die in eine Website "einbrechen" / Daten klauen wollen.
 
das is nur ein internes projekt in meiner klassen, sicherheit ist nicht so wichtig (in dem fall :) ), wo soll ich die zeichen setzen ? :)
lg
 
In dieser Zeile beim WHERE
Code:
mysqli_query($con,"UPDATE login SET user='$user' WHERE user=$user");

Vernachlässigung jeglicher Sicherheit, nur weil es intern ist, ist ein absolutes No-Go in meinen Augen. Aber das musst du wissen...
 
Die Sicherheit wird natürlich noch verbessert, es is derzeit nur extrem wichtig, dass es läuft, da sich jeder persönlich kennt, der drauf zugreifen kann :)

hier die Zeichen setzen ? : WHERE user='$user' das habe ich gemacht, funktioniert so aber nicht ...
 
Dann prüfe auf Fehler seitens MySQLi.
Oder lass dir das Query mal ausgeben und prüfe es manuell (in der MySQL-Konsole bspw.).
 
Die Ausgabe ist nicht das Problem, ich glaube es liegt daran, dass beim Where nicht bestimmt werden kann, welcher user gemeint ist, da es ja erst im gleichen Moment bestimmt werden kann, wenn ich auf den button klicke... erst dann wird ja $user bestimmt ...
Ist der Code wirklich richtig ?
 
Achso, natürlich muss in der WHERE-Klausel der alte Nutzername drin stehen, sonst findet er entweder gar nichts oder einen inkorrekten Nutzer.

Du musst den alten Nutzernamen im Formular auch noch übergeben.
 
Okey, das Problem ist jetzt nur, dass da nur pro name ein Textfeld ist, in welchem der User schon von anfang an drin steht, das soll sozusagen "live" geändert werden können.

hier ein bild:
3FBoe8X.png
wie kann ich das nun realisieren ? Danke im Voraus, LG
 
Wie gesagt, musst du den alten Nutzernamen übergeben. Dies kann bspw. in einem <input type="hidden"> passieren.
 

Neue Beiträge

Zurück