| Projekthilfe Hier könnt Ihr eine Art Projekthilfe anfordern. Unter Projekthilfe verstehen wir Angebote bei denen KEIN Geld gezahlt werden kann. |
 |

21-03-2008, 19:53
|
|
flowgrow
Newbie
|
|
Registriert seit: Jan 2008
Beiträge: 18
|
|
bool Wert "false" obwohl er eigentlich "true" sein sollte :/
Hallo liebe Gemeinde 
ich kann und will es einfach nicht verstehen...
Mein Cousin hat mich auf seinen Webshop aufmerksam gemacht. Dort kann man sich anmelden, man wird Produkte kaufen können etc etc.
So jetzt gibt es folgendes Problem, er schreibt gerade das Usercenter, die Seite wo man bei Bedarf verschiedene Angaben verändern kann, und wenn man sein Passwort ändern möchte... dann funktioniert das zwar, aber die funktion, die überprüft ob das eingegebene KW dem bisherigen entspricht meint das es Probleme gibt.
Bitte macht euch selbst ein Bild:
Usercenter
test account: "mamu"
test KW: "mamu"
Hier die Funktionen:
PHP-Code:
function has_changed($var) {
if ($_POST[$var] != $_SESSION['user_'.strtolower($var)] AND !empty_formular($var))
return true;
else
return false;
}
function new_kennwort() {
if (!has_changed("Kennwort") AND (!empty_formular('new') AND
!empty_formular('new2')) AND $_POST['new'] == $_POST['new2'])
return true;
else
return false;
}
function update_kennwort() {
if (new_kennwort()) {
$_SESSION['user_kennwort'] = $_POST['new'];
return "Kennwort = MD5('".$_POST['new']."')";
}
}
function changeformular($label, $name, $type) {
echo "<tr><td width=\"200\">".$label.":</td><td><input type=\"".$type."\"";
if ($type != 'password') {
echo ' value="'.$_SESSION['user_'.strtolower($name)].'"';
}
echo " name=\"".$name."\" class=\"registerform\" />";
if (isset($_POST[$name])) {
echo "</td><td align=\"left\"><span class=\"smallalert\">";
if (exists($name))
echo "* \"".$_POST[$name]."\" ist bereits in Verwendung";
if (invalid_email($name))
echo "* Ihre email-Adresse ist ungültig";
if (!new_kennwort() AND $name == "Kennwort" AND has_changed($name))
echo "* Falsches Kennwort";
echo "</span>";
}
echo "</td></tr>\n";
}
Und noch die Seite selbst:
PHP-Code:
echo ' <p id="title">Usercenter</p>';
if (isset($_POST['submit'])) {
if ((!empty_formular('Vorname') AND
!empty_formular('Nachname') AND
!empty_formular('email') AND
!empty_formular('Adresse') AND
!invalid_email('email') AND
!exists('email')) AND
(has_changed('Vorname') OR
has_changed('Nachname') OR
has_changed('email') OR
has_changed('Adresse') OR
has_changed('email') OR
new_kennwort())) {
$update = "UPDATE
Users
SET
".update_change('Vorname')."
".update_change('Nachname')."
".update_change('email')."
".update_change('Adresse')."
".update_kennwort()."
WHERE
ID = ".$_SESSION['user_id'].";";
var_dump($update);
var_dump(new_kennwort());
//mysql_query($update) OR die(mysql_error());
echo '<br /><p id="suc">Daten erfolgreich geändert!</p>';
} else {
echo '<br /><p id="badsuc">Es wurden keine Daten
verändert!</p>';
}
}
echo '
<p id="def">Falls Sie ihre Benutzerdaten ändern wollen,<br />
geben Sie ihre gewünschten Daten in die richtigen Felder ein.<br />
Nach dem Absenden, gehen ihre ursprünglichen Daten verloren!<br />
Falls Sie ein falsches altes Kennwort eingeben, werden trotzdem die
restlichen Veränderungen vollzogen.<br />
Es ist also nicht notwendig ein neues Kennwort anzugeben.
</p>';
echo '
<form action="index.php?section=usercenter" method="post">
<table align="center">';
changeformular('Vorname', 'Vorname', 'text');
changeformular('Nachname', 'Nachname', 'text');
changeformular('email', 'email', 'text');
changeformular('Adresse', 'Adresse', 'text');
echo '<tr>
<td width="250">Benutzername:</td>
<td> '.$_SESSION['user_benutzername'].'</td>
</tr>';
changeformular('Altes Kennwort', 'Kennwort', 'password');
changeformular('Neues Kennwort', 'new', 'password');
changeformular('Kennwort wiederholen', 'new2', 'password');
echo '<tr>
<td align="right"><input type="submit" name="submit" value="Daten ändern" /></td>
</tr>
</table>
</form>';
Bitte um Rat, denn ich kenn mich nicht aus
lg Flo
EDIT: HAT SICH ERLEDIGT 
Das hab ich gemacht
PHP-Code:
function update_kennwort() {
if (new_kennwort()) {
$_SESSION['user_kennwort'] = $_POST['new'];
$_POST['Kennwort'] = "";
return "Kennwort = MD5('".$_POST['new']."')";
}
}
Vergleiche:
function update_kennwort() {
if (new_kennwort()) {
$_SESSION['user_kennwort'] = $_POST['new'];
return "Kennwort = MD5('".$_POST['new']."')";
}
}
Geändert von flowgrow (21-03-2008 um 20:13 Uhr)
|

21-03-2008, 20:23
|
|
flowgrow
Newbie
|
|
Registriert seit: Jan 2008
Beiträge: 18
|
|
Hehe, jetzt hab ich ein anderes Problem... wenn etwas anderes als das Kennwort ändert, meint der Server, dass ich einen Fehler in meinem Query habe :/ bitte schaut es euch an, einfach mal die Daten ändern
Geändert von flowgrow (21-03-2008 um 20:30 Uhr)
|

22-03-2008, 22:59
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Zitat:
|
ass ich einen Fehler in meinem Query habe :/ bitte schaut es euch an, einfach mal die Daten ändern
|
Poste doch einfach mal die Query + Fehlermeldung, so wie es jeder andere bei einem solchen Problem auch macht...
|

22-03-2008, 23:05
|
|
flowgrow
Newbie
|
|
Registriert seit: Jan 2008
Beiträge: 18
|
|
PUNKT 1... Query ist im anfangsbeitrag drinnen,
PUNKT 2... die fehlermeldung hat nur nochmal den query angezeigt und gemeint, dass ein fehler drinnen is
ich habs eh schon rausgefunden, es waren keine beistriche zwischen den werten, die upgedatet werden sollten
|

22-03-2008, 23:26
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
1) da ist nur PHP-Code drin. Dass dieser im geparsten Zustand zufällig eine Query ergibt mag sein. Jedoch steht dieses Ergebnis hier nirgendwo. Also bitte!
2) Ich geb es zu, ich hatte nicht erwartet, dass man im Projekthilfe-Forum die Funktion mysql_error() kennt. Aber dass du unsere Regeln befolgst, kann ich hoffentlich voraussetzen. Also bitte!
Zitat:
|
ich habs eh schon rausgefunden, es waren keine beistriche zwischen den werten, die upgedatet werden sollten
|
Das ist doch schonmal was.  Einfach in Zukunft 1) und 2) befolgen, dann siehst du sowas direkt.
Viel Erfolg noch!
|

22-03-2008, 23:38
|
|
flowgrow
Newbie
|
|
Registriert seit: Jan 2008
Beiträge: 18
|
|
OK ich werds versuchen
das letzte mal, dass ich die regeln gelesen habe is schon ne weile her und deswegen hab ich zb vergessen den query nochmal explizit anzugeben bzw den mysql error...
ich hoff ich merks mir bis zum nächsten mal
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
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.
|
|
|
|
PHP News
|