Zurück   Flashforum > Flash und Server > Server-Seite allgemein

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-07-2008, 20:12   #1 (permalink)
Neuer User
 
Registriert seit: May 2008
Beiträge: 71
Neues PW anfordern

Hi,
ich habe eine MySQL Datenbank in der mehrere Mitglieder und deren Email stehen.
Wenn jemand sein Passwort vergessen hat, dann soll er ein neues Generieren lassen können und es per Email zugesendet bekommen.
Also das Passwort soll zufällig entstehen.
Bis jetzt bin ich so weit:
PHP-Code:
<?php
echo '<form method="post" action="heidesack.php">  
        <label>Username:</label><br><input name="emil" type="text"><br>  
        <br><input name="login" type="submit" id="login" value="Passwort anfordern">  
    </form>'
;  

if (isset(
$_POST['login']))
{
$empfaenger $_POST['emil'];
$betreff 'Der Betreff';
$nachricht 'Hallo';
$header 'From: webmaster@example.com' "\r\n" .;

mail($empfaenger$betreff$nachricht$header);
echo 
'Das neue Passwort wurde an deine Email Adresse gesendet.';
}
?>
Hier wird nur eine Email an "Hallo" an die eingegebene Email Adresse gesendet.
Was ich gerne noch hätte:
1.Es soll geprüft werden ob es wirklich eine Email-Adresse ist.
2.Die eingegeben Adresse soll mit der in der Datenbank verglichen werden und der UserName soll ermittelt werden.
3.Wenn es keinen Eintrag gibt, soll eine Entsprechende Meldung erscheinen.
4.Wenn es aber die eingegebene Adresse gibt, soll ein neues Passwort per zufall genneriert werden. Den Rest sollte ich hinkriegen.

Könnt ihr mir helfen?
Mike583 ist offline   Mit Zitat antworten
Alt 21-07-2008, 20:57   #2 (permalink)
Neuer User
 
Registriert seit: Feb 2007
Beiträge: 32
Nabend,
1. Die e-mail überprüfen:

PHP-Code:
function MailCheck ($Addr$Level) {
    
$fail 0;
    
$gTLDs "com:net:org:edu:gov:mil:int:arpa:biz:name:";
    
$CCs "ad:ae:af:ag:ai:al:am:an:ao:aq:ar:as:at:au:aw:az:ba:bb:bd:be:bf:".
     
"bg:bh:bi:bj:bm:bn:bo:br:bs:bt:bv:bw:by:bz:ca:cc:cf:cd:cg:ch:ci:".
    
"ck:cl:cm:cn:co:cr:cs:cu:cv:cx:cy:cz:de:dj:dk:dm:do:dz:ec:ee:eg:".
    
"eh:er:es:et:fi:fj:fk:fm:fo:fr:fx:ga:gb:gd:ge:gf:gh:gi:gl:gm:gn:".
    
"gp:gq:gr:gs:gt:gu:gw:gy:hk:hm:hn:hr:ht:hu:id:ie:il:in:io:iq:ir:".
    
"is:it:jm:jo:jp:ke:kg:kh:ki:km:kn:kp:kr:kw:ky:kz:la:lb:lc:li:lk:".
    
"lr:ls:lt:lu:lv:ly:ma:mc:md:mg:mh:mk:ml:mm:mn:mo:mp:mq:mr:ms:mt:".
    
"mu:mv:mw:mx:my:mz:na:nc:ne:nf:ng:ni:nl:no:np:nr:nt:nu:nz:om:pa:".
    
"pe:pf:pg:ph:pk:pl:pm:pn:pr:pt:pw:py:qa:re:ro:ru:rw:sa:sb:sc:sd:".
    
"se:sg:sh:si:sj:sk:sl:sm:sn:so:sr:st:su:sv:sy:sz:tc:td:tf:tg:th:".
    
"tj:tk:tm:tn:to:tp:tr:tt:tv:tw:tz:ua:ug:uk:um:us:uy:uz:va:vc:ve:".
    
"vg:vi:vn:vu:wf:ws:ye:yt:yu:za:zm:zr:zw:";
    
    
$Addr strtolower($Addr);
    
    
$UD explode("@"$Addr);
    if (
count($UD) != OR !$UD[0]){
        
$fail 1;
    }
    
$Levels explode("."$UD[1]);
    
$sLevels sizeof($Levels);
    if (
$sLevels 2){
        
$fail 1;
    }
    
    if (
strlen($Levels[0]) < 3){
        
$fail 1;
    }
    
$tld $Levels[$sLevels -1];
    
$tld str_ireplace("{}[]<>$|"""$tld);
    if (
strlen($tld) <OR strlen($tld) >AND $tld != "name"){
        
$fail 1;
    }
    if (
$Level AND !$fail){
        
$Level--;
        if (!
ereg($tld.":"$gTLDs) AND !ereg($tld.":"$CCs)){
            
$fail 2;
        }
    }
    if (
$Level AND !$fail){
        
$cd $sLevels 2$domain $Levels[$cd].".".$tld;
        if (
ereg($Levels[$cd]."."$cTLDs)) {
            
$cd--;
            
$domain $Levels[$cd].".".$domain;
        }
    
    
    } 
    return 
$fail;
}; 
Habe diese Funktion aus einem Tutorial, leider finde ich die Seite im moment nicht mehr.

2.Der Vergleich der eingegebenen E-mail-Adresse mit denen in der Datenbak sollte Dir ja nicht allzu schwer fallen.
PHP-Code:
SELECT 
          username
FROM
          tabelle
WHERE
          mail 
$_POST['email'
3.Nach der Abfrage
PHP-Code:
if (mysql_affected_rows()>0) { 
    while()
}else{
echo 
'Email Adresse existiert nicht';

4.Zufalsstring erstellen lassen und per md5 in mysql eintragen lassen, unverschlüsselt an adresse senden
PHP-Code:
#erlaubte Zeichen:
$zeichen="1234567890qwertzuiopasdfghjklyxcvbnmASFGHJKLQWERTZUIOPYXCVBNM";
# gewünschte Stringlänge:
$stringlaenge 40;

#Erzeugung eines leeren Strings 
$zufallsstring '';
#länge des Zeichen-Strings ermitteln:
$zeichenlaenge strlen($zeichen);
#Zeichen anhängen lassen bis gewünschte Stringlänge erreicht ist
for($i=0;$i<$stringlaenge;$i++)
{
   
$zufallsstring .= $zeichen[mt_rand(0$zeichenlaenge 1)];

auch aus einem tutorial oder forum, leider weiss ich auch keine quellenangabe mehr
EDIT:doch noch gefunden: http://www.pcwelt.de/forum/programmi...-erzeugen.html

Gruß
Tunnel
__________________
weiß nichts, kann nichts, ---> dann kanns ja nur besser werden

Geändert von tunnel85 (21-07-2008 um 20:59 Uhr)
tunnel85 ist offline   Mit Zitat antworten
Alt 21-07-2008, 21:19   #3 (permalink)
Neuer User
 
Registriert seit: May 2008
Beiträge: 71
WOW
Vielen vielen dank für die Hilfe.
Ich werde mich sofort dran machen und alles Probieren. Nur ist leider gerade der Server abgesoffen. Ich kann meine Seite nicht mehr laden.
Mike583 ist offline   Mit Zitat antworten
Alt 21-07-2008, 21:21   #4 (permalink)
Neuer User
 
Registriert seit: Feb 2007
Beiträge: 32
Dann toi,toi,toi das der server wieder läuft...
Ach ja, gerade vergessen:
Bei Punkt zwei solltest du natürlich noch vor MySql-Injection absichern.
So, ich leg mich schlafen
Gutes nächtle
Tunnel
__________________
weiß nichts, kann nichts, ---> dann kanns ja nur besser werden
tunnel85 ist offline   Mit Zitat antworten
Alt 21-07-2008, 21:30   #5 (permalink)
Neuer User
 
Registriert seit: May 2008
Beiträge: 71
Ok der Server läuft wieder.
PHP-Code:
<?php
session_start
();
include ( 
'sessionhelper.inc.php' );

echo 
'<form method="post" action="heidesack.php">  
        <label>Username:</label><br><input name="emil" type="text"><br>  
        <br><input name="login" type="submit" id="login" value="Passwort anfordern">  
    </form>'
;  

if (isset(
$_POST['login']))
{
SELECT  
          UserName 
FROM 
          member 
WHERE 
          UserMail 
'".$_POST['emil']."';

if (!
mysql_affected_rows()>0) {  
echo 
'Email Adresse existiert nicht'

}else{ 
    while() 

#erlaubte Zeichen: 
$zeichen="1234567890qwertzuiopasdfghjklyxcvbnmASFGHJKLQWERTZUIOPYXCVBNM"
# gewünschte Stringlänge: 
$stringlaenge 10
#Erzeugung eines leeren Strings  
$zufallsstring ''
#länge des Zeichen-Strings ermitteln: 
$zeichenlaenge strlen($zeichen); 
#Zeichen anhängen lassen bis gewünschte Stringlänge erreicht ist 
for($i=0;$i<$stringlaenge;$i++) 

   
$zufallsstring .= $zeichen[mt_rand(0$zeichenlaenge 1)]; 


$empfaenger $_POST['emil'];
$betreff 'Der Betreff';
$nachricht "Hallo $UserName dein PW: $zufallsstring";
$header 'From: webmaster@example.com' "\r\n" .;

mail($empfaenger$betreff$nachricht$header);
}

?>
gibt mir folgenden Fehler aus:
Parse error: syntax error, unexpected T_STRING in /users/gergaming/www/test/heidesack.php on line 13

Dir auch eine Gute Nacht.

Geändert von Mike583 (21-07-2008 um 21:39 Uhr)
Mike583 ist offline   Mit Zitat antworten
Alt 21-07-2008, 21:58   #6 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
Ich nehme an, tunnels MySQL-Statement war nur ein Beispiel, also wie du vom Prinzip her nach der Mailadresse in der Datenbanktabelle suchst. Also nicht unbedingt für Copy&Paste

Hier mal ein einfacher Einstieg in MySQL-Abfragen:
http://www.schattenbaum.net/php/abfrage.php
Das Kapitel danach behandelt dann auch das WHERE-Statement

Am besten gleich das ganze PHP/MySQL-Tutorial durcharbeiten.

Gruß
Rena
__________________
www.rena-hermann.de

The angels have the phone box
rena ist offline   Mit Zitat antworten
Alt 22-07-2008, 01:08   #7 (permalink)
Neuer User
 
Registriert seit: May 2008
Beiträge: 71
Ach so ja ich dachte das geht vielleicht ohne Variable...
Habs jetzt und es funktionert.
Vielen Dank nochmal für die großartige Hilfe!!!
Mike583 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:42 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele