CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
26.05.2009, 17:51:53
|
Anfänger
|
|
Registriert seit: May 2009
Alter: 59
Beiträge: 25
|
|
Benutzerdaten auslesen und ändern
Hallo zusammen.
Ich bin ein Neuling in php und habe einen 4 Wochen Grundkurs hinter mir.
Jetzt wollte ich für mein Loginsystem ein script machen, wo der Benutzer seine Daten ändern kann.
Ich kann die Daten auslesen, sie in ein Formular bringen, das Formular auch ändern.
Jetzt mein Problem : Wenn ich auf senden klicke, geschied nichts.
Kann mir da jemand helfen ??
Hier das geschriebene, was ich bis jetzt gemacht habe.
PHP-Code:
<?php
session_start();
// Prüfen, ob Benutzer korekt eingeloggt ist,
// durch Prüfen ob Session-Variable existiert
if (isset ($_SESSION['berechtigt']) == false)
{
?>
<meta http-equiv="refresh" content="0;URL=index.php?seite=login_inc"></meta>
<?php
die();
}
$db = new MySQLi("localhost","root","","trc")
or die('Derzeit kann keine Verbindung zur Datenbank hergestellt werden');
// Ändern eines oder mehrerer Datensätze
// *************************************
if (isset($_POST['senden']))
{
$anfrageart = "INSERT INTO 'userdaten' VALUES('','vname','nname','benutzername','anschrift','plz','ort','telefon','icq','home','email')";
$ergebnis = $db -> query($anfrageart); // Senden an Dabenbank
if ($ergebnis -> affected_rows > 0)
{
echo "Neue Daten wurde gespeichert!<br>";
$tabellen_id = $db -> insert_id; // Aulesen des neu erstellten Autowertes.
}
else
{
echo "Datensatz konnte nicht eingetragen werden!<br>";
}
/***************************************************************************************************************/
} // ende if klammer send button
echo "<div class='profil'>";
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
echo '<h3>Profil ändern :</h3>';
echo '<table width=100%>';
echo '<tr><td width=20%>Vorname:</td><td><input type="text" name="vname" size="50" value="'.$result['vname'].'"><br></td></tr>';
echo '<tr><td>Nachname:</td><td><input type="text" name="nname" size="50" value="'.$result['nname'].'"><br></td></tr>';
echo '<tr><td>Benutzername:</td><td><input type="text" name="benutzername" size="50" value="'.$result['benutzername'].'"><br></td></tr>';
echo '<tr><td>Anschrift:</td><td><input type="text" name="anschrift" size="50" value="'.$result['anschrift'].'"><br></td></tr>';
echo '<tr><td>PLZ:</td><td><input type="text" name="plz" size="50" value="'.$result['plz'].'"><br></td></tr>';
echo '<tr><td>Ort:</td><td><input type="text" name="ort" size="50" value="'.$result['ort'].'"><br></td></tr>';
echo '<tr><td>Telefon:</td><td><input type="text" name="telefon" size="50" value="'.$result['telefon'].'"><br></td></tr>';
echo '<tr><td>ICQ:</td><td><input type="text" name="icq" size="50" value="'.$result['icq'].'"<br></td></tr>';
echo '<tr><td>Homepage:</td><td><input type="text" name="home" size="50" value="'.$result['home'].'"><br></td></tr>';
echo '<tr><td>E-Mail:</td><td><input type="text" name="email" size="50" value="'.$result['email'].'"><br></td></tr>';
echo '<input type="hidden" name="benutzername" value="'.$_GET['edit'].'"><br>';
echo '<tr><td></td><td><input type="submit" name="senden" value="Senden"> <input type=button value="Zurück" onClick="history.back()"></td></tr>';
echo '</table>';
echo '</form>';
echo '</div>';
/***************************************************************************************************************/
if (isset($_POST['update']))
{
$anfrageart = "UPDATE userdaten SET
vname = '$vname',
nname = '$nname',
benutzername= '$benutzername',
anschrift = '$anschrift',
plz = '$plz',
ort = '$ort',
telefon = '$telefon',
icq = '$icq',
home = '$home',
email = '$email' WHERE benutzername = 'benutzername'";
$ergebnis -> $db -> query($anfrageart); // Senden an Dabenbank
if ($ergebnis -> affected_rows > 0)
{
echo $ergebnis -> affected_rows." Daten wurden geändert!<br>";
}
else
{
echo "Keine Datensätze gefunden!<br>";
}
}
$db -> close(); // datenbank geschlossen.
?>
Danke schon mal im Vorraus.
|
26.05.2009, 19:18:29
|
|
Member
|
|
Registriert seit: Jun 2006
Beiträge: 655
|
|
AW: Benutzerdaten auslesen und ändern
---> if (isset($_POST['update']))
Wo ist in Deinem Script denn ein Feld mit dem Namen update?
Immerhin überprüfst Du ja mit der o.g. Zeile, ob die globale Variable $_POST['update'] vorhanden ist.
Und da sie es nicht ist, und auch beim klicken von Senden nicht erstellt wird, passiert folglich auch rein gar nichts.
__________________
Liebe Grüße
Geändert von rarios (26.05.2009 um 19:20:15 Uhr)
|
26.05.2009, 20:50:35
|
Anfänger
|
|
Registriert seit: May 2009
Alter: 59
Beiträge: 25
|
|
AW: Benutzerdaten auslesen und ändern
@ rarios
Danke, aber wo oder wie muss ich das einbinden ?
Wie gesagt, Lerne php erst seit 4 Wochen.
|
26.05.2009, 21:11:43
|
|
Member
|
|
Registriert seit: Jun 2006
Beiträge: 655
|
|
AW: Benutzerdaten auslesen und ändern
Wenn ich mir so Deinen Quelltext angucke, weiß ich nicht wo ich anfangen soll...
Du solltest unbedingt mit error_reporting(E_ALL); am Anfang Deines Scriptes arbeiten.
Das hilft schon einmal etwas.
Ist das ganze nur ein Teil eines Scriptes?
Ansonsten bemängele ich den Teil ab
// ende if klammer send button.
Dort ist ein Formular, was genutzt wird, um neue Einträge zu erstellen. Gleichzeitig werden aber schon, bzw. es sollen jedenfalls durch $result[...] aktuelle Daten im Formular stehen. Eine Definition von $tesult erkenne ich in Deinem Script nirgends.
Das fehlerhafte Formular wird dann an das Script übergeben und ein neuer Eintrag erstellt. Ein Button zum Editieren bzw. zum Speichern der Editierungen gibt es aber nicht, wozu auch immerhin fehlt jegliches Edit-Formular. Im Grunde kannst du den Teil ab if (isset($_POST['update'])) komplett weglassen, alle $result Variablen löschen, und dann hast Du ein Script, dass in eine Datenbank Einträge schreibt. Mehr aber auch nicht.
__________________
Liebe Grüße
|
26.05.2009, 21:27:58
|
Anfänger
|
|
Registriert seit: May 2009
Alter: 59
Beiträge: 25
|
|
AW: Benutzerdaten auslesen und ändern
Naja, das sollte eigentlich nur der Teil (script) sein, der eben die Daten aus der DB ausliest, sie in einen Formular anzeigt, und man sie da auch ändern und wieder abspeichern kann.
Ich stehe zur zeit komplett daneben,
|
27.05.2009, 19:44:14
|
Anfänger
|
|
Registriert seit: May 2009
Alter: 59
Beiträge: 25
|
|
AW: Benutzerdaten auslesen und ändern
Hallo
Habe jetzt das Script verändert, jedoch wird nichts in die DB upgedatet.
PHP-Code:
<?php
session_start();
// Prüfen, ob Benutzer korekt eingeloggt ist,
// durch Prüfen ob Session-Variable existiert
if (isset ($_SESSION['berechtigt']) == false)
{
?>
<meta http-equiv="refresh" content="0;URL=index.php?seite=login_inc"></meta>
<?php
}
$db = new MySQLi("localhost","root","","trc")
or die('Derzeit kann keine Verbindung zur Datenbank hergestellt werden');
if (isset($_POST['senden']) == true)
{
/***************************************************************************************************************/
$anfrageart = "UPDATE userdaten SET
vname = 'vname',
nname = 'nname',
benutzername= 'benutzername',
anschrift = 'anschrift',
plz = 'plz',
ort = 'ort',
telefon = 'telefon',
icq = 'icq',
home = 'home',
email = 'email' WHERE benutzername = '$benutzername' AND passwort ='$passwort_md5'";
$ergebnis = $db -> query($anfrageart); // Senden an Dabenbank
if ($db -> affected_rows > 0)
{
echo $ergebnis -> affected_rows." Daten wurden geändert!<br>";
}
else
{
echo "Keine Datensätze gefunden!<br>";
}
}
echo "<div class='profil'>";
echo '<form method="post" action="">';
echo '<h3>Profil ändern :</h3>';
echo '<table width=100%>';
echo '<tr><td width=20%>Vorname:</td><td><input type="text" name="vname" size="50" value=""><br></td></tr>';
echo '<tr><td>Nachname:</td><td><input type="text" name="nname" size="50" value=""><br></td></tr>';
echo '<tr><td>Benutzername:</td><td><input type="text" name="benutzername" size="50" value=""><br></td></tr>';
echo '<tr><td>Anschrift:</td><td><input type="text" name="anschrift" size="50" value=""><br></td></tr>';
echo '<tr><td>PLZ:</td><td><input type="text" name="plz" size="50" value=""><br></td></tr>';
echo '<tr><td>Ort:</td><td><input type="text" name="ort" size="50" value=""><br></td></tr>';
echo '<tr><td>Telefon:</td><td><input type="text" name="telefon" size="50" value=""><br></td></tr>';
echo '<tr><td>ICQ:</td><td><input type="text" name="icq" size="50" value=""><br></td></tr>';
echo '<tr><td>Homepage:</td><td><input type="text" name="home" size="50" value=""><br></td></tr>';
echo '<tr><td>E-Mail:</td><td><input type="text" name="email" size="50" value=""><br></td></tr>';
echo '<tr><td></td><td><input type="submit" name="senden" value="Ändern"> <input type=button value="Zurück" onClick="history.back()"></td></tr>';
echo '</table>';
echo '</form>';
echo '</div>';
/***************************************************************************************************************/
$db -> close(); // datenbank geschlossen.
?>
|
28.05.2009, 10:17:50
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Benutzerdaten auslesen und ändern
Wird die Datenbankabfrage denn überhaupt ausgeführt? Das kannst du ganz einfach durch eine Ausgabe in der Verzweigung testen.
|
28.05.2009, 11:34:58
|
Anfänger
|
|
Registriert seit: May 2009
Alter: 59
Beiträge: 25
|
|
AW: Benutzerdaten auslesen und ändern
hallo xabbuh
Nach nochmaligem Umschreiben, kann ich Daten eingeben. Sobalt ich auf SENDEN klicke bekomme ich die Meldung Datensatz konnte nicht eingetragen werden! und Keine Datensätze gefunden! .
Jedoch wird in der Datenbank nichts verändert.
Hier mein neues Script:
PHP-Code:
<?php
session_start();
// Prüfen, ob Benutzer korekt eingeloggt ist,
// durch Prüfen ob Session-Variable existiert
if (isset ($_SESSION['berechtigt']) == false)
{
?>
<meta http-equiv="refresh" content="0;URL=index.php?seite=login_inc"></meta>
<?php
}
$db = new MySQLi("localhost","root","","trc")
or die('Derzeit kann keine Verbindung zur Datenbank hergestellt werden');
if (isset($_POST['senden']) == true)
{
$anfrage = "INSERT INTO 'userdaten' VALUES('','vname','nname','benutzername','anschrift','plz','ort','telefon','icq','home','email')";
$vname = $_POST['vname'];
$nname = $_POST['nname'];
$benutzername = $_POST['benutzername'];
$anschrift = $_POST['anschrift'];
$plz = $_POST['plz'];
$ort = $_POST['ort'];
$telefon = $_POST['telefon'];
$icq = $_POST['icq'];
$home = $_POST['home'];
$email = $_POST['email'];
$ergebnis = $db -> query($anfrage); // Senden an Dabenbank
if ($db -> affected_rows > 0)
{
echo "Neue Daten wurde gespeichert!<br>";
$tabellen_id = $db -> insert_id; // Aulesen des neu erstellten Autowertes.
}
else
{
echo "Datensatz konnte nicht eingetragen werden!<br>";
}
/***************************************************************************************************************/
$anfrage = "UPDATE userdaten SET vname='vname', nname='nname', benutzername='benutzername', anschrift='anschrift', plz='plz', ort='ort', telefon='telefon', icq='icq', home='home', email='email' WHERE benutzername='$benutzername'";
$ergebnis = $db -> query($anfrage); // Senden an Dabenbank
if ($db -> affected_rows > 0)
{
echo $ergebnis -> affected_rows." Daten wurden geändert!<br>";
}
else
{
echo "Keine Datensätze gefunden!<br>";
}
}
/***************************************************************************************************************/
echo "<div class='profil'>";
echo '<form method="post" action="">';
echo '<h3>Profil ändern :</h3>';
echo '<table width=100%>';
echo('<tr><td width=20%>Vorname:</td><td><input type="text" name="vname" size="50" value=""><br></td></tr>
<tr><td>Nachname:</td><td><input type="text" name="nname" size="50" value=""><br></td></tr>
<tr><td>Benutzername:</td><td><input type="text" name="benutzername" size="50" value=""><br></td></tr>
<tr><td>Anschrift:</td><td><input type="text" name="anschrift" size="50" value=""><br></td></tr>
<tr><td>PLZ:</td><td><input type="text" name="plz" size="50" value=""><br></td></tr>
<tr><td>Ort:</td><td><input type="text" name="ort" size="50" value=""><br></td></tr>
<tr><td>Telefon:</td><td><input type="text" name="telefon" size="50" value=""><br></td></tr>
<tr><td>ICQ:</td><td><input type="text" name="icq" size="50" value=""><br></td></tr>
<tr><td>Homepage:</td><td><input type="text" name="home" size="50" value=""><br></td></tr>
<tr><td>E-Mail:</td><td><input type="text" name="email" size="50" value=""><br></td></tr>
<tr><td></td><td><input type="submit" name="senden" value="Ändern"> <input type=button value="Zurück" onClick="history.back()"></td></tr>');
echo '</table>';
echo '</form>';
echo '</div>';
/***************************************************************************************************************/
$db -> close(); // datenbank geschlossen.
?>
Geändert von TRC120 (28.05.2009 um 12:00:29 Uhr)
|
28.05.2009, 18:03:37
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Benutzerdaten auslesen und ändern
Steht irgendwas in $db->error?
|
29.05.2009, 13:43:55
|
|
Member
|
|
Registriert seit: Jun 2006
Beiträge: 655
|
|
AW: Benutzerdaten auslesen und ändern
Zitat:
PHP-Code:
$anfrage = "INSERT INTO 'userdaten' VALUES('','vname','nname','benutzername','anschrift','plz','ort','telefon','icq','home','email')"; $vname = $_POST['vname']; $nname = $_POST['nname']; $benutzername = $_POST['benutzername']; $anschrift = $_POST['anschrift']; $plz = $_POST['plz']; $ort = $_POST['ort']; $telefon = $_POST['telefon']; $icq = $_POST['icq']; $home = $_POST['home']; $email = $_POST['email'];
|
Also entweder ich stehe gerade tierisch auf dem Schlauch, oder aber bei $anfrage fehlen jegliche Variablen. Die werden zwar da unter genannt, aber nicht zu $anfrage hinzugefügt.
Meiner Meinung nach müsste das so deklariert werden:
PHP-Code:
##### Muster: ##### $query = "INSERT INTO `".$table."` (".$rows.") VALUES (".$values.")";
Du lässt bei Dir $rows komplett weg und schreibst die field_names in VALUE rein. Da gehören aber, wie der Name schon sagt, Deine ganzen Werte rein.
__________________
Liebe Grüße
Geändert von rarios (29.05.2009 um 13:44:21 Uhr)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 12:54:14 Uhr.
|