Beiträge von Crimson
-
-
-
Das Problem hat sich erledigt, der Thread kann geschlossen werden.
-
Komm mal bitte zu mir auf den TeamSpeak Server: *******
// EDIT: TeamSpeak IP wieder gelöscht, da der User eingetroffen ist.
-
Warte mal meine Glaskugel meint zu mir, äähhhmm, sorry Ameisenkrieg ich glaube ich muss die Antenne neu ausrichten.
Nehmen wir den einfachen Weg und schicke uns doch bitte die Errors, alle!// EDIT: Schreibfehler entfernt
-
-
Also ich mach das dir jetzt mal ganz einfach, mach es so:
PHP
Alles anzeigen<?php include 'index.htm'; $email = 'sndboxx@live.de'; $betreff = 'TheRealPlay-Bewerbung'; $replyEmail = 'DIE EMAIL VON EUCH AUF DIE MAN ANTWORTEN KANN HIER REIN!!!'; $emailtxt = 'E-Mail: '.$_POST['EMail'].'\n'.'Name: '.$_POST['Name'].'\n'.'Kann: '.$_POST['can'].'\n \n'.'Bewerbungstext:\n'.$_POST['bw']; if (empty($_POST['EMail']) || empty($_POST['Name']) || empty($_POST['can']) || empty($_POST['bw'])) { echo 'ERROR: Du hast eine oder Mehrere Felder nicht ausgefüllt!'; } else { require_once 'email.class.php'; $mail = new Mail(); $mail->From($replyEmail); $mail->To($email); $mail->Subject($betreff); $mail->Body($emailtxt); $mail->Html($emailtxt); $mail->SetCharset("iso-8859-1"); $mail->Organization('TheRealPlay Bewerbungssystem'); $mail->Priority(3); $mail->AntiSpaming(); $result = $mail->Send(); if (!$result) { die('Die Email konnte nicht versandt werden!'); } } ?>
Benutze die Klasse von mir, wenn du das einfache reinkopieren nun nicht hin bekommst,
dann kann man dir glaube ich nicht helfen, ich habe dir eine funktionierende Klasse geschrieben,
wenn es trotz dem noch Fehler gibt, dann kann man noch mal darüber reden, wenn du aber weiter auf deiner mail() Funktion beharren willst, dann kann ich dir auch nicht helfen.// EDIT: Einen kleinen Fehler behoben.
-
Das "sendmail_from" ist auskommentiert, das kann nicht gehen, mach das Semikolon weg und versuche es noch ein mal.
-
Wie der Name "Notice" schon sagt, sind das Notizen, das sind nur Informationen,
diese haben keine Auswirkungen auf den Ablauf des Codes,
diese Notice sagt nur aus das es diese Variable noch nicht gibt oder noch nicht definiert wurde.Hast du das Problem mit meiner Klasse die ich geschrieben habe oder werkelst du immer noch an deinem Versuch rum.
Das Problem ist wenn man nur die mail() benutzt hast du keinen richtigen Header dabei, Emails ohne ordentlichen Header werden von den Spamfiltern der Provider einfach verbrannt. -
Natürlich belegt ein Dos die Verbindung zu einem Server, wenn du aber zu wenig Leistung hast, dann kann der Server diese Anfragen nicht bearbeiten, in diesem Fall hast du eine voll ausgelasteten Prozessor und der Arbeitsspeicher läuft voll.
-
Ich kann mir schon vorstellen das man den Server mit einer Dos von der Ion Canon weg bekommt, ich hab das bei mir auf meinem Entwicklungsserver getestet, allerdings habe ich da nicht SAMP sondern auf den Webserver geschossen.
Das Ende von der Geschichte, der Apache Webserver ist so abgeraucht das er selbst nach Beendigung des Angriffes noch fast alle Systemressourcen benötigt hat und nicht mehr ansteuerbar war.
Ich weis nicht wie das bei SAMP aussieht, aber ich könnte mir vorstellen das man mit einer 16.000er Leitung genug Anfragen auf einen Port wie den SAMP Server richten kann um diesen Port/Dienst mit Anfragen zu überfluten und lahm zu legen.
Dann kommt es natürlich noch darauf an wie leistungsstark der Server ist, einen V-Sever klein zu bekommen, naja sollte kein Problem sein, aber einen richtigen Root Server mit 8GB Arbeitspeicher und einem Xeon Prozesseor anzugreifen, da braucht man dann schon ein umfangreicheres System welches den Angriff ausführt.
Dann sollte der Server natürlich auch noch richtig eingrichtet sein um so etwas zu erkennen und dem vorzubeugen. -
Benutze die folgende Klasse, die ist ziemlich einfach.
Zuerst kopierst du dir den folgenden Code in eine Datei wie zum Beispiel "email.class.php".PHP
Alles anzeigen<?php /* * This script is an extensions of original libMail by Leo West * * Original script by Leo West - west_leo@yahoo.com * Original URL: http://lwest.free.fr/doc/php/lib/Mail/ * Original Lastmod : Nov 2001 * Original Version : 1.3 * * Modified by Setec Astronomy - setec@freemail.it * Modified URL : http://digilander.iol.it/setecastronomy/ * Modified Lastmod : Sep 2004 * Modified Version : 1.4.1 * * Modified by Pier Luigi Pau - pigipau@gmail.com * Modified Lastmod : Apr 2008 * Modified Version : 1.6.1 (php5) * * This script is distributed under the GPL License * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * http://www.gnu.org/licenses/gpl.txt * */ class Mail { protected $sendtoex = array(); protected $sendto = array(); protected $acc = array(); protected $abcc = array(); protected $attachments = array(); protected $related = array(); protected $xheaders = array(); protected $priorities = array( 1 => '1 (Highest)', 2 => '2 (High)', 3 => '3 (Normal)', 4 => '4 (Low)', 5 => '5 (Lowest)' ); protected $charset = "us-ascii"; protected $ctencoding = "7bit"; protected $boundary; protected $lev2_boundary; protected $rel_boundary; protected $html; protected $body; protected $mainctype; protected $receipt = 0; protected $headers; protected $gheaders; public function __construct() { $this->boundary = "--" . md5(uniqid("myboundary" . rand())) . "x"; $this->lev2boundary = null; $this->relboundary = null; } public function Subject($subject = "") { $this->xheaders['Subject'] = strtr($subject, "\r\n", " "); return true; } public function From($from_email, $from_name = "") { if (!is_string($from_email)) { return false; } if (empty($from_name)) { $this->xheaders['From'] = $from_email; } else { $this->xheaders['From'] = "\"$from_name\" <$from_email>"; } return true; } public function ReplyTo($replyto_email, $replyto_name = "") { if (!is_string($replyto_email)) { return false; } if (empty($replyto_name)) { $this->xheaders['Reply-To'] = $replyto_email; } else { $this->xheaders['Reply-To'] = "\"$replyto_name\" <$replyto_email>"; } return true; } public function ReturnPath($returnpath_email, $returnpath_name = "") { if (!is_string($returnpath_email)) { return false; } if (empty($returnpath_email)) { $this->xheaders['Return-Path'] = $returnpath_email; } else { $this->xheaders['Return-Path'] = "\"$returnpath_name\" <$returnpath_email>"; } return true; } public function Receipt($flag = true) { $this->receipt = ($flag) ? 1 : 0; return true; } public function To($address) { if (is_array($address)) { $this->sendto = array(); $this->sendtoex = array(); foreach ($address as $key => $value) { if (is_numeric($key)) { $this->sendto[] = $value; $this->sendtoex[] = $value; } elseif (is_string($key) && is_string($value)) { $value = trim(str_replace('"', '', $value)); $this->sendto[] = $key; $this->sendtoex[] = "\"$value\" <$key>"; } } } else { $this->sendto[] = $address; $this->sendtoex[] = $address; } return true; } public function Cc($address) { if (is_array($address)) { $this->acc = array(); foreach ($address as $key => $value) { if (is_numeric($key)) { $this->acc[] = $value; } elseif (is_string($key) && is_string($value)) { $value = str_replace('"', '', $value); $this->acc[] = "\"$value\" <$key>"; } } } else { $this->acc = array($address); } return true; } public function Bcc($address) { if (is_array($address)) { $this->abcc = array(); foreach ($address as $key => $value) { if (is_numeric($key)) { $this->abcc[] = $value; } elseif (is_string($key) && is_string($value)) { $value = str_replace('"', '', $value); $this->abcc[] = "\"$value\" <$key>"; } } } else { $this->abcc = array($address); } return true; } public function SetCharset($charset) { if (!empty($charset)) { $this->charset = strtolower($charset); if ($this->charset != "us-ascii") { $this->ctencoding = "8bit"; } } } public function Body($body = "", $charset = "") { $this->body = $body; $this->SetCharset($charset); return true; } public function Text($body = "", $charset = "") { // alias for Body() return $this->Body($body, $charset); } public function Html($html_message = "", $charset = "") { $this->html = $html_message; $this->SetCharset($charset); return true; } public function Organization($org = "") { if (empty($org)) { unset($this->xheaders['Organization']); } else { $this->xheaders['Organization'] = $org; } return true; } public function AntiSpaming($client_ip = "", $proxy_server = "", $user_agent = "") { if (empty($client_ip)) { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $client_ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $client_ip = $_SERVER['HTTP_CLIENT_IP']; } elseif (isset($_SERVER['HTTP_FROM'])) { $client_ip = $_SERVER['HTTP_FROM']; } elseif (isset($_SERVER['REMOTE_ADDR'])) { $client_ip = $_SERVER['REMOTE_ADDR']; } $this->xheaders['X-HTTP-Posting-Host'] = $client_ip; } else { $this->xheaders['X-HTTP-Posting-Host'] = $client_ip; } if (empty($proxy_server)) { if ($client_ip != $_SERVER['REMOTE_ADDR']) { $this->xheaders['X-HTTP-Proxy-Server'] = $_SERVER['REMOTE_ADDR']; } } else { $this->xheaders['X-HTTP-Proxy-Server'] = $proxy_server; } if (empty($user_agent)) { if (isset($_SERVER['HTTP_USER_AGENT'])) { $this->xheaders['X-HTTP-Posting-UserAgent'] = $_SERVER['HTTP_USER_AGENT']; } else { $this->xheaders['X-HTTP-Posting-UserAgent'] = "Unknown"; } } else { $this->xheaders['X-HTTP-Posting-UserAgent'] = $user_agent; } return true; } public function Priority($priority = 3) { if (!isset($this->priorities[$priority])) { return false; } $this->xheaders["X-Priority"] = $this->priorities[$priority]; return true; } public function Attach($filepath, $mimetype = "", $disposition = "inline", $filename = "") { if (empty($filepath)) { return false; } if (empty($mimetype)) { $mimetype = "application/x-unknown-content-type"; } if (empty($filename)) { $filename = basename($filepath); } $this->attachments[] = array( 'filename' => $filename, 'filepath' => $filepath, 'mimetype' => $mimetype, 'disposition' => $disposition ); return true; } public function AttachString($content, $mimetype = "text/html", $disposition = "inline", $filename = "") { if (empty($content)) { return false; } if (empty($mimetype)) { $mimetype = "application/x-unknown-content-type"; } $this->attachments[] = array( 'filename' => $filename, 'content' => $content, 'mimetype' => $mimetype, 'disposition' => $disposition ); } public function Relate($filepath, $mimetype = "", $filename = "") { if (empty($filepath)) { return false; } if (empty($mimetype)) { $mimetype = "application/x-unknown-content-type"; } if (empty($filename)) { $filename = basename($filepath); } $count_related = count($this->related); $cid = "CID-" . $count_related; $this->related[] = array( 'filename' => $filename, 'filepath' => $filepath, 'mimetype' => $mimetype, 'cid' => $cid ); return $cid; } public function RelateString($content, $mimetype = "", $filename = "") { if (empty($content)) { return false; } if (empty($mimetype)) { $mimetype = "application/x-unknown-content-type"; } $count_related = count($this->related); if (empty($filename)) { $filename = "file" . $count_related . ".bin"; } $cid = "CID-" . $count_related; $this->related[] = array( 'filename' => $filename, 'content' => $content, 'mimetype' => $mimetype, 'cid' => $cid ); return $cid; } protected function BuildMail() { $this->headers = ""; $this->gheaders = ""; if (count($this->sendtoex) > 0) { $this->xheaders['To'] = implode(", ", $this->sendtoex); } if (count($this->acc) > 0) { $this->xheaders['CC'] = implode(", ", $this->acc); } if (count($this->abcc) > 0) { $this->xheaders['BCC'] = implode(", ", $this->abcc); } if ($this->receipt) { if (isset($this->xheaders["Reply-To"])) { $this->xheaders["Disposition-Notification-To"] = $this->xheaders["Reply-To"]; } else { $this->xheaders["Disposition-Notification-To"] = $this->xheaders['From']; } } if ($this->charset != "") { $this->xheaders["Mime-Version"] = "1.0"; $this->xheaders["Content-Type"] = "text/plain; charset=$this->charset"; $this->xheaders["Content-Transfer-Encoding"] = $this->ctencoding; } $this->xheaders["X-Mailer"] = "Php/libMailv2.1.6"; if ($this->html) { // build related if (empty($this->related) || !$this->Build_Related()) { // there are no related files - just output HTML $this->fullBody = $this->html; $this->mainctype = "text/html; charset=" . $this->charset; } if ($this->body) { // e-mail with Text and HTML bodies - setup multipart/alternative if (!$this->lev2boundary) { $this->lev2boundary = "--" . md5(uniqid("mylev2boundary" . rand())) . "y"; } $this->fullBody = "This is a multi-part message in MIME format.\n--" . $this->lev2boundary . "\nContent-Type: text/plain; charset=" . $this->charset . "\nContent-Transfer-Encoding: " . $this->ctencoding . "\n\n" . $this->body . "\n--" . $this->lev2boundary . "\nContent-Type: " . $this->mainctype . "\nContent-Transfer-Encoding: " . $this->ctencoding . "\n\n" . $this->fullBody . "\n--" . $this->lev2boundary . "--\n"; $this->mainctype = "multipart/alternative;\n boundary=\"" . $this->lev2boundary . "\""; } } else { // e-mail with plain text only $this->fullBody = $this->body; $this->mainctype = "text/plain; charset=" . $this->charset; } if (count($this->attachments) > 0) { $has_attach = $this->build_attachment(); } else { $has_attach = 0; } if ($has_attach == 0) { $this->xheaders["Content-Type"] = $this->mainctype; } reset($this->xheaders); while (list ($hdr, $value) = each($this->xheaders)) { $this->gheaders .= "$hdr: $value\n"; if ($hdr != "Subject" && $hdr != "To") { /* don't duplicate headers set by mail() */ $this->headers .= "$hdr: $value\n"; } } return true; } public function Send() { $this->BuildMail(); $strTo = implode(", ", $this->sendto); return mail($strTo, $this->xheaders['Subject'], $this->fullBody, $this->headers); } public function Get($full_headers = true) { $this->BuildMail(); if ($full_headers) { $mail = $this->gheaders . "\n"; } else { $mail = $this->headers . "\n"; } $mail .= $this->fullBody; return $mail; } protected function build_attachment() { $count = 0; $sep = chr(13) . chr(10); $ata = array(); $k = 0; foreach ($this->attachments as $attach) { $basename = $attach['filename']; $ctype = $attach['mimetype']; // content-type $disposition = $attach['disposition']; if (isset($attach['filepath'])) { $filepath = $attach['filepath']; if (file_exists($filepath)) { $subhdr = "--" . $this->boundary . "\nContent-type: $ctype;\n name=\"$basename\"\nContent-Transfer-Encoding: base64\nContent-Disposition: $disposition;\n filename=\"$basename\"\n"; $ata[$k++] = $subhdr; $linesz = filesize($filepath) + 1; $fp = fopen($filepath, 'rb'); $ata[$k++] = chunk_split(base64_encode(fread($fp, $linesz))); fclose($fp); $count++; } } elseif (isset($attach['content'])) { $content = $attach['content']; if ($content) { $subhdr = "--" . $this->boundary . "\nContent-type: $ctype;" . (strlen($basename) > 0 ? "\n name=\"$basename\"" : "") . "\nContent-Transfer-Encoding: base64\nContent-Disposition: $disposition;\n filename=\"$basename\"\n"; $ata[$k++] = $subhdr; $ata[$k++] = chunk_split(base64_encode($content)); $count++; } } } if ($count > 0) { $this->xheaders["Content-Type"] = "multipart/mixed;\n boundary=\"$this->boundary\""; $this->fullBody = "This is a multi-part message in MIME format.\n--" . $this->boundary . "\nContent-Type: " . $this->mainctype . "\nContent-Transfer-Encoding: " . $this->ctencoding . "\n\n" . $this->fullBody . "\n"; $this->fullBody .= implode($sep, $ata); $this->fullBody .= "--" . $this->boundary . "--\n"; } return $count; } protected function Build_Related() { $count = 0; $sep = chr(13) . chr(10); $ata = array(); $k = 0; if (!$this->relboundary) { $this->relboundary = "--" . md5(uniqid("relboundary" . rand())) . "z"; } foreach ($this->related as $attach) { $basename = $attach['filename']; $ctype = $attach['mimetype']; // content-type $cid = $attach['cid']; if (isset($attach['filepath'])) { $filepath = $attach['filepath']; if (file_exists($filepath)) { $subhdr = "--" . $this->relboundary . "\nContent-type: $ctype;\n name=\"$basename\"" . "\nContent-Transfer-Encoding: base64" . "\nContent-ID: <$cid>" . "\nContent-Disposition: inline;\n filename=\"$basename\"\n"; $ata[$k++] = $subhdr; $linesz = filesize($filepath) + 1; $fp = fopen($filepath, 'rb'); $ata[$k++] = chunk_split(base64_encode(fread($fp, $linesz))); fclose($fp); $count++; } } elseif (isset($attach['content'])) { $content = $attach['content']; if ($content) { $subhdr = "--" . $this->relboundary . "\nContent-type: $ctype; \n name=\"$basename\"" . "\nContent-Transfer-Encoding: base64" . "\nContent-ID: <$cid>" . "\nContent-Disposition: inline;\n filename=\"$basename\"\n"; $ata[$k++] = $subhdr; $ata[$k++] = chunk_split(base64_encode($content)); $count++; } } } if ($count > 0) { $this->fullBody = "This is a multi-part message in MIME format.\n" . "--" . $this->relboundary . "\nContent-Type: text/html; charset=" . $this->charset . "\nContent-Transfer-Encoding: " . $this->ctencoding . "\n\n" . $this->html . "\n"; $this->fullBody .= implode($sep, $ata); $this->fullBody .= "--" . $this->relboundary . "--\n"; $this->mainctype = "multipart/related;\n boundary=\"" . $this->relboundary . "\""; return $count; } else { return false; } } } // class Mail ?>
Dannach machst du in der Datei die du brauchst ein include.
Danach kannst du die Klasse so benutzen:
PHP
Alles anzeigen<?php $mail = new Mail(); $mail->From('EMAIL ADRESSE VON WEM DIESE MAIL KOMMEN SOLL'); $mail->To('EMAIL ADRESSE AN WEN DIESE MAIL GEHEN SOLL'); $mail->Subject('DER BETREFF DER EMAIL'); $mail->Body('HIER KOMMTE DIE NACHTICHT IN PLAIN TEXT REIN (OHNE HTML)'); $mail->Html('HIER KOMMT DIE NACHRICHT IN HTML REIN'); $mail->SetCharset("iso-8859-1"); $mail->Organization('VON WEM KOMMT DIE EMAIL'); $mail->Priority(3); $mail->AntiSpaming(); $result = $mail->Send(); // Hier schauen wir ob die Email versant werden konnte if (!$result) { die('Die E-Mail konnte nicht verschickt werden!'); } ?>
Sorry für die Megabombe, ich hoffe ich konnte helfen.
// EDIT1: Was vergessen
// EDIT2: Schreibfehler ausgebessert -
Dann brauchst du kein PHP sondern dann musst du den Domain Redirect einstellen, wenn das nicht mehr funktioniert, dann solltest du dich an den Betreiber wenden, oder dich darum kümmern das du Plesk wieder zum laufen bekommst.
-
Ohh, hmm den realpath() kannst du noch raus machen, den brauchst du nicht mehr, vergiss nicht eine Klammer vor dem Semikolon zu entfernen.
-
Problem wurde behoben nach einigen größeren Umbauarbeiten am kompletten System.
Viel Erfolg, wenn du weitere Probleme hast melde dich einfach.Kann geschlossen werden.
-
Ich sag dazu jetzt mal nur das der Diebstahl von so etwas tatsächlich auch eine Straftat ist und das verdammt teuer werden kann.
Ich unterstelle hier nichts, um das gleich mal klarzustellen, doch hättest du dich doch von der falschen Seite "inspirieren" lassen, dann solltest du schleunigst zusehen das du das unverzüglich in den Müll beförderst, denn sonst könnte es verdammt teuer werden. -
Das fördert die Userfreundlichkeit enorm, wenn du mit Ajax arbeiten solltes denke aber immer daran die Daten die du bekommst Serverseitig zu validieren, es machen viele den Fehler die Daten nur Clientseitig zu validieren und dann haben sie entweder Mist in der Datenbank stehen oder ihre Datenbank ist komprometierbar.
-
Das ist ein standard Formular...
Wenn ich eine Fehleingabe mache, dann sollte das was man schon eingetragen hat auch wieder im Formular erscheinen, außer selbstverständlich die Passwörter.
Zudem, wenn ich eine Fehleingabe mache, dann komme ich auf eine Seite in der er mir nur einen Fehler anzeigt wird, da sollte man das Formular mit den schon ausgefüllten Feldern wieder einblenden und den Fehler über dem Formular plazieren.Mit Ajax würde das dann noch edler aussehen und den User ganz sicher noch mehr ansprechen.
// EDIT: Ich habe noch etwas angefügt
-
Das ist dann wohl dein Problem, zudem sollte man das Spiel "legal" haben sonst begehst du eine Straftat!
Ist das Thema jetzt erledigt oder will man noch weiter Threadpushing betreiben. -
Das ist ein Problem bei den Netzbetreibern, die schreiben in den Vertrag das bis zu 6.000 kbit/s vertraglich zugesichert werden, das heißt für dich im Endeffekt das es auch weniger sein kann.