-
29.07.11 12:11 #1
- Registriert seit
- Jun 2011
- Beiträge
- 32
Hallo Com,
habe (mal wieder) ein Problem und zwar möchte ich eine Seite "Profil bearbeiten" erstellen.
Leider weiß ich nicht wirklich wie ich das anstellen soll, habe zwar schon einen Code aber der funktioniert nicht.
Die Datenbank lautet "projekt" tabelle "benutzerdaten" mit folgenden Feldern "Id", "Vorname", "Nachname", "E-Mail", "Kennwort" und "level".
Hier mal mein Code
Leider weiß ich nicht weiter, wäre nett wenn mir jemand helfen könntePHP-Code:<form action="?s=profil_edit" method="post">
E-Mail
<input name="email" type="text">
<input type="submit" value="Updaten">
<?php
$connectionid = mysql_connect ("xxx", "xx", "xxx");
if (!mysql_select_db ("projekt", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = $sql = 'UPDATE
benutzerdaten
SET
E-Mail = "'.$_POST["email"].'"
WHERE
Id = "'. $_SESSION["user_id"].'"';
mysql_query ($sql)?>
Geändert von Black Angel (29.07.11 um 12:22 Uhr)
-
29.07.11 12:18 #2
Jetzt erstellste dir ein Formular zum verändern der Daten. Liest die Aktuellen Daten des Users aus und befüllst die Input-Felder. Nach dem Abschicken des Formulares überprüfste die Übergaben der Inputs und speicherst sie mit dem Update in der DB.
Editier bitte deinen ersten Beitrag und nimm die Zugangsdaten zu deiner MySQL-DB raus******!Die Schweine von heute sind unsere Schnitzel von morgen!
-
29.07.11 12:27 #3
Wieso hast du 2x "$sql" hintereinander?
Außerdem würde ich $_POST['email'] im SQL-Query erstmal mit mysql_real_escape_string() "entschärfen", sodass kein schädlicher Code eingefügt werden kann.
Noch dazu musst du dieses Feld noch in einfache Anführungszeichen einschließen, also:
Und wie Maniac gesagt hat, musst du erstmal die Felder mit einem SELECT-Statement auslesen, z.B.:PHP-Code:$sql = "UPDATE benutzerdaten SET E-Mail = '".$_POST["email"]."' WHERE Id = ".$_SESSION["user_id"].";
Code sql:1
SELECT * FROM benutzerdaten WHERE Id=3
mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
29.07.11 12:31 #4
- Registriert seit
- Jun 2011
- Beiträge
- 32
Also so?
PHP-Code:<form action="?s=profil_edit" method="post">
E-Mail:
<input name="email" type="text">
Vorname:
<input name="vname" type="text">
Nachname:
<input name="nname" type="text">
<input type="submit" value="Updaten">
<?php
$connectionid = mysql_connect ("xxx", "xxx", "xxx");
if (!mysql_select_db ("projekt", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT
`E-Mail`, `Nachname`, `Vorname`
FROM
`benutzerdaten`
WHERE
`Id` LIKE '".$_SESSION['user_id']."'";
mysql_query ($sql);
$sql2 = "UPDATE
benutzerdaten
SET
E-Mail = '".$_POST["email"]."' WHERE Id = ".$_SESSION["user_id"]."'";
mysql_query($sql2);
?>Geändert von Black Angel (29.07.11 um 12:33 Uhr)
-
29.07.11 12:37 #5
Du musst erstmal überprüfen, ob Daten schon geschickt worden sind:
Wieso benutzt bei der Id ein LIKE? Du kannst doch einfach ein Gleichheitszeichen und wenn es ein Integer (Zahl) ist, dass brauchst du auch keine Anführungszeichen.PHP-Code:if ($_POST)
{
/* update */
}
else
{
/* select */
}
Beim zweiten Statement musst du $_POST['email'] noch entschärfen:
PHP-Code:$sql2 = "UPDATE
benutzerdaten
SET
E-Mail = '".mysql_real_escape_string($_POST["email"])."' WHERE Id = ".$_SESSION["user_id"]."'";
mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
29.07.11 12:41 #6
- Registriert seit
- Jun 2011
- Beiträge
- 32
Funktioniert irgendwie immer noch nicht :|PHP-Code:<form action="?s=profil_edit" method="post">
E-Mail:
<input name="email" type="text">
Vorname:
<input name="vname" type="text">
Nachname:
<input name="nname" type="text">
<input type="submit" value="Updaten">
<?php
$connectionid = mysql_connect ("xxx", "xxx", "xxx");
if (!mysql_select_db ("projekt", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
if ($_POST)
{
$sql2 = "UPDATE
benutzerdaten
SET
E-Mail = '".mysql_real_escape_string($_POST["email"])."' WHERE Id = ".$_SESSION["user_id"]."'";
}
else
{
$sql = "SELECT
`E-Mail`, `Nachname`, `Vorname`
FROM
`benutzerdaten`
WHERE
`Id` = '".$_SESSION['user_id']."'";
}
mysql_query($sql2);
?>
Hab ich was vergessen?
-
29.07.11 12:46 #7
Was erwartest du denn?
Das mit diesen Zeilen der Computer ein schönes Formular zaubert?
Du musst die Daten doch noch in die einzelnen Formular-Felder schreiben.
Also füge dein Formular in das if ($_POST) ein und schreibe in die value-Attribute die Felder aus dem MySQL-Query-Ergebnis.mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
29.07.11 12:48 #8
Ich habs dir mal schnell aus dem Kopf geschrieben, gebe aber keine Garantie das es funktioniert, da ich es nicht getestet habe.
Ist jetzt mal ein Ansatz, daher nicht ganz fertig!
PHP-Code:<?php
$connectionid = mysql_connect ("xxx", "xxx", "xxx");
if (!mysql_select_db ("projekt", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT
`E-Mail`, `Nachname`, `Vorname`
FROM
`benutzerdaten`
WHERE
`Id` = '".$_SESSION['user_id']."'";
$query = mysql_query($sql);
$data = mysql_fetch_row($query);
if (isset($_POST['send']))
{
$sql2 = "UPDATE
`benutzerdaten`
SET
`E-Mail` = '".mysql_real_escape_string($_POST['email'])."' WHERE Id = ".$_SESSION['user_id'];
$update = mysql_query($sql2);
if($update > 0) echo "Profil wurde gespeichert";
}
?>
<form action="?s=profil_edit" method="post">
E-Mail:
<input name="email" type="text" value="<?php echo $data['E-Mail']; ?>" />
Vorname:
<input name="vname" type="text" value="<?php echo $data['Vorname']; ?>" />
Nachname:
<input name="nname" type="text" value="<?php echo $data['Nachname'];?>" />
<input type="submit" name="send" value="Updaten">
</form>Geändert von Maniac (29.07.11 um 12:51 Uhr)
Die Schweine von heute sind unsere Schnitzel von morgen!
-
29.07.11 13:01 #9
@Maniac:
Das SELECT-Statement inklusive mysql_query() könnte man noch nach dem UPDATE einfügen. Dann werden bei einer Aktualisierung auch die aktuellen Daten angezeigt.mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
29.07.11 13:06 #10Die Schweine von heute sind unsere Schnitzel von morgen!
-
29.07.11 13:34 #11
- Registriert seit
- Jun 2011
- Beiträge
- 32
Ich will auch gar nicht das mir wer das ganze Script macht, ich frage ja um zu lernen.
Habe es jetzt so und es funktioniert: DANKE
Habe gleich nochmal eine Frage.PHP-Code:<?php
$connectionid = mysql_connect ("xxx ", "xxx", "xxx");
if (!mysql_select_db ("projekt", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT
`E-Mail`, `Nachname`, `Vorname`
FROM
`benutzerdaten`
WHERE
`Id` = '".$_SESSION['user_id']."'";
$query = mysql_query($sql);
$data = mysql_fetch_row($query);
if (isset($_POST['send']))
{
$sql2 = "UPDATE
`benutzerdaten`
SET
`E-Mail` = '".mysql_real_escape_string($_POST['email'])."',
`Vorname` = '".mysql_real_escape_string($_POST['vname'])."',
`Nachname` = '".mysql_real_escape_string($_POST['nname'])."'
WHERE Id = ".$_SESSION['user_id'];
$update = mysql_query($sql2);
if($update > 0) {
echo "Profil wurde gespeichert";
"SELECT
`E-Mail`, `Nachname`, `Vorname`
FROM
`benutzerdaten`
WHERE
`Id` = '".$_SESSION['user_id']."'";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
// Benutzerdaten in ein Array auslesen.
$data = mysql_fetch_array ($result);
// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["Id"];
$_SESSION["email"] = $data["E-Mail"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
$_SESSION["level"] = $data["level"];
}
}}
?>
<form action="?s=profil_edit" method="post">
E-Mail:<br>
<input name="email" type="text" value="<?php echo $_SESSION['email']; ?>" /> <br>
Vorname:<br>
<input name="vname" type="text" value="<?php echo $_SESSION['user_vorname']; ?>" /><br>
Nachname:<br>
<input name="nname" type="text" value="<?php echo $_SESSION['user_nachname'];?>" /><br>
<input type="submit" name="send" value="Updaten">
</form>
Ich hab ja vorher einen Login.
Wenn ich jetzt die Daten ändere und dann auf Profil klicke (Profil ansehen) bin ich ausgeloggt.
Kann man das irgendwie fixxen?
-
29.07.11 13:36 #12
Wie prüfst du denn, ob du eingeloggt bist?
Hast du vielleicht ein session_start() vergessen?mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
29.07.11 13:38 #13Die Schweine von heute sind unsere Schnitzel von morgen!
-
29.07.11 13:40 #14
- Registriert seit
- Jun 2011
- Beiträge
- 32
session_start() hab ich nicht vergessen aber mich hauts trotzdem raus.:|
@Maniac:
So?
PHP-Code:if($update > 0) {
echo "Profil wurde gespeichert";
$sql3 = "SELECT
`E-Mail`, `Nachname`, `Vorname`
FROM
`benutzerdaten`
WHERE
`Id` = '".$_SESSION['user_id']."'";
$result = mysql_query ($sql3);
Geändert von Black Angel (29.07.11 um 13:44 Uhr)
-
29.07.11 13:47 #15
Nein, ausserhalb der Bedingung.
Es geht darum, wenn das Update gemacht wurde und den SELECT unter dem UPDATE hast, werden auch gleich die neuen Daten in den Feldern angezeigt. In meinem oben geposteten Script ist das noch nicht der Fall.
Also den SELECT nach der POST-Bedingung.Die Schweine von heute sind unsere Schnitzel von morgen!
Ähnliche Themen
-
Problem mit Profil laden
Von sekte im Forum Visual Basic 6.0Antworten: 4Letzter Beitrag: 16.11.07, 10:53 -
Problem beim editiren vom profil mit replace und nachheriges ausgeben in textarea
Von Kurt Cobain im Forum PHPAntworten: 3Letzter Beitrag: 31.07.05, 23:16 -
Firefox Profil Problem
Von Fanthom im Forum Internet, DSL & FlatrateAntworten: 2Letzter Beitrag: 17.01.05, 22:43 -
nl2br bearbeiten string in formular wieder bearbeiten
Von tezcatlipoca im Forum PHPAntworten: 1Letzter Beitrag: 28.04.04, 18:22 -
dw mx - problem mit bearbeiten von *.dat files
Von Dorian Iten im Forum HTML-EditorenAntworten: 1Letzter Beitrag: 29.09.02, 15:13



5Danke

Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren