php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.12.2011, 11:58  
Neuer Benutzer
 
Registriert seit: 20.06.2009
Beiträge: 9
PHP-Kenntnisse:
Anfänger
helmut.riedrich befindet sich auf einem aufstrebenden Ast
Standard Script trägt Passwort nicht in die Datenbank ein

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(4857))); // Zufallsziffer
    
$gross chr(intval(mt_rand(6590))); // Zufallsgroßbuchstabe
    
$klein chr(intval(mt_rand(97122))); // Zufallskleinbuchstabe

    
$select mt_rand(1100); //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 '&nbsp;'// 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=='&nbsp;') { // 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&uuml;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>&nbsp;</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&uuml;ck" onclick="location.href='codebsp_013_login.php'" /></p>
      </form>
    </fieldset>
 
  </div>
</div>
<div id="menue">
  <p id="mtop">&nbsp;</p>
  <p id="mbottom">&nbsp;</p>
  <div id="sectionLinks">
    <h3>&ouml;ffentliche Seite</h3>
    <ul>
      <li><a href="codebsp_013_index.php">Hauptseite</a></li>
      <li><a href="codebsp_013_oeffentlich.php">&ouml;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>
helmut.riedrich ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 23.12.2011, 12:43  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.833
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

Hi,

ist ja auch klar. Dein SQL Statement sagt ja auch was anderes. Da prüfst du ob es einen Datensatz gibt, auf den das erste Kriterium und dein zweites Kriterium und drittes Kriterium zutrifft!
Du müsstest dein SQL Statement ändern + du solltest lieber eine Mailerklasse verwenden, als due funktion mail()!

mfg Wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline   Mit Zitat antworten
Antwort


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
Mehrere Querys klappen in PhpMyAdmin aber nicht in PHP djscaleo Datenbanken 36 15.05.2011 02:00
Scriptsuche fertiges Login/Reg. Script einbinden, und Datenbank erw. Bolder Scriptbörse 0 23.04.2011 05:20
Scriptsuche Mssql Script mit PHP ausführen? kalle801 Scriptbörse 1 24.02.2011 17:02
[Erledigt] Datensatz von Datenbank A nach Datenbank B kopieren GruenerQuark Datenbanken 2 17.01.2011 17:19
Premature end of script headers: index.php im Zusammenhang mit Performanceverlust Asipak Server, Hosting und Workstations 10 29.10.2010 14:13
[Erledigt] mehrere Tabellen über PHP script aus Datenbank auslesen alphabetisch... Janela Datenbanken 17 02.09.2010 20:18
[Erledigt] LogIn Script mit Datenbank Zettel Datenbanken 8 25.07.2010 13:58
[Erledigt] PHP Script trägt nichts in die MySQL Datenbank ein karaburun PHP Tipps 2009 15 25.03.2009 08:07
php script mit html script verbinden Bimbo-01 PHP Tipps 2009 2 21.02.2009 14:11
Passwort in Datenbank bayliner80 PHP Tipps 2008 18 15.12.2008 16:02
passwort script problem PHP Tipps 2006 8 15.02.2006 10:30
[Erledigt] Script mehrmals in selber Datenbank verwenden? Datenbanken 6 13.07.2005 23:03
[Erledigt] Verzögerung durch included Script? Umgehen? PHP Tipps 2005-2 4 10.07.2005 19:26
script um leicht viele einträge in die datenbank zu bekommen bratwurstschorsch PHP Tipps 2004-2 8 25.11.2004 08:41


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:36 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