php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 4,00 durchschnittlich.
  #16 (permalink)  
Alt 12-07-2011, 19:23
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Erzeuge ein Token (einen zufälligen String), speichere ihn in der DB und baue ihn in den Link in der Mail ein.
Klickt der User auf den Link, schaust du in der DB nach, ob das Token existiert, ob es noch gültig ist (Zeitpunkt der Erzeugung muss ebenfalls in DB vorliegen), loggst den zugehörigen User ein (Zuordnung zum User muss ebenfalls in der DB vorliegen), bittest den User ein Passwort zu setzen, falls das nicht bereits bei der Registrierung passiert ist, setzt den User auf "aktiv" und löschst das Token.
Mit Zitat antworten
  #17 (permalink)  
Alt 12-07-2011, 22:07
wessei
 Registrierter Benutzer
Links : Onlinestatus : wessei ist offline
Registriert seit: Jul 2011
Beiträge: 20
wessei befindet sich auf einem aufstrebenden Ast
Standard

wie könnte so etwas aussehen?

wie sieht dieser link aus
der dan in der db nachsehen kann.
wie setzt es dan auf aktiv und und wie kann ich es überwachen das er aktiv ist.

mfg. wessei
Mit Zitat antworten
  #18 (permalink)  
Alt 13-07-2011, 04:29
Benutzerbild von mermshaus mermshaus
 Registrierter Benutzer
Links : Onlinestatus : mermshaus ist offline
Registriert seit: Jun 2009
Beiträge: 451
mermshaus wird schon bald berühmt werden
Standard

Sorry, aber die Rückfragen sind einigermaßen unverständlich.

Das Token ist eine eindeutige Bytefolge. Zum Beispiel eine Folge von 10 zufälligen Buchstaben (a-z) und Ziffern (0-9). Die Idee dahinter ist, dem jeweiligen Nutzer eine Möglichkeit an die Hand zu geben, zu beweisen, dass er Inhaber einer Mail-Adresse ist.

Beispiel:

Nutzer A registriert sich, hat aber sein Konto noch nicht aktiviert. Nutzer A wird nun ein Link zugeschickt, mit dem er sein Konto aktivieren kann. Dieser Link enthält das Token "123xyz". Nutzer A kann das Token nur dann kennen, wenn er die entsprechende Mail abruft (= Inhaber der Mail-Adresse ist).

Gleichzeitig ist auf dem Server hinterlegt, dass Nutzer A ein Link mit dem Token "123xyz" zugeschickt wurde und dass das Konto als aktiviert gelten soll, wenn ein entsprechender Request eingeht, der dieses Token übermittelt (beispielsweise als GET-Parameter).

Geändert von mermshaus (13-07-2011 um 04:35 Uhr)
Mit Zitat antworten
  #19 (permalink)  
Alt 13-07-2011, 08:55
wessei
 Registrierter Benutzer
Links : Onlinestatus : wessei ist offline
Registriert seit: Jul 2011
Beiträge: 20
wessei befindet sich auf einem aufstrebenden Ast
Standard

ohh ok danke
versteh schon was du damit meinst ;-)

werd mich gleich an die arbeit machn :-D

mfg. wessei
Mit Zitat antworten
  #20 (permalink)  
Alt 17-11-2015, 19:31
GuyLikeMerlin
 Registrierter Benutzer
Links : Onlinestatus : GuyLikeMerlin ist offline
Registriert seit: Nov 2015
Beiträge: 2
GuyLikeMerlin befindet sich auf einem aufstrebenden Ast
Standard

Hallo...
Ich bin grade dabei diese ganze PHP Geschichte etwas genauer anzueignen. Dafür habe ich eine fiktive Seite gebastelt auf der man sich auch registrieren kann. Also fiktiv deshalb weil das nie was Sinnvolles wird sondern einfach nur für mich zur übung. Deswegen bitte ich auch drum das man mich nicht zu scharf kritisiert . Aber anmerkungen und verbesserungsvorschläge nehme ich natürlich gern an.
So nun zu meinem Problem:
wie schon gesagt habe ich ein Registrierungsformular welches auch funktioniert und möchte auch gerne einen Bestätigungslink per email versenden. Grundsätzlich trägt mir mein Script alles gewünschte in meine Datenbank ein inklusive "Code" zum Bestätigen der E-Mail Adresse allerdings schickt es mir keine E-Mail. Könnte da mal jemand drüber schauen und mir sagen was genau ich falsch mache?
Schon mal vielen dank im vorraus.
P.S.: Das "if" für das eintragen und senden der email beginnt bei Zeile 94, die wichtigen Daten habe ich durch "..." ersetzt weil ich leider schon mal sehr schlechte Erfahrungen gemacht habe, Die Seite wird nicht auf einem lokalem Server ausgeführt sonder auf ner gehosteten Domain und das E-Mail Script für sich funtioniert. Das ist getestet.
Mit Zitat antworten
  #21 (permalink)  
Alt 17-11-2015, 19:33
GuyLikeMerlin
 Registrierter Benutzer
Links : Onlinestatus : GuyLikeMerlin ist offline
Registriert seit: Nov 2015
Beiträge: 2
GuyLikeMerlin befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
<?php
$verbindung 
mysql_connect("...""..." "...")
or die(
"Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("...") or die ("Datenbank konnte nicht ausgewählt werden");

$username $_POST["username"];
$passwort $_POST["passwort"];
$passwort2 $_POST["passwort2"];
$email $_POST["email"];
$geb $_POST["geb"];
$aktiv $_POST["aktiv"];
$autho $_POST["autho"];
$reg $_POST["reg"];
$ip $_POST["ip"];
$stat $_POST["stat"];

function 
ID($return) {
    
srand(time());
        
$id "";
    
$a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
     for(
$i=0$i<=$return$i++) {

         
$id.=substr($a, (rand()%(strlen($a))),1);
     }
      return(
$id);
}

$link id('12');

if(
$passwort != $passwort2 OR $username == "" OR $passwort == "")
    {
    echo 
"    <html>
                <head>
<title>...</title> 
                <
                </head> 
                <body bgcolor=\"#333333\">
                <p class=\"style1\" align=\"center\">&nbsp;</p>
                <p class=\"style1\" align=\"center\">Anmeldung</p>
                <p class=\"style2\" align=\"center\">&nbsp;</p>
                <p class=\"style3\" align=\"center\">Vielen Dank f&uuml;r Ihre Anmeldung.</p>
                <p class=\"style3\" align=\"center\">Leider ist etwas schief gelaufen.</p>
                <p class=\"style3\" align=\"center\"><a  href=\"/anmelden.php?username=$username&passwort=$passwort&passwort2=$passwort2&email=$email&geb=$geb\">Felder  auffüllen.</a></p>
                <p class=\"style2\" align=\"center\">&nbsp;</p>
                <p class=\"style2\" align=\"center\">&nbsp;</p>
                </body>
                </html>"
;
    exit;
    }
$passwort md5($passwort);

$result mysql_query("SELECT id FROM user WHERE username LIKE '$username'");
$menge mysql_num_rows($result);

if(
$menge == 0)
    {
    
$eintrag "INSERT INTO user (username, passwort, email, aktiv,  autho, reg, link, geb, ip, stat) VALUES ('$username', '$passwort',  '$email', '$aktiv', '$autho', '$reg', '$link', '$geb', '$ip', '$stat')";
    
$eintragen mysql_query($eintrag);

    if(
$eintragen == true)
        {
        echo 
"    <html>
                <head>
                <title>...</title> 
                <style type=\"text/css\">
                <!--
                .style1 {
                    color: #00CC00;
                    font-size: 36px;
                }
                .style2 {
                    font-size: 18px;
                    color: #00CC00;
                }
                .style3 {
                    color: #00CC00;
                    font-size: 14px;
                }
                .form1 {
                    color: #00CC00;
                    font-size: 18px;
                    border: 3px
                    border-color: #00CC00;
                    background-color: #333333;
                    width: 195px;
                }
                .form2 {
                    color: #00CC00;
                    font-size: 18px;
                    border: 3px
                    border-color: #00CC00;
                    background-color: #333333;
                    width: 300px;
                }
                a:link { color: #00CC00; }
                a:visited { color: #00CC00; }
                -->
                </style>
                </head> 
                <body bgcolor=\"#333333\">
                <p class=\"style1\" align=\"center\">&nbsp;</p>
                <p class=\"style1\" align=\"center\">Anmeldung</p>
                <p class=\"style2\" align=\"center\">&nbsp;</p>
                <p class=\"style3\" align=\"center\">Vielen Dank f&uuml;r Ihre Anmeldung.</p>
                <p class=\"style3\" align=\"center\">Der  gew&uuml;nschte Benutzername: $username wurde f&uuml;r Sie  erstellt.</p>
                <p class=\"style3\" align=\"center\">Bitte  best&auml;tigen Sie Ihre Email-Adresse mit dem Link den  Sie</p>
                <p class=\"style3\" align=\"center\">via Email auf $email bekommen haben.</p>
                <p class=\"style2\" align=\"center\">$link</p>
                <p class=\"style2\" align=\"center\">&nbsp;</p>
                </body>
                </html>"
;

            
$to $email;
            
$subject "Best&auml;tigungsmail von ...";
            
            
$message "
                        <html>
                        <head>
                        <title>Best&auml;tigungsmail</title>
                        </head>
                        <body>
                        <p>Hallo $username</p>
                        <p>&nbsp;</p>
                        <p>Bitte &ouml;ffnen Sie folgenden Link um Ihren Benutzerkonto freizuschalten.</p>
                        <p>&nbsp;</p>
                        <p><a  href=\"....com/autho.php?username=$username&link=$link\">E-Mail  Adresse best&auml;tigen-</a></p>
                        </body>
                        </html>
            "
;

$headers "MIME-Version: 1.0" "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" "\r\n";

$headers .= 'From: <noreply@....com>' "\r\n";

mail($to,$subject,$message,$headers);
            
        }

    else
        {
        echo 
"    <html>
                <head>
                <title>...</title> 
                <style type=\"text/css\">
                <!--
                .style1 {
                    color: #00CC00;
                    font-size: 36px;
                }
                .style2 {
                    font-size: 18px;
                    color: #00CC00;
                }
                .style3 {
                    color: #00CC00;
                    font-size: 14px;
                }
                .form1 {
                    color: #00CC00;
                    font-size: 18px;
                    border: 3px
                    border-color: #00CC00;
                    background-color: #333333;
                    width: 195px;
                }
                .form2 {
                    color: #00CC00;
                    font-size: 18px;
                    border: 3px
                    border-color: #00CC00;
                    background-color: #333333;
                    width: 300px;
                }
                a:link { color: #00CC00; }
                a:visited { color: #00CC00; }
                -->
                </style>
                </head> 
                <body bgcolor=\"#333333\">
                <p class=\"style1\" align=\"center\">&nbsp;</p>
                <p class=\"style1\" align=\"center\">Anmeldung</p>
                <p class=\"style2\" align=\"center\">&nbsp;</p>
                <p class=\"style3\" align=\"center\">Vielen Dank f&uuml;r Ihre Anmeldung.</p>
                <p class=\"style3\" align=\"center\">Leider ist etwas schief gelaufen.</p>
                <p class=\"style3\" align=\"center\"><a  href=\"/anmelden.php?username=$username&passwort=$passwort&passwort2=$passwort2&email=$email&geb=$geb\">Nochmal  versuchen.</a></p>
                <p class=\"style2\" align=\"center\">&nbsp;</p>
                <p class=\"style2\" align=\"center\">&nbsp;</p>
                </body>
                </html>"
;
        }


    }

else
        {
        echo 
"    <html>
                <head>
                <title>...</title> 
                <style type=\"text/css\">
                <!--
                .style1 {
                    color: #00CC00;
                    font-size: 36px;
                }
                .style2 {
                    font-size: 18px;
                    color: #00CC00;
                }
                .style3 {
                    color: #00CC00;
                    font-size: 14px;
                }
                .form1 {
                    color: #00CC00;
                    font-size: 18px;
                    border: 3px
                    border-color: #00CC00;
                    background-color: #333333;
                    width: 195px;
                }
                .form2 {
                    color: #00CC00;
                    font-size: 18px;
                    border: 3px
                    border-color: #00CC00;
                    background-color: #333333;
                    width: 300px;
                }
                a:link { color: #00CC00; }
                a:visited { color: #00CC00; }
                -->
                </style>
                </head> 
                <body bgcolor=\"#333333\">
                <p class=\"style1\" align=\"center\">&nbsp;</p>
                <p class=\"style1\" align=\"center\">Anmeldung</p>
                <p class=\"style2\" align=\"center\">&nbsp;</p>
                <p class=\"style3\" align=\"center\">Vielen Dank f&uuml;r Ihre Anmeldung.</p>
                <p class=\"style3\" align=\"center\">Leider ist  gew&uuml;nschte Benutzername: $username schon vergeben.</p>
                <p class=\"style3\" align=\"center\"><a  href=\"/anmelden.php?passwort=$passwort&passwort2=$passwort2&email=$email&geb=$geb\">Mit  neuem Benutzernamen anmelden.</a></p>
                <p class=\"style2\" align=\"center\">&nbsp;</p>
                <p class=\"style2\" align=\"center\">&nbsp;</p>
                </body>
                </html>"
;
        }
?>
Mit Zitat antworten
  #22 (permalink)  
Alt 17-11-2015, 19:47
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Wozu verwendest du LIKE? Ich sehr hier keinen Anwendungszweck dafür.

Werte, die du in SQL-Code einfügst, müssen mit mysql_real_escape_string() maskiert werden, ansonsten ist das eine riesige Sicherheitslücke.

mysql_* Funktionen sind veraltet und werden bald aus PHP entfernt. Schau dir stattdessen mal mysqli oder PDO an.

Es gibt keinen Grund Umlaute zu verst&uuml;mmeln.

HTML-Klassen sollten sinnvoll und sprechend benannt werden und nicht style1, style2, usw.

md5() ist veraltet und unsicher. Verwende besser password_hash().

Eine Code-Zeile sollte nicht länger als 80 Zeichen haben, vor allem, wenn du den Code im Internet publizierst. Es gibt nichts nervigeres als ständig nach rechts und links zu scrollen.

Entscheide dich für eine Sprache und vermische sie nicht ($result, $eintrag, etc.). Am besten immer alles Englisch schreiben, weil das die Sprache in der IT ist.

Verwende nicht mail(), sondern eine Mailer-Bibliothek wie zB. PHPMailer. Für den üblichen Programmierer bedeutet es einen irrsinnigen Aufwand eine Mail so korrekt zu gestalten, dass sie problemlos mit mail() verschickt werden könnte. Diese Arbeit nimmt einem so eine Mailer-Bibliothek ab. Dein Code mag vielleicht jetzt für den Augenblick in genau deinen Testfällen funktionieren. Aber die Wahrscheinlichkeit, dass es so wirklich korrekt und zuverlässig auf Dauer funktioniert ist etwa so hoch wie ein 6er im Lotto.

Geändert von h3ll (17-11-2015 um 19:50 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:28 Uhr.