Hi,
bin neu hier - genauso wie ich in PHP auch ein Anfänger bin
Habe das Login-Script ausprobiert. Läuft auch ganz gut und habe auch schon nen Script zum registrieren (Username freiwählbar, automatisch generiertes Passwort wird an die Mail-Adresse vom User gesandt) programmiert. Doch jetzt krieg ich mit den Skript Probleme...
Wenn man ja ein automatisch generiertes Passwort kriegt, möchte man das ja auch ändern, oder? Klar möchte man es ändern... und deshalb hab ich versucht ein Script fürs Passwort ändern zu programmieren. Doch das klappt nich... ich geb euch mal den Code:
Ich weiß, das mit den $_POST-Variablen ist schwachsinn, aber ich wollts mir nen bisschen einfacher machen...
Das Formular dazu:
Dann noch meine Sessionhelpers.inc.php:
So... Wenn ich das Passwort vom User falsch eingebe, krieg ich als Meldung das meine Daten falsch waren. Wenn die Wiederholung vom Passwort falsch ist, krieg ich auch ne Fehlermeldung. Aber wenn beides richtig ist, kriege ich die Meldung, dass mein Passwort geändert wurde. Doch das wurde es nicht... ist immernoch alles beim alten :-/
Ach, und bitte seid nicht sooo sauer auf mich, wenn ihr die Codes seht.... ich bin wirklich noch ein totaler Anfänger
Danke schonmal für eure Hilfe
Sky
bin neu hier - genauso wie ich in PHP auch ein Anfänger bin
Habe das Login-Script ausprobiert. Läuft auch ganz gut und habe auch schon nen Script zum registrieren (Username freiwählbar, automatisch generiertes Passwort wird an die Mail-Adresse vom User gesandt) programmiert. Doch jetzt krieg ich mit den Skript Probleme...
Wenn man ja ein automatisch generiertes Passwort kriegt, möchte man das ja auch ändern, oder? Klar möchte man es ändern... und deshalb hab ich versucht ein Script fürs Passwort ändern zu programmieren. Doch das klappt nich... ich geb euch mal den Code:
PHP-Code:
<?php
session_start();
error_reporting(E_ALL);
include 'sessionhelpers.inc.php';
$_POST['username'] = $username;
$_POST['oldpass'] = $oldpass;
$_POST['password'] = $password;
$_POST['passwordh'] = $passwordh;
$userid = check_user($username, $oldpass);
if(check_user($username, $oldpass)==false) {
echo 'Deine Daten waren nicht korrekt';
} else
{
if($password==$passwordh) {
change_pass($userid, $password);
echo 'Dein Passwort wurde geändert, du musst dich neueinloggen!';
logout();
}
else {
echo 'Passwort wiederholung falsch!';
}
}
?>
Das Formular dazu:
PHP-Code:
<?php
session_start();
include 'sessionhelpers.inc.php';
echo '<form method="post" action="passchange2.php"><br>';
echo '<label>Username</label><input name="username" type="text" id="username"><br>';
echo '<label>Altes Passwort: </label><input name="oldpass" type="password" id="oldpass"><br>';
echo '<label>Neues Passwort: </label><input name="password" type="password" id="password"><br>';
echo '<label>Neues Passwort (wiederholen): </label><input name="passwordh" type="password" id="passwordh"><br>';
echo '<input name="passaendern" type="submit" id="passaendern" value="Passwort ändern">';
?>
PHP-Code:
<?
function connect()
{
$con= mysql_connect('Server','User','PASS') or die(mysql_error());
mysql_select_db('DB',$con) or die(mysql_error());
}
function check_user($name, $pass)
{
$sql="SELECT UserId
FROM users
WHERE UserName='".$name."' AND UserPass=MD5('".$pass."')
LIMIT 1";
$result= mysql_query($sql) or die(mysql_error());
if ( mysql_num_rows($result)==1)
{
$user=mysql_fetch_assoc($result);
return $user['UserId'];
}
else
return false;
}
function change_pass($userid, $password)
{
$sql="UPDATE users SET UserPass=MD5('".$password."') WHERE UserId='".$userid;
mysql_query($sql);
}
function login($userid)
{
$sql="UPDATE users
SET UserSession='".session_id()."'
WHERE UserId=".$userid;
mysql_query($sql);
}
function logged_in()
{
$sql="SELECT UserId
FROM users
WHERE UserSession='".session_id()."'
LIMIT 1";
$result= mysql_query($sql);
return ( mysql_num_rows($result)==1);
}
function logout()
{
$sql="UPDATE users
SET UserSession=NULL
WHERE UserSession='".session_id()."'";
mysql_query($sql);
}
function check_pass($username, $oldpass)
{
$sql="SELECT UserId
FROM users
WHERE UserName='".$username."' AND UserPass=MD5('".$oldpass."')
LIMIT 1";
$result= mysql_query($sql) or die(mysql_error());
if ( mysql_num_rows($result)==1)
{
return true;
}
else
return false;
}
connect();
?>
Ach, und bitte seid nicht sooo sauer auf mich, wenn ihr die Codes seht.... ich bin wirklich noch ein totaler Anfänger
Danke schonmal für eure Hilfe
Sky
Kommentar