Interner Bereich mit Mysql

Hallo,

nach einigen erfolgslosen Fersuchen versuche ich es nun einmal hier. Also ich habe mit Hilfe von: tutorials.de/forum/php-tutor … sions.html
einen Internen Bereich erstellt.
Jetzt wollte ich mal Fragen ob es möglich ist hier eine Funktion einzubauen damit jeder Nutzer z.B. sein Passwort oder Nickname ändern kann.
Ich stelle mir das so vor: Anmelden man kommt zur Übersicht seiner Daten man möchte ewas ändern klickt auf einen Link dort ist ein Formular man gibt die Änderung ein drückt senden und es ist geändert.

Bin um jeden Tipp dankbar!

Gruß Nikolas

Klar, dazu brauchst du nur ein UPDATE-Statement, welches den Feldinhalt im Datensatz neu setzt.

Wie man die Eingabe eines neuen Passworts per Formular hinbekommt, das weisst du ja sicher schon - schliesslich kommt es im Tutorial schon vor.


Ist zwar alles nicht die eleganteste Variante, aber du bist ja noch bein lernen :wink:(

Ist zwar alles nicht die eleganteste Variante, aber du bist ja noch bein lernen :wink:(

Vielen Dank für eure Atworten schonmal im voraus.

Also das Formular habe ich erstellt es schickt den Inhalt an sen.php mit der Variablen Nickname. Ist das so richtig?
Was steht dann in der send.php?

Gruß Nikolas

Es soll das Passwort geändert werden - warum dann so ein unsinniger Name dafür, und nicht was passenderes?

Da drin steht dann die Prüfung der Daten, und das abschicken dieser an die Datenbank in einer Query. Anschliessend Erfolgskontrolle.

Also mir ist das relativ egal wie die Datei heißt an die es übergeben wird.
Ich möchte eigentlich nur wissen was drin stehen muss.
Das mit update … von michi hat irgendwie nicht funktioniert da habe ich anscheinend wieder etwas falsch gemacht.

wie genau hat es nicht funktioniert? error?

[code]<?php
include (“checkuser.php”);
?>
// Aufbau der Datenbankverbindung

<?php $connectionid = mysql_connect ("localhost", "***", "***"); if (!mysql_select_db ("***", $connectionid)) { die ("Keine Verbindung zur Datenbank"); } ?> <?php UPDATE benutzerdaten SET Nickname = '$_POST["nickname"]' ?>[/code]

also so sieht es bei mir aus immoment.

dann kommt: Parse error: syntax error, unexpected T_STRING in /users/ak10/www/intern/nicksend.php on line 14

ich weiß nicht was ich bei where einsetzen soll.

[quote=“wingi”]<?php UPDATE benutzerdaten SET Nickname = '$_POST["nickname"]' ?>

also so sieht es bei mir aus immoment.

dann kommt: Parse error: syntax error, unexpected T_STRING in /users/ak10/www/intern/nicksend.php on line 14[/quote]
UPDATE ist keine PHP-Funktion oder sonstwas, sondern ein (My)SQL-Statement. Und als solches hat es nichts direkt im PHP-Bereich zu suchen - da kann PHP herzlich wenig mit anfangen.

Wenn du das Tutorial wirklich benutzt hättest, um etwas zu lernen - und nicht nur, um per Copy&Paste möglichst schnell an fertigen Code zu kommen - dann müsste dir das eigentlich auch schon längst klar sein.

Also, schau dir an, wie im Tutorial während der Überprüfung der Login-Daten die Datenbank-Tabelle per SELECT abgefragt wird. Auch das ist ein SQL-Statement, und es steht natürlich nicht direkt im PHP-Bereich - sondern wird mit Hilfe verschiedener Funktionen an die Datenbank übergeben und anschliessend ausgewertet. Informiere dich also bitte zu jeder dort vorkommenden Funktion, wenn du noch nicht weisst, was sie macht und wozu sie dort verwendet wird.

Aber du hast dich schon mal mit PHP und ein bisschen mit Mysql beschäftigt? :unamused: Junge, schnapp dir ein Tut.

[code]<?php
include (“checkuser.php”);

// Aufbau der Datenbankverbindung

$connectionid = mysql_connect (“localhost”, “***”, “***”);
if (!mysql_select_db ("***", $connectionid))
{
die (“Keine Verbindung zur Datenbank”);
}
$sql = “UPDATE benutzerdaten SET Nickname = '” . $_POST[“nickname”] . “’”;
mysql_query($sql);
//So änderst du jeden Benutzernamen, weiß nicht ob das so beabsichtig ist.
//Kennwort ändern wie folgt:
$sql = “UPDATE benutzerdaten SET kennwort = '” . $_POST[“neues_kennwort”] . “’ WHERE Nickname = '” . $_POST[“nickname”] . “’”;
mysql_query($sql);
//Nur so, bitte Variablennamen nach Gebrauch abändern!
?>[/code]

JA ich weiß ich habe mich nicht sonderlich lange mit dem Tutorial beschäftigt!
Mit PHP kenne ich mich auch nicht bestens aus.

für die Umsetzung hatte ich mich eigentlich etwas an diesen Quelltext gehalten:

[code]<?php
// Definition der Benutzer
$benutzer[0][“Nickname”] =“admin”;
$benutzer[0][“Kennwort”] = “admin”;
$benutzer[0][“Nachname”] = “Mustermann”;
$benutzer[0][“Vorname”] = “Max”;

$benutzer[1][“Nickname”] = “test”;
$benutzer[1][“Kennwort”] = “abc”;
$benutzer[1][“Nachname”] = “Kunze”;
$benutzer[1][“Vorname”] = “Martin”;

// Sie können an dieser Stelle beliebig viele Benutzer anlegen.
// Achten Sie dabei nur auf die Fortführung der Nummer.

// Aufbau der Datenbankverbindung
$connectionid = mysql_connect (“localhost”, “root”, “”);
if (!mysql_select_db (“LoginSystem”, $connectionid))
{
die (“Keine Verbindung zur Datenbank”);
}

// Zuerst alle Datensätze löschen um keine Dopplungen zu bekommen.
mysql_query (“DELETE FROM benutzerdaten”);

// Daten eintragen
while (list ($key, $value) = each ($benutzer))
{
// SQL-Anweisung erstellen
$sql = “INSERT INTO “.
“benutzerdaten (Nickname, Kennwort, Nachname, Vorname) “.
“VALUES (’”.$value[“Nickname”].”’, '”.
md5 ($value[“Kennwort”]).”’, '”.
$value[“Nachname”]."’, ‘".
$value[“Vorname”]."’)";
mysql_query ($sql);

if (mysql_affected_rows ($connectionid) > 0)
{
echo “Benutzer erfolgreich angelegt.
\n”;
}
else
{
echo “Fehler beim Anlegen der Benutzer.
\n”;
}
}
?> [/code]

Hier steht das auch im PHP-Bereich.
Naja egal vielen Dank an MGIER ich werde da jetzt mal etwas rumbasteln.

[quote=“wingi”]JA ich weiß ich habe mich nicht sonderlich lange mit dem Tutorial beschäftigt!
Mit PHP kenne ich mich auch nicht bestens aus.[/quote]
Ja dann solltest du daran mal was machen!

[quote]für die Umsetzung hatte ich mich eigentlich etwas an diesen Quelltext gehalten: […]

Hier steht das auch im PHP-Bereich.[/quote]
Nein, tut es nicht - nicht so, wie es in deinem Versuch drin stand.
Hier ist es als Inhalt einer Stringvariablen notiert - das ist etwas ganz anderes, als es einfach so an Stellen zu schreiben, an denen PHP Funktionsaufrufe, Ausdrücke o.ä. erwartet.

Okay es funktioniert nun alles. Danke an alle die geholfen haben.
Ich glaube ich habe jetzt auch einigermaßen verstanden was wo hin muss und vor allem in den Where bereich (das war eigentlich auch das Problem warum meine ersten Versuche gescheitert sind, glaube ich).
Ich werde mich demnächst einmal etwas näher mit der ganzen Sache beschäftigen.
Ich hoffe doch das mir trotzdem mal irgendwann wieder geholfen wird. :wink:

Nikolas

nur mal so aus interesse, was wäre denn eine elegantere lösung?
ich bin nämlich noch nicht so gut in SQL und würde es auch so machen daher wollt ich mal fragen was du damit meinst.

Kommt auf die Datenbankstruktur an. Wenn man mit ner UserID arbeitet würde ich das UPDATE damit füttern, damit man garantiert den richtigen User hat.