Liebe Freunde,
ich versuche als Anfänger dieses Script für meine Zwecke anzupassen. Dieses Script soll ein Passwort generieren, es in die Datenbank schreiben und dem Benutzer per Email zusenden, wenn Handynummer, Ort und Benutzername korrekt sind! Stimmt eines davon nicht, soll eine Fehlermeldung kommen, wie z.B. Handynummer nicht registriert usw...
Ich hab schon alles mögliche probiert.
Entweder er trägt mir einen neuen Benutzer mit gleichen Namen ein (was ja nicht sein soll) oder es macht überhaupt nichts.
Kann mir bitte jemand behilflich zur Seite stehen und mir sagen, wo das Problem liegt und was ich verändern muss?
Wäre total nett von Euch!
PHP-Code:
<?php
// Setup
$mail_send = true; // Mail wird versandt, wenn true
/*************************************************************/
// erzeugt Passwort der Länge $laenge
function pw_generator($laenge) {
// Wahrscheinlichkeit, mit der ein Zeichen erzeugt werden soll
$p_ziffer = 15; // bitte ändern falls gewünscht
$p_grossbuchstabe = 25; // bitte ändern falls gewünscht
// starte Zufallsgenerator
mt_srand((double)microtime()*1000000);
$pwd = '';
for ($i=0;$i<$laenge;$i++) {
$ziffer = chr(intval(mt_rand(48, 57))); // Zufallsziffer
$gross = chr(intval(mt_rand(65, 90))); // Zufallsgroßbuchstabe
$klein = chr(intval(mt_rand(97, 122))); // Zufallskleinbuchstabe
$select = mt_rand(1, 100); //Zufallszahl
if ($select<$p_ziffer) { // $p_ziffer aller Zeichen im Passwort sind Ziffern
$pwd .= $ziffer;
} elseif ($select>100-$p_grossbuchstabe) { // $p_grossbuchstabe aller Zeichen im Passwort sind Großbuchstaben
$pwd .= $gross;
} else { // der Rest aller Zeichen sind Kleinbuchstaben
$pwd .= $klein;
}
}
return $pwd;
}
// Datenbankidentifizierung
include ('codebsp_013_dbsetup.php');
// spezielle Variablen
$errortext = ' '; // Variable für Fehlermeldung
$emailpattern = '^[_a-zA-Z0-9-](\.{0,1}[_a-zA-Z0-9-])*@([a-zA-Z0-9-]{2,}\.){0,}[a-zA-Z0-9-]{3,}(\.[a-zA-Z]{2,4}){1,2}$';
$registriert = false; // Registrierung noch nicht abgeschlossen; wird bei Erfolg auf true gesetzt
// Gültigkeitsprüfung
if (isset($_POST['username'])) {
$username = trim($_POST['username']); // ggf. Leerzeichen am Anfang und Ende löschen
if (empty($username)) $errortext .= '<br />Fehler: Benutzername nicht angegeben';
}
if (isset($_POST['handynummer'])) {
$handynummer = trim($_POST['handynummer']); // ggf. Leerzeichen am Anfang und Ende löschen
if (empty($handynummer)) $errortext .= '<br />Fehler: Handynummer nicht angegeben';
}
if (isset($_POST['ort'])) {
$ort = trim($_POST['ort']); // ggf. Leerzeichen am Anfang und Ende löschen
if (empty($ort)) $errortext .= '<br />Fehler: Ort nicht angegeben';
}
// Datenbank fuer alle Queries oeffnen
$dblink = mysql_connect($dbserver, $dbuser, $dbpass) or die ('Konnte Verbindung mit '.$dbserver.' nicht herstellen'.mysql_error());
mysql_select_db($dbname, $dblink);
// Prüfen, ob Benutzer, Ort, Handynummer mit Datenbank Einträgen überein stimmen
$sql = 'SELECT id, cookiesupport FROM users
WHERE username = %s
AND handynummer = %s
AND ort = %s';
$sql = sprintf($sql, '\''.$username.'\'', '\''.$handynummer.'\'', '\''.$ort.'\'');
$result = mysql_query($sql, $dblink);
if (mysql_num_rows($result)!=1) $zugang = false;
if ($zugang) $userdata = mysql_fetch_array($result);
// wenn alles ok, Passwort jetzt in Datenbank eintragen
if (isset($_POST['senden']) && $errortext==' ') { // nur, wenn kein Fehler
$pwd = pw_generator(10); // jetzt Passwort erzeugen
$sql = 'UPDATE users SET pwd = %s WHERE username = %s';
$sql = sprintf($sql, '\''.md5($pwd).'\'', $_SESSION['user_id']);
$result = mysql_query($sql, $dblink);
// Email an den Benutzer an die in der Datenbank hinterlegte Emailadresse
if ($mail_send) {
$mail_subject = "kw.riedrich.de: Dein Passwort";
$mail_message = "Hallo ".$username."! Dein Passwort ist ".$pwd.".\r\n\r\n";
$mail_message .= "Es ist nur für diese Sitzung gültig, danach musst du ein neues anfordern!\r\n\r\n";
$mail_message .= "Automatisch generierte Email; bitte nicht antworten.\r\n";
$mail_header = 'Von: kw.riedrich.de';
$mail_to = $_POST['email'];
mail($mail_to,$mail_subject,$mail_message,$mail_header);
}
$registriert = true;
}
// close database
mysql_close($dblink);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Passwortanforderung</title>
<link href="codebsp_013_styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
<div class="iecorrect">
<div>
<h1 id="title">Geschützte Seiten</h1>
<h2 id="subtitle">Beispiel mit unterschiedlichen Zugriffsrechten</h2>
</div>
</div>
</div>
<div id="content">
<div id="textcontainer">
<p>Passwortanforderungsseite.</p>
<p>Hier musst du dir dein Passwort anfordern! Dieses wird dir an die hinterlegte Emailadresse zugesendet!</p>
<p> </p>
<fieldset id="formular">
<legend>Passwortanforderungsformular</legend>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" name="passwortanforderung">
<?php
if ($mail_send)
?>
<p>Das Passwort wurde dem Nutzer per Email zugeschickt.</p>
<label class="vor">Benutzername:</label>
<p><input name="username" type="text" value="<?php if (isset($username)) echo $username; ?>" /></p>
<label class="vor">Handynummer:</label>
<p><input name="handynummer" type="text" value="<?php if (isset($handynummer)) echo $handynummer; ?>" /></p>
<label class="vor">Ort:</label>
<p><input name="ort" type="text" value="<?php if (isset($ort)) echo $ort; ?>" /></p>
<p><?php echo $errortext; ?></p>
<p class="buttonLeft"><input name="senden" type="submit" value="Abschicken" /></p>
<p class="buttonLeft"><input name="zurueck" type="button" value="Zurück" onclick="location.href='codebsp_013_login.php'" /></p>
</form>
</fieldset>
</div>
</div>
<div id="menue">
<p id="mtop"> </p>
<p id="mbottom"> </p>
<div id="sectionLinks">
<h3>öffentliche Seite</h3>
<ul>
<li><a href="codebsp_013_index.php">Hauptseite</a></li>
<li><a href="codebsp_013_oeffentlich.php">öffentliche Seite</a></li>
<li><a href="codebsp_013_schutz1.php">Seite mit Schutz 1</a></li>
<li><a href="codebsp_013_schutz2.php">Seite mit Schutz 2</a></li>
<li><a href="codebsp_013_schutz3.php">Seite mit Schutz 3</a></li>
<li><a href="codebsp_013_admin.php">Administration</a></li>
</ul>
</div>
</div>
<div id="footer">
<div class="iecorrect">
<?php
if (isset($_SESSION['user_id'])) { // kann eigentlich hier nicht vorkommen
?>
<p id="footline">eingeloggt als <?php echo $name['username']; ?></p>
<?php
} else {
?>
<p id="footline">nicht eingeloggt</p>
<?php
}
?>
</div>
</div>
</body>
</html>