• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

kunden bekommen keine mails

Status
Für weitere Antworten geschlossen.

daxter

Neues Mitglied
hab mir von einem netten user hier ein script basteln lassen. ein besucher geht auf meine seite, registriert sich mit seinen daten und bekommt eine bestätigungsmail die er aktivieren muss. hier das script:

PHP:
<?php 
function connect() {
    $link = mysql_connect("localhost");
    mysql_select_db("abc_abc", "abc_abc", "123456");
    return $link;
}
$link = connect();
/*
##########################################################
###             Made by Vincent Lycoops                ###
### Dies ist das Dokument zum Auswerten des Formulars. ###
##########################################################
WICHTIG:
Das was jetzt folgt, sollte ausgefüllt werden. 
*/
######################################################
######################################################
#########  Folgende Variablen ersetzen: ##############
######################################################
######################################################


$falscheangabe = "Bitte fülle alle Felder korrekt aus!";


$ok = "Vielen Dank für Ihre Registrierung";


$abs = "[email protected]";


$titel = "Registrierung bei abc.de";

//Dein Name:
$dein_name = "Mustermann";

//Dein Vorname:
$dein_vorname = "Max";

######################################################
######################################################
######################################################
######################################################
######################################################
if (isset($dein_name)) { 
    $ip = $_SERVER['REMOTE_ADDR'];
    $hoster = $_SERVER["REMOTE_HOST"];
    /*   Anrede   -   ANFANG   */
    if (($_POST["Anrede"]!="Herr") && ($_POST["Anrede"]!="Frau")) {
        $notgood = 1;        
    } else {
        $anrede = $_POST["Anrede"];
        /*   Anrede   -   ENDE   */
        ###########################
        ###########################
        ###########################
        
        /*   Mailadresse   -   ANFANG   */
        if(($_POST["Mail"]=="") && 
        (!ereg('^[a-zA-Z0-9_\-\.\]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$', $_POST["Mail"]))) {
            $notgood = 1;
        } else {
            $mail = $_POST["Mail"];
            /*   Mailadresse   -   ENDE   */
            /*   Namen   -   ANFANG   */
            if (($_POST["Name"]=="") && ($_POST["Vorname"])) {
                $notgood = 1;
            } else {
                $vorname = $_POST["Vorname"];
                $name = $_POST["Name"];
                echo("<!-- ".$vorname . $name ." -->");
                /*   Namen   -   ENDE   */
                /*   Str & HNR   -   ANFANG   */
                if ((!is_numeric($_POST["HNR"])) && ($_POST["Strasse"]=="")) {
                    $notgood = 1;
                } else {
                    $strasse = $_POST["Strasse"];
                    $hnr = $_POST["HNR"];
                    /*   Str & HNR   -   ENDE   */
                    /*   PLZ & Ort   -   ANFANG   */
                    if ((!is_numeric($_POST["PLZ"])) && ($_POST["Ort"]=="")) {
                        $notgood = 1;
                    } else {
                        $plz = $_POST["PLZ"];
                        $ort = $_POST["Ort"];
                        /*   PLZ & Ort   -   ENDE   */
                        /*   Tel & land   -   ANFANG   */
                        if (($_POST["Tele"]=="") && (
                        ($_POST["Land"]!="at") || ($_POST["Land"]!="ch") || ($_POST["Land"]!="de")) ) {
                            $notgood = 1;
                        } else {
                            $land = $_POST["Land"];
                            $tel = $_POST["Tele"];
                            /*   Tel & Land   -   ENDE   */
                            /*   Geburt   -   ANFANG*/
                            if ((!is_numeric($_POST["GebDateJ"])) && 
                            (!is_numeric($_POST["GebDateT"])) && 
                            (!is_numeric($_POST["GebDateM"]))) {
                                $notgood = 1;
                            } else {
                                $geburtsdatum = $_POST["GebDateJ"] . "-" 
                                . $_POST["GebDateM"] . "-" . 
                                $_POST["GebDateT"] . " 00:00:00";
                                /*   Geburt   -   Ende   */
                                if ($_POST["TNB"]!="1") {
                                    $notgood = 1;
                                } else {
                                    $handy = $_POST["Handy"];
                                    echo($ok);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    $timestamp = time();
    $now = date("Y-m-d H:i:s", $timestamp);
    if ($notgood == 1) {
        echo($falscheangabe);
    } else {
        $md5 = md5($anrede . $name . md5("12") . $ip . $hoster . $now . "Vincent Lycoops");
        $sql = "insert into USER 
        (USER_ID, ANREDE, NAME, VORNAME, MAIL, IP, HOSTER, HAUSNUMMER, STRASSE, PLZ, ORT, 
        LAND, TELEFON, GEBURTSDATUM, HANDY, ANMELDEDATUM, AKTIVIERT, LINK) 
        values 
        ('', '".$anrede."', '".$name."', '".$vorname."', '".$mail."', '".$ip."', '".$hoster."',
        '".$hnr."', '".$strasse."', '".$plz."', '".$ort."',
        '".$land."', '".$tel."', '".$geburtsdatum."', '".$handy."', '".$now."', '0', '".$md5."')";
        mysql_query($sql);
        
        //Bitte nicht ändern, frag mich dazu.
        $nachricht = "<h1>Willkommen!</h1><p>Um dich für unseren Eintragdienst anmelden zu können musst du zuerst deine E-Mail-Adresse       
        verifizieren. Um das zu tun drücke bitte auf den unteren Link klicken:<br/>
        <a href=\"http://www.abc.abc.st/myproben/aktiv.php?link=".$md5."\"></p><p>Mit freundlichen Grüßen,<br/>
        ".$dein_vorname.", ".$dein_name."</p>";
        $headers = "From: " . $abs. "\r\n";
        mail($mail, $titel, $nachricht, $headers);
    }
}
?>
habs jetzt mal mit meinen daten gemacht aber irgendwie bekomme ich keine mail. was mache ich falsch? ich glaube ich bekomme keine verbindung zu mysql aber die zugangsdaten sind richtig:???:
 
Zuletzt bearbeitet:
wie sprichst du das skript an ?
der "entwickler" war nicht sonderlich sauber, bei kommenden projekten würde ich auf wen anderes vertrauen.
zudem habe ich beim überfliegen gesehen, dass mehrere sql injection (sicherheitslücken) vorhanden sind. das skript ist nur zusammengewürfelt.

grade wenn es um kundenmails geht, würde ich hier empfehlen ein wenig tiefer in die tasche zu greifen und einen erfahrenen entwickler beauftragen.
backen kann jeder, es muss nur zuverlässig funktionieren und schmecken, darin liegt die kunst.
 
Die Funktion um mit MySQL zu verbinden ist imho falsch. Richtig wäre es so:

PHP:
function connect() {
    $link = mysql_connect("localhost","Nutzername","Passwort");
    mysql_select_db("Datenbankname");
    return $link;
}
 
die funktion ist sowieso schwachsinnig, weil er einen mysql resource link returnt, den er aber nie benutzt :shock:

setz mal ein error_reporting(E_ALL); in die 1. line, ^^ ich denke da sind einige größere und kleinere probleme, alleine diese verschachtelung ist grauenhaft.
wenn du möchtest, mache ich eine liste mit auffälligen dingen im Code, ein für eine kommerzielle seite geeigneter code wird aus diesem schnippsel meineserachtens jedoch sowieso nichtmehr.
 
die funktion ist sowieso schwachsinnig, weil er einen mysql resource link returnt, den er aber nie benutzt :shock:

setz mal ein error_reporting(E_ALL); in die 1. line, ^^ ich denke da sind einige größere und kleinere probleme, alleine diese verschachtelung ist grauenhaft.
wenn du möchtest, mache ich eine liste mit auffälligen dingen im Code, ein für eine kommerzielle seite geeigneter code wird aus diesem schnippsel meineserachtens jedoch sowieso nichtmehr.

wenn ich das error_reporting einsetze kommt folgendes:
Notice: Undefined index: REMOTE_HOST in /abc/htdocs/myroben/senden.php on line 47
Vielen Dank für Ihre Registrierung
Notice: Undefined variable: notgood in /abc/htdocs/myroben/senden.php on line 120

naja gestern ging es, ich bekam ne mail, aber nen datenbank eintrag hab ich nicht bekommen. ich glaub ich hab soviel da dran rumgebastelt dass das script kaputt gegangen ist. ich bin ein blutiger anfänger...
Warning: mail() [function.mail]: SAFE MODE Restriction in effect. The mail() command is not allowed. in /abc/htdocs/myroben/senden.php on line 139
 
aso. ist ja auch nen free hoster:mrgreen:

EDIT: so, ne mail bekomme ich jetzt. aber wenn ich dann auf den aktivieren link klicke kommt das da
arning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/web50/html/myproben/aktiv.php on line 20

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/web50/html/myproben/aktiv.php on line 47
im admin panel wird mir auch nix angezeigt
 
Zuletzt bearbeitet:
der fehler liegt daran, dass eine foreach schleife kein durchlauf macht, oder kein array gegeben ist, prüfe evtl nochmal die mysql datenbank.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben