Cyperfriend
Der ohne Avatar
- Registriert
- 14 Juli 2013
- Beiträge
- 1.123
Ich habe mir eine tolle Prüf-Struktur aufgebaut und stolper nun über die Verschaltung.
Der Code ist folgender
[src=php]# Eintrag bearbeiten
if(isset($_POST['b_speichern'])) {
# Variablen in einen reinen String umwandeln.
$_POST['benutzername'] = (string)$_POST['benutzername'];
$_POST['email'] = (string)$_POST['email'];
$_POST['rang'] = (string)$_POST['rang'];
# Prüfen, ob Benutzername und Rang ausgefüllt wurden
if($_POST['benutzername'] && $_POST['rang']) {
# Datenbankverbindung herstellen
$db_connect = db_connect();
# Prüfen, ob der Benutzername im Eingabeformular geändet wurde
if($_POST['benutzername'] != $_POST['org_benutzername']) {
# Falls ein Eintrag gefunden wurde, Vorgang abbrechen
$db_read = "select * from db_benutzer where benutzername='".$_POST['benutzername']."'";
$db_result = mysql_query($db_read, $db_connect) or die (mysql_error());
if(mysql_num_rows($db_result) >= 1){
# Code 21 = "Diesen Benutzer gibt es bereits"
$_SESSION['code'] = 21;
header("Location: http://".$_SERVER['HTTP_HOST']."/neu/inventory/benutzer.html");
}
}
else {
[Änderungen in die Datenbank schreiben]
[/src] Das Problem besteht darin, dass ich bei dieser Konstellation alles ändern kann, aber den Benutzernamen nicht. Es wird einfach verworfen.
Baue ich das alles um und mache es so:
[src=php]# Eintrag bearbeiten
if(isset($_POST['b_speichern'])) {
# Variablen in einen reinen String umwandeln.
$_POST['benutzername'] = (string)$_POST['benutzername'];
$_POST['email'] = (string)$_POST['email'];
$_POST['rang'] = (string)$_POST['rang'];
# Prüfen, ob Benutzername und Rang ausgefüllt wurden
if($_POST['benutzername'] && $_POST['rang']) {
# Datenbankverbindung herstellen
$db_connect = db_connect();
# Prüfen, ob der Benutzername im Eingabeformular geändet wurde
if($_POST['benutzername'] != $_POST['org_benutzername']) {
# Falls ein Eintrag gefunden wurde, Vorgang abbrechen
$db_read = "select * from db_benutzer where benutzername='".$_POST['benutzername']."'";
$db_result = mysql_query($db_read, $db_connect) or die (mysql_error());
if(mysql_num_rows($db_result) >= 1){
# Code 21 = "Diesen Benutzer gibt es bereits"
$_SESSION['code'] = 21;
header("Location: http://".$_SERVER['HTTP_HOST']."/neu/inventory/benutzer.html");
}
else {
[Änderungen in die Datenbank schreiben]
[/src] kann ich den Benutzername ändern und er wird auch geprüft, aber alle anderen Änderungen werden nur gespeichert, wenn gleichzeitig auch der Benutzername geändert wird. Bleibt der Benutzername gleich werden alle Änderungen verworfen.
Irgendwie eine ziemlich doofe Situation und ich weis nicht weiter. Hilft jemand weiter?
Der Code ist folgender
[src=php]# Eintrag bearbeiten
if(isset($_POST['b_speichern'])) {
# Variablen in einen reinen String umwandeln.
$_POST['benutzername'] = (string)$_POST['benutzername'];
$_POST['email'] = (string)$_POST['email'];
$_POST['rang'] = (string)$_POST['rang'];
# Prüfen, ob Benutzername und Rang ausgefüllt wurden
if($_POST['benutzername'] && $_POST['rang']) {
# Datenbankverbindung herstellen
$db_connect = db_connect();
# Prüfen, ob der Benutzername im Eingabeformular geändet wurde
if($_POST['benutzername'] != $_POST['org_benutzername']) {
# Falls ein Eintrag gefunden wurde, Vorgang abbrechen
$db_read = "select * from db_benutzer where benutzername='".$_POST['benutzername']."'";
$db_result = mysql_query($db_read, $db_connect) or die (mysql_error());
if(mysql_num_rows($db_result) >= 1){
# Code 21 = "Diesen Benutzer gibt es bereits"
$_SESSION['code'] = 21;
header("Location: http://".$_SERVER['HTTP_HOST']."/neu/inventory/benutzer.html");
}
}
else {
[Änderungen in die Datenbank schreiben]
[/src] Das Problem besteht darin, dass ich bei dieser Konstellation alles ändern kann, aber den Benutzernamen nicht. Es wird einfach verworfen.
Baue ich das alles um und mache es so:
[src=php]# Eintrag bearbeiten
if(isset($_POST['b_speichern'])) {
# Variablen in einen reinen String umwandeln.
$_POST['benutzername'] = (string)$_POST['benutzername'];
$_POST['email'] = (string)$_POST['email'];
$_POST['rang'] = (string)$_POST['rang'];
# Prüfen, ob Benutzername und Rang ausgefüllt wurden
if($_POST['benutzername'] && $_POST['rang']) {
# Datenbankverbindung herstellen
$db_connect = db_connect();
# Prüfen, ob der Benutzername im Eingabeformular geändet wurde
if($_POST['benutzername'] != $_POST['org_benutzername']) {
# Falls ein Eintrag gefunden wurde, Vorgang abbrechen
$db_read = "select * from db_benutzer where benutzername='".$_POST['benutzername']."'";
$db_result = mysql_query($db_read, $db_connect) or die (mysql_error());
if(mysql_num_rows($db_result) >= 1){
# Code 21 = "Diesen Benutzer gibt es bereits"
$_SESSION['code'] = 21;
header("Location: http://".$_SERVER['HTTP_HOST']."/neu/inventory/benutzer.html");
}
else {
[Änderungen in die Datenbank schreiben]
[/src] kann ich den Benutzername ändern und er wird auch geprüft, aber alle anderen Änderungen werden nur gespeichert, wenn gleichzeitig auch der Benutzername geändert wird. Bleibt der Benutzername gleich werden alle Änderungen verworfen.
Irgendwie eine ziemlich doofe Situation und ich weis nicht weiter. Hilft jemand weiter?
Zuletzt bearbeitet: