php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.05.2010, 03:19  
Neuer Benutzer
 
Registriert seit: 06.05.2010
Beiträge: 7
PHP-Kenntnisse:
Anfänger
theonejrm befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Datenbank per php mit variablen füllen

Hallöchen,

Ich brauche dringend eine Lösung für folgendes Problem:
Ich hab für meine website eine auf MySQL basierende Login-Seite gebastelt (klappt auch soweit) jetz möchte ich allerdings noch den Usern die Möglichkeit geben ihr Passwort zu ändern. Dazu müsste ich dann die $_POST["Passwort"] variable in die Datenbank einfügen bzw updaten.
Hab es auch schon versucht, aber der eintrag in der Datenbank ändert sich nicht. Hab schon recht viel sufu benutzt aber habe nix speziell zu meinem Problem gefunden. Wäre super dankbar für schnelle Hilfe!

Hier mein momentanes script (Die datai heißt PW_change.php):
Code:
<?php
SESSION_START();
if (isset($_POST["oldpw"]) && isset($_POST["newpw1"]) && isset($_POST["newpw2"]))
{
	if ($_POST["oldpw"] == $_SESSION["Passwort"])
	{
			if ($_POST["newpw1"] == $_POST["newpw2"])
			{
			mysql_connect("localhost","****","****");
			mysql_select_db("Accounts");
			$pwnew = $_POST["pwnew1"];
			$user = $_SESSION["User"];
		
			$sqlab = "update `accounts` set `Passwort` = '" . $pwnew . "' where `accounts` . `User` = '" . $User . "'";
		 
			 mysql_query($sqlab);
			 echo "Passwort erfolgreich geändert";
		 	}
		 	else
		 	echo "Passwort neu ist nicht gleich Passwort neu wiederholung.";
	}
	else
	echo "das alte Passwort ist nicht Korrekt.";
}
include "session.inc.php";
?>
<html>

<head>
<title>Passwort ändern</title>
</head>

<body link="#FF9900" vlink="#FFFF00" text="#FF9900" bgcolor="#000080">
<form action="PW_change.php" method="POST">
<p align="center">&nbsp;</p>
<?php echo "<p align='center'><b><font size='5'>Passwort ändern für: " . $_SESSION['User'] . " </font></b></p>"; ?>
<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="55%" id="AutoNumber1">
    <tr>
      <td width="84%">Altes Passwort: </td>
      <td width="50%"> <input type="Password" size="20" name="oldpw"></td>
    </tr>
    <tr>
      <td width="84%">Neues Passwort:</td>
      <td width="50%"> <input type="Password" size="20" name="newpw1"></td>
    </tr>
    <tr>
      <td width="84%">Neues Passwort wiederholen:</td>
      <td width="50%"> <input type="Password" size="20" name="newpw2"></td>
    </tr>
  </table>
  </center>
</div>
<p align="center">&nbsp;
<input type="submit">
<input type="reset"> </p>
</form>
</body>

</html>
Also meines Wissens nach müsste der Fehler lediglich in dieser Zeile liegen:
$sqlab = "update `accounts` set `Passwort` = '" . $pwnew . "' where `accounts` . `User` = '" . $User . "'";

Wenn die also nur jemand berichtigen könnte wär mir schon echt geholfen!

Vielen Dank im Voraus!
theonejrm ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.05.2010, 07:39  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Du setzt $user und verwendest $User.

ps: passwörter haben innerhalb einer session imho nichts zu suchen!
Arne Drews ist offline  
Alt 06.05.2010, 10:44  
Neuer Benutzer
 
Registriert seit: 06.05.2010
Beiträge: 7
PHP-Kenntnisse:
Anfänger
theonejrm befindet sich auf einem aufstrebenden Ast
Standard

Also erstmal danke, habe die Variable jetzt geändert $User und $User stimmen jetz überein .
Allerdings löst das mein Problem leider auch noch nicht. Wenn ich das Formular ausfülle und Absende ändert sich dennoch nichts in der Datenbank.
Fällt euch noch ein Fehler auf??
theonejrm ist offline  
Alt 06.05.2010, 10:48  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Laß Dir mal den Wert von $sqlab ausgeben und schalte error-report an.
Denn ma gucken, was kommt...
Arne Drews ist offline  
Alt 06.05.2010, 11:08  
Neuer Benutzer
 
Registriert seit: 06.05.2010
Beiträge: 7
PHP-Kenntnisse:
Anfänger
theonejrm befindet sich auf einem aufstrebenden Ast
Standard

also hab mir den wert ausgeben lassen:
update accounts set Passwort = where accounts . User = theonejrm

dabei ist aufgefallen, dass ich noch unterschiedliche Benennungen im Formular und im PHP code hatte. Jetzt ist die Ausgabe folgendermaßen:
update accounts set Passwort = 'aa' where accounts . User = 'theonejrm'

aber in der Datenbank ändert sich immer noch nix.
PS.: Was meinst du mir error-report? und wie schalte ich den ein?
theonejrm ist offline  
Alt 06.05.2010, 11:19  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

PHP-Code:
$pwnew $_POST["pwnew1"]; 
vs.
Code:
<input type="Password" size="20" name="newpw1">
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline  
Alt 06.05.2010, 11:38  
Neuer Benutzer
 
Registriert seit: 06.05.2010
Beiträge: 7
PHP-Kenntnisse:
Anfänger
theonejrm befindet sich auf einem aufstrebenden Ast
Standard

Richtig. Das war es was ich meinte mit unterschiedlichen bennenungen. Die habe ich aber mittlerweile korrigiert. vllt hier nochmal mein aktueller code:
Code:
<?php
SESSION_START();
if (isset($_POST["oldpw"]) && isset($_POST["newpw1"]) && isset($_POST["newpw2"]))
{
	if ($_POST["oldpw"] == $_SESSION["Passwort"])
	{
			if ($_POST["newpw1"] == $_POST["newpw2"])
			{
			mysql_connect("localhost","****","****");
			mysql_select_db("Accounts");
			$pwnew = $_POST["newpw1"];
			$User = $_SESSION["User"];
		
			$sqlab = "update accounts set Passwort = '" . $pwnew . "' where accounts . User = '" . $User . "'";
		 	echo $sqlab; //zu testzwecken
			 mysql_query($sqlab);
			 echo "Passwort erfolgreich geändert";
		 	}
		 	else
		 	echo "Passwort neu ist nicht gleich Passwort neu wiederholung.";
	}
	else
	echo "das alte Passwort ist nicht Korrekt.";
}
include "session.inc.php";
?>
<html>

<head>
<title>Passwort ändern</title>
</head>

<body link="#FF9900" vlink="#FFFF00" text="#FF9900" bgcolor="#000080">
<form action="PW_change.php" method="POST">
<p align="center">&nbsp;</p>
<?php echo "<p align='center'><b><font size='5'>Passwort ändern für: " . $_SESSION['User'] . " </font></b></p>"; ?>
<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="55%" id="AutoNumber1">
    <tr>
      <td width="84%">Altes Passwort: </td>
      <td width="50%"> <input type="Password" size="20" name="oldpw"></td>
    </tr>
    <tr>
      <td width="84%">Neues Passwort:</td>
      <td width="50%"> <input type="Password" size="20" name="newpw1"></td>
    </tr>
    <tr>
      <td width="84%">Neues Passwort wiederholen:</td>
      <td width="50%"> <input type="Password" size="20" name="newpw2"></td>
    </tr>
  </table>
  </center>
</div>
<p align="center">&nbsp;
<input type="submit">
<input type="reset"> </p>
</form>
</body>

</html>
theonejrm ist offline  
Alt 06.05.2010, 12:03  
Neuer Benutzer
 
Registriert seit: 06.05.2010
Beiträge: 7
PHP-Kenntnisse:
Anfänger
theonejrm befindet sich auf einem aufstrebenden Ast
Standard

Hier nochmal das ergebnis wenn ich $sqlab ausgeben lasse:
Code:
update `accounts` set Passwort = 'aa' where `accounts` . User = 'theonejrm'
brauche ich wirklich überall die ``?
sind noch irgendwelche Fehler in der befehlszeile?
theonejrm ist offline  
Alt 06.05.2010, 12:07  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Wenn Deine Tabelle accounts heißt und die entsprechenden Spalten Passwort und User, sieht das eigentlich korrekt aus.
Könnte höchstens noch sein, daß er den DS mit dem Wert theonejrm bei User nicht findet...

Achso:
PHP-Code:
error_reporting(-1);
ini_set('display_errors',true); 
muß an Anfang Deines Skriptes für Fehler-Report!

Die DB-Fehler holst Du Dir mit
PHP-Code:
mysql_query(...) or die(mysql_error()); 

Geändert von Arne Drews (06.05.2010 um 12:16 Uhr).
Arne Drews ist offline  
Alt 06.05.2010, 12:13  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Naja, ganz glauben möchte ich dir nicht, denn im geposteten Code stehen keine Backticks im SQL Statement.

Zitat:
update `accounts` set Passwort = 'aa' where `accounts` . User = 'theonejrm'
PHP-Code:
$sqlab "update accounts set Passwort = '" $pwnew "' where accounts . User = '" $User "'"
Setze das error_reporting hoch und schau, welche Fehler wirklich auftreten:
PHP-Code:
error_reporting(-1);
ini_set("display_errors"1); 
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Variablenname aus Datenbank auswerten Eratech PHP Tipps 2010 6 04.05.2010 18:09
Klasse statt globaler Variablen ecomeback PHP-Fortgeschrittene 6 15.07.2008 16:30
MYSQL Datenbank sortieren, nach PHP Variablen ArtAndLife PHP Tipps 2008 4 11.04.2008 10:45
Aus MySQL auslesen mit 2 $_REQUEST[''] Variablen imported_Daniel PHP Tipps 2008 7 31.03.2008 09:59
Variablen in Datenbank speichern und auslesen freehawk PHP-Fortgeschrittene 4 16.03.2008 17:22
Teil einer Variablen mit einer Variablen ersetzen ? simsalabim PHP Tipps 2007 11 20.03.2007 20:36
Textdatei erstellen - Inhalt mit Variablen füllen DDogg PHP Tipps 2006 3 25.09.2006 13:44
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
Variable mit Strings und anderen Variablen füllen PHP Tipps 2005-2 3 28.06.2005 10:34
Datenbank füllen themonk PHP Tipps 2005 2 18.05.2005 19:46
Dropdown Menu aus Datenbank füllen PHP Tipps 2005 9 08.04.2005 14:23
array per variablen füllen PHP Tipps 2005 8 20.02.2005 13:11
datenbank update mit variablen funzt nicht Datenbanken 47 06.09.2004 07:53
datenbank füllen mit insert PHP Tipps 2004 1 25.06.2004 23:50
Problem beim Füllen von Formularfeldern aus Datenbank PHP Tipps 2004 3 25.06.2004 13:44

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php datenbank füllen, http://www.php.de/php-einsteiger/67682-erledigt-datenbank-per-php-mit-variablen-fuellen.html, probleme bei formular füllen aus einer db php, html-tabelle aus datenbank befüllen, php variable mit html füllen, php variable in datenbank, php variable füllen, tabelle mit variablen füllen php, datenbank befülen php, php variablen in datenbank einfügen, datenbank mit php füllen, post variable füllen, php datenbank variable updaten, $_post variabeln tabelle füllen, input type variable mit text füllen php, sql php füllen variable, html type=password in variable speichern, datenbank aus html eingabe füllen, datenbank füllen php, php datenbank variable

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:39 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum