Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
<?php
// Überprüfen, ob das Formular abgeschickt wurde und ob alle Angaben gemacht wurden.
if( isset($_POST['username'], $_POST['email'], $_POST['gfrage'], $_POST['gantwort'])
AND
strcmp(trim($_POST['username']),'') != 0
AND
strcmp(trim($_POST['email']),'') != 0
AND
strcmp(trim($_POST['gfrage']),'') != 0
AND
strcmp(trim($_POST['gantwort']),'') != 0 ) {
// Einbinden der Konfigurationsdatei.
require_once 'config.php';
// SQL-Anweisung an die Datenbank senden, um erstens herauszufinden, ob
// diese Kombination von Daten überhaupt existiert.
$sql = "SELECT
username,
email,
gantwort,
gfrage
FROM
user
WHERE
username = '" . trim($_POST['username']) . "'
AND
email = '" . trim($_POST['email']) . "'
AND
gfrage = '" . trim($_POST['gfrage']) . "'
AND
gantwort = '" . trim($_POST['gantwort']) . "'";
$res = mysql_query($sql) or die( 'Error[SELECT|User]: <br /><pre>' . $sql . '</pre><br />MySQL-Error: ' . mysql_error() );
// Nur wenn genau ein Datensatz selektiert wurde, wird eine E-Mail an den User versendet.
// Ansonsten wird ihm eine Fehlermeldung angezeigt.
if( mysql_num_rows($res) != 1 ) {
echo "<font face=\"Arial\" color=\"#333333\">Die angegebenen Benutzerdaten sind nicht korrekt!</font>";
exit();
}else{
// Mail - From festlegen
$from = "From: \n";
$from .= "Reply-To: \n";
$from .= "X-Mailer: PHP/" . phpversion(). "\n";
$from .= "X-Sender-IP: $REMOTE_ADDR\n";
$from .= "Content-Type: text/html";
// Benutzerdaten in Variablen speichern
$username = $_POST['username'];
$email = $_POST['email'];
// ID erzeugen
$id = sha1($username.time().rand(-3000,3000));
// Einbinden der Konfigurationsdatei.
require_once 'config.php';
// ID einfügen
$sql = "UPDATE
user
SET
pw_reset_id='".$id."'
WHERE
username='".$username."'";
$res = mysql_query($sql) or die( 'Error[SELECT|User]: <br /><pre>' . $sql . '</pre><br />MySQL-Error: ' . mysql_error() );
// Mail - Daten zusammenfassen
$nachricht = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"2\">
<table border=\"0\" cellpadding=\"0\" cellspacing=\"2\">
<tr>
<td><font face=\"Arial\" color=\"#333333\" size=\"+2\">Hallo <b>$username</b>,</font></td>
</tr>
</table>
<br>
<table border=\"0\" cellpadding=\"0\" cellspacing=\"2\">
<tr>
<td><font face=\"Arial\" color=\"#333333\">Verwende bitte den unten stehenden Link, um Dein Passwort ändern zu können.</font></td>
</tr>
<tr>
<td><font face=\"Arial\" color=\"#333333\">http://www.s351911540.online.de/pwreset.php?username=".$username."&id=".$id."</font></td>
</tr>
</table>
<br>
<table border=\"0\" cellpadding=\"0\" cellspacing=\"2\">
<tr>
<td><font face=\"Arial\" color=\"#333333\">Viel Spaß wünscht Dir das Team von <a href=\"http://\"></a></font></td>
</tr>
</table>";
//E - mail versenden
mail("$email", "Passwort vergessen", "$nachricht", "$from");
// Mail wurde versandt und der User bekommt eine Mitteilung angezeigt, in der er erfährt wie es weitergeht.
echo "<font face=\"Arial\" color=\"#333333\">Du hast soeben eine Mail von uns erhalten, mit der Du Dein Passwort ändern kannst.</font>";
exit();
}
}else{
?>
<!-- Eingabemaske -->
<center>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<table border="0" width="500" cellpadding="0" cellspacing="2">
<tr>
<td><font face="Arial" color="#333333">Username:</font></td>
</tr>
<tr>
<td><input type="text" name="username" size="30" maxlength="30"></td>
</tr>
<tr>
<td><font face="Arial" color="#333333">E - Mail:</font></td>
</tr>
<tr>
<td><input type="text" name="email" size="30" maxlength="30"></td>
</tr>
<tr>
<td><font face="Arial" color="#333333">Geheim - Frage:</font></td>
</tr>
<tr>
<td>
<select name="gfrage">
<option value="" <?php if ($_SESSION['gfrage'] == "0") { echo "selected"; } ?>> </option>
<option value="Was ich schon immer loswerden wollte?" <?php if ($_SESSION['gfrage'] == "Was ich schon immer loswerden wollte?") { echo "selected"; } ?>>Was ich schon immer loswerden wollte?</option>
<option value="Meine Lieblingsmusik?" <?php if ($_SESSION['gfrage'] == "Meine Lieblingsmusik?") { echo "selected"; } ?>>Meine Lieblingsmusik?</option>
<option value="Ich bin...?" <?php if ($_SESSION['gfrage'] == "Ich bin...?") { echo "selected"; } ?>>Ich bin...?</option>
<option value="Name meines Haustiers?" <?php if ($_SESSION['gfrage'] == "Name meines Haustiers?") { echo "selected"; } ?>>Name meines Haustiers?</option>
<option value="Wies mir geht?" <?php if ($_SESSION['gfrage'] == "Wies mir geht?") { echo "selected"; } ?>>Wies mir geht?</option>
</select>
</td>
</tr>
<tr>
<td><font face="Arial" color="#333333">Geheim - Antwort:</font></td>
</tr>
<tr>
<td><input type="password" name="gantwort" size="30" maxlength="30"></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Absenden"> <input type="reset" value="Abbrechen" name="reset"></td>
</tr>
</table>
</form>
</center>
<?php
}
?>
<?php
$id = mysql_real_escape_string($_GET['id']);
$username = mysql_real_escape_string($_GET['username']);
require_once("config.php");
$sql = "SELECT
userid
FROM
user
WHERE
username='".$username."'
AND
pw_reset_id='".$id."'";
$res = mysql_query($sql) or die( 'Error[SELECT|User]: <br /><pre>' . $sql . '</pre><br />MySQL-Error: ' . mysql_error() );
if (mysql_num_rows($res) > 0){
?>
<center>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<table border="0" width="500" cellpadding="0" cellspacing="2">
<tr>
<td><font face="Arial" color="#333333">Neues Passwort:</font></td>
</tr>
<tr>
<td><input type="password" name="password1" size="30" maxlength="30"></td>
</tr>
</table>
<hr>
<table border="0" width="500" cellpadding="0" cellspacing="2">
<tr>
<td><font face="Arial" color="#333333">Passwort wiederholen:</font></td>
</tr>
<tr>
<td><input type="password" name="password2" size="30" maxlength="30"></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Absenden"> <input type="reset" value="Abbrechen" name="reset"></td>
</tr>
</table>
</form>
</center>
<?php
// Daten auslesen
$password1 = $_POST['password1'];
$password2 = $_POST['password2'];
$password = $password1;
// SQL-Anweisung basteln, um Daten in die DB-Tabelle einzufügen.
if ($password1 == "" or $password2 == "") {
echo "<hr><center><font face=\"Arial\" color=\"#333333\"><b>Bitte trage Dein neues Passwort ein.</b></font></center><hr>";
}else{
if ($password1 != $password2) {
echo "<font face=\"Arial\" color=\"#333333\">Die angegebenen Passwörter sind nicht identisch!</font>";
}else{
require_once("config.php");
$sql = "UPDATE
user
SET
password=\"MD5('".$password."'),\"";
// SQL-Anweisung an die DB schicken und im Fehlerfall eine Meldung ausgeben.
$res = mysql_query($sql) or exit( __LINE__.', '.__FILE__.'<br />' .mysql_error());
// Wenn kein Fehler aufgetreten ist auf die Startseite weiterleiten.
echo "<meta http-equiv='refresh' content='0; url=index.php?site=home'>" ;
}
}
}else{
echo "<font face=\"Arial\" color=\"#333333\">Ein Fehler ist aufgetreten!</font>";
}
?>
require_once("config.php");
$sql = "SELECT
userid
FROM
user
WHERE
username='".$username."'
AND
pw_reset_id='".$id."'";
$res = mysql_query($sql) or die( 'Error[SELECT|User]: <br /><pre>' . $sql . '</pre><br />MySQL-Error: ' . mysql_error() );
Ich habe auch noch ein anderes Problem:
Sobald ich die Daten bei pwforgotten eingegeben habe, erscheint wie gewünscht eine Erfolgsmeldung, die dem User sagt, dass er eine Mail erhalten hat. Dabei fehlen dann komischerweise 2 Elemente der restlichen Seite....nähmlich die rechte Menu-Leiste in der "Passwort vergessen?" angezeigt wird und 1 Teil des Designs.
Hat vllt. jemand ne Ahnung, wie das passieren kann?^^
Dieser Teil des IF-Blocks wird angezeigt, wenn das erste SQL-Query null Zeilen zurückgibt:Wie bereits gesagt...wenn man auf den Link in der Mail klickt, wird im Explorer immer die Fehlermeldung (Ein Fehler ist aufgetreten!) angezeigt, die ich zu Versuchszwecken rein programmiert habe.
$sql = "SELECT
userid
FROM
user
WHERE
username='".$username."'
AND
pw_reset_id='".$id."'";
<?php
$id = mysql_real_escape_string($_GET['id']);
$username = mysql_real_escape_string($_GET['username']);
require_once("config.php");
$sql = "SELECT
userid
FROM
user
WHERE
username='".$username."'
AND
pw_reset_id='".$id."'";
/* ---------------------------------------- */
exit($sql);
/* ---------------------------------------- */
$res = mysql_query($sql) or die( 'Error[SELECT|User]: <br /><pre>' . $sql . '</pre><br />MySQL-Error: ' . mysql_error() );
if (mysql_num_rows($res) > 0){
?>
<center>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<table border="0" width="500" cellpadding="0" cellspacing="2">
<tr>
<td><font face="Arial" color="#333333">Neues Passwort:</font></td>
</tr>
<tr>
<td><input type="password" name="password1" size="30" maxlength="30"></td>
</tr>
</table>
<hr>
<table border="0" width="500" cellpadding="0" cellspacing="2">
<tr>
<td><font face="Arial" color="#333333">Passwort wiederholen:</font></td>
</tr>
<tr>
<td><input type="password" name="password2" size="30" maxlength="30"></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Absenden"> <input type="reset" value="Abbrechen" name="reset"></td>
</tr>
</table>
</form>
</center>
<?php
// Daten auslesen
$password1 = $_POST['password1'];
$password2 = $_POST['password2'];
$password = $password1;
// SQL-Anweisung basteln, um Daten in die DB-Tabelle einzufügen.
if ($password1 == "" or $password2 == "") {
echo "<hr><center><font face=\"Arial\" color=\"#333333\"><b>Bitte trage Dein neues Passwort ein.</b></font></center><hr>";
}else{
if ($password1 != $password2) {
echo "<font face=\"Arial\" color=\"#333333\">Die angegebenen Passwörter sind nicht identisch!</font>";
}else{
require_once("config.php");
$sql = "UPDATE
user
SET
password=\"MD5('".$password."'),\"";
// SQL-Anweisung an die DB schicken und im Fehlerfall eine Meldung ausgeben.
$res = mysql_query($sql) or exit( __LINE__.', '.__FILE__.'<br />' .mysql_error());
// Wenn kein Fehler aufgetreten ist auf die Startseite weiterleiten.
echo "<meta http-equiv='refresh' content='0; url=index.php?site=home'>" ;
}
}
}else{
echo "<font face=\"Arial\" color=\"#333333\">Ein Fehler ist aufgetreten!</font>";
}
?>
Ist eben [phpf]exit[/phpf]...NURNOCH...
Es ist ja schon Fakt, dass es am Query liegt (siehe deine IF-Konstrukte), denn es liefert 0 Zeilen.@ ComFreek: Hat dir mein letzter Post bei der Problemsuche geholfen?
$sql = "SELECT
userid
FROM
user
WHERE
username='".$username."'
AND
pw_reset_id='".$id."'";
$id = mysql_real_escape_string($_GET['id']);
$username = mysql_real_escape_string($_GET['username']);
require_once("config.php");
$sql = "SELECT
userid
FROM
user
WHERE
username='".$username."'
AND
pw_reset_id='".$id."'";