php-resource



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

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


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

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 27-10-2007, 22:30
Dirki-Boy
 Newbie
Links : Onlinestatus : Dirki-Boy ist offline
Registriert seit: Oct 2007
Beiträge: 39
Dirki-Boy ist zur Zeit noch ein unbeschriebenes Blatt
Standard Falsche Pfade beim Inkludieren - wie kann man das ändern?

Wenn ich eine html- oder php-Datei in eine php-Seite (x) mit dem include-Befehl einschließe, die eine inkludierte (y) Seite enthält oder / und Verweise zu Bildern, wird in der inkludierenden php-Datei (x) einzig die inkludierte Seite (y) angezeigt, aber nicht deren inkludierte Seite(n) / inkludierte Elemente wie Bilder, wenn Seite x nicht im selben Verzeichnis wie Seite y liegt.

Welchen php-Code muß ich schreiben, um alle Elemente in der inkludierenden Datei anzeigen lassen zu können?

Nette Grüße, Dirk
Mit Zitat antworten
  #2 (permalink)  
Alt 28-10-2007, 01:04
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard



Wenn du mit Ausführungsverzeichnis, DocRoot und Pfaden nicht klarkommst, dann verwende doch einfach absolute Angaben.

include '/srv/www/htdocs/file.php';

echo '<img src="/images/file.jpg" />';

...
Mit Zitat antworten
  #3 (permalink)  
Alt 28-10-2007, 02:30
Dirki-Boy
 Newbie
Links : Onlinestatus : Dirki-Boy ist offline
Registriert seit: Oct 2007
Beiträge: 39
Dirki-Boy ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielen Dank für Deine Antwort.

Ja (damit kenne ich mich überhaupt nicht aus), gute Idee. Der Nachteil dabei ist das Testen der Website auf der Festplatte, weil ja die absoluten Links keine Verbindung mehr zum Ziel haben. Weiß momentan nicht, ob es noch andere Nachteile gibt.

Was wäre die sinnvollste Lösung?

Nette Grüße, Dirk
Mit Zitat antworten
  #4 (permalink)  
Alt 28-10-2007, 11:04
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Dirki-Boy
Der Nachteil dabei ist das Testen der Website auf der Festplatte, weil ja die absoluten Links keine Verbindung mehr zum Ziel haben.
???
hatte schon lange kein localen server mehr benutzt (wamp und co) aber doch auch die sollten mit den von den php eigenen funktionen zur erstellung von pfaden klar kommen... oder??
__________________
**********
arkos
**********
Mit Zitat antworten
  #5 (permalink)  
Alt 28-10-2007, 12:10
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Dirki-Boy
Der Nachteil dabei ist das Testen der Website auf der Festplatte, weil ja die absoluten Links keine Verbindung mehr zum Ziel haben.
wieso? Mit absoluten Pfadangaben relativ zum Basis-URI referenzieren

und wenn es dir um php-includes geht, kannst du von $_SERVER['DOCUMENT_ROOT'] ausgehen.
Mit Zitat antworten
  #6 (permalink)  
Alt 29-10-2007, 00:05
brmartin
 Newbie
Links : Onlinestatus : brmartin ist offline
Registriert seit: Oct 2007
Beiträge: 24
brmartin ist zur Zeit noch ein unbeschriebenes Blatt
Standard Gelöst

Hallo zusammen und guten Abend,

Über Google stieß ich auf dieses Forum,
Ursache waren Probleme mit dem include Befehl, welche ihre Ursache in einer falschen Pfadangabe hatten (ohne die Vorherigen Poster währe ich wahrscheinlich nie darauf gekommen).

Dieses Problem ist also gelöst,
doch anscheinend liegt noch ein weiteres Problem vor, zu dem ich den Wald vor lauter Bäumen nicht sehe.

Aufgabenstellung:

1. Erfassen von Formulardaten
2. Senden dieser Daten an eine EMailadresse
3. Ausgaben der Daten auf dem Browserschirm

Hört sich einfach an und ist es eigentlich auch, nur daß es nicht wie gedacht funktioniert.

Hier mal die scripte:

Formular:
Zitat:
<form id="FormName" action="/php/send.php" method="post" name="FormName">
Ihre E-Mailadresse:<input type="text" name="eMail" size="24">
<p>
<input type="submit" name="sent"></p>
</form>
send.php:
PHP-Code:
<?php

$sent 
= isset($_POST['sent']) ? $_POST['sent'] : '';
$eMail = isset($_POST['eMail']) ? $_POST['eMail'] : '';
if (
$sent and $eMail)
{
   include (
"/php/send.inc.php"); //Ursprüngliches Problem, Pfad war falsch
   
echo "Ihre E-Mailadresse lautet:<p>";
   echo 
"<b>E-Mail:</b> {$_POST['eMail']}<br><p>";
   echo 
"<b>Gesendet am:</b><br>";
    
$Datum date('D, d.m.Y');
      
$Uhrzeit date('H:i:s');
   echo 
"$Datum  <br>";
   echo 
"$Uhrzeit  <br>";

  } else {
   echo 
"Eingabe fehlt";
// if-else   
?>
send.inc.php:
PHP-Code:
<?
  $eMail 
$_REQUEST['eMail'] ;
  
mail"Empfängeradresse""Testmail",
   
"Von: $eMail""PHP Test" );
?>
Das schöne ist, einzeln klappen die Scripte wie sie sollen,
sprich wird nur die Ausgabe aufgerufen (send.php) ist alles da,
wird nur der Versand (send.inc.php) aufgerufen ist auch alles in Ordnung.
Beides zusammen, also exact wie gepostet führt zu folgender Ausgabe:
- Browserausgabe alles da
- bei der EMail fehlt die "Von:" Angabe, sprich die eingegebene Mailadresse wird nicht angezeigt, "PHP Test" wird aber ausgegeben.

Anscheinend liegt hier ein Verständnisproblem meinerseits vor, und die Variable $eMail geht unterwegs verloren.
Nur weiß ich nicht warum, bzw. wo sonst der Fehler liegt.

Das Ganze soll zur Abfrage und Verarbeitung komplexerer Formulare mit Eingabeprüfung führen.
PHP5 wird verwendet.

Als Anfänger will ich das aber alles Schritt für Schritt aufbauen und möglichst viele include und require Einbindungen nutzen um so u.A. auch besseres Verständnis für die Verarbeitung zu bekommen und flexibler für Abwandlungen zu sein.

Für Hilfe und vor allem eine Erklärung warum das nicht klappt währe ich dankbar.


Gruß

Martin

Ohh bin ich blöd!
Hab den Fehler gefunden, ein offensichtlicher Fehler!
send.php:
PHP-Code:
<?php

$sent 
= isset($_POST['sent']) ? $_POST['sent'] : '';
$eMail = isset($_POST['eMail']) ? $_POST['eMail'] : '';
if (
$sent and $eMail)
{
   global 
$eMail;  // Das hab ich vergessen!
   
echo "Ihre E-Mailadresse lautet:<p>";
   echo 
"<b>E-Mail:</b> {$_POST['eMail']}<br><p>";
   echo 
"<b>Gesendet am:</b><br>";
    
$Datum date('D, d.m.Y');
      
$Uhrzeit date('H:i:s');
   echo 
"$Datum  <br>";
   echo 
"$Uhrzeit  <br>";
       include (
"send.inc.php");
  } 

else {
   echo 
"Eingabe fehlt";
// if-else   
?>
Eine lokale Variable global nutzen geht natürlich nicht
__________________
Greets

Martin

absolut beginner
aber lernwillig

Geändert von brmartin (29-10-2007 um 10:46 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 29-10-2007, 10:37
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

schau dir mal hier den aufbau des mailbefehls an und bau diesen in deiner send.inc.php auch so auf:



http://www.selfphp.de/funktionsrefer...ionen/mail.php
__________________
**********
arkos
**********
Mit Zitat antworten
  #8 (permalink)  
Alt 29-10-2007, 11:08
brmartin
 Newbie
Links : Onlinestatus : brmartin ist offline
Registriert seit: Oct 2007
Beiträge: 24
brmartin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke für den Link arkos,

Wie ich bereits schrieb will ich das Ganze Schritt für Schritt aufbauen.
So ist es für mich leichter verständlich und vor allem ist die Fehlersuche etwas leichter.
Geplant sind folgende Schritte:

1. Übernahme eines Wertes aus einem Formular (hier die E-Mailadresse) und die Ausgabe auf dem Browser

2. Ausgabe des Übernommenen Wertes auf dem Browser und der Versand per E-Mail.
Hier gabs die ersten Probleme, einzeln hat es Funktioniert, zusammen nicht.
Ursache war, daß eine lokale Variable eben nicht global verwendet werden kann.

3. Erweiterung des Formulars, Ausgabe und Versand mehrerer Werte

4. Auswahl des Empfängers

5. Gültigkeitsprüfung der Werte

6. Erstellen des Mailheaders (hier ist dein Link hilfreich, danke)

7. Spamschutz, Floodschutz (da hab ich noch keine Idee)

Ich teste die Scripte auf einer meiner Domains und sende sie an eine der Domain zugehörigen Adresse.
Die Scripte liegen nur dann auf den Server wenn ich sie teste, danach werden sie gelöscht.
__________________
Greets

Martin

absolut beginner
aber lernwillig

Geändert von brmartin (29-10-2007 um 11:34 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 29-10-2007, 11:39
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von brmartin
2. Ausgabe des Übernommenen Wertes auf dem Browser und der Versand per E-Mail.
Hier gabs die ersten Probleme, einzeln hat es Funktioniert, zusammen nicht.
Ursache war, daß eine lokale Variable eben nicht global verwendet werden kann.
deswegen ja der link. du sagtest, dass deine mail nicht richtig verschickt worden ist, aber die ausgabe am browser richtig war.

deswegen vergleich doch mal die mailbefehle

deiner:
PHP-Code:
mail"Empfängeradresse""Testmail",  "Von: $eMail""PHP Test" ); 
selfphp.de:
PHP-Code:
mail($empfaengerString$subject$message$headers); 
na, fällt was auf?

dazu kommt, dass bei manchen provider aus sicherheitsgründen der -f-parameter verlangt wird, um überhaupt eine mail zu verschicken:
PHP-Code:
mail ($empfaengerString$subject$message$headers"-f [email]absender@hier-bitte-ihren-domainnamen-einsetzen.de[/email]"); 
__________________
**********
arkos
**********
Mit Zitat antworten
  #10 (permalink)  
Alt 29-10-2007, 23:03
brmartin
 Newbie
Links : Onlinestatus : brmartin ist offline
Registriert seit: Oct 2007
Beiträge: 24
brmartin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi arkos,

Du hast recht, hier hätte der Fehler liegen können, aber:
Zitat:
wird nur der Versand (send.inc.php) aufgerufen ist auch alles in Ordnung.
Somit konnte das nicht das Problem sein.
Wie sich herausstellte geht die Variable $eMail verloren, da register_globals auf off steht und $eMail wohl als lokale Variable für die Browserausgabe angesehen wird.
Eine zusätzliche definition der Variablen als global löste das Problem.

Den -f-Parameter benötige ich auch nicht, da sowohl der Absender, als auch der Empfänger immer in der selben Domain liegen.

Ich habe die Erstellung des Mailheaders inzwischen vorgezogen, da dies die einfachste Möglichkeit ist die versendete E-Mail zu formatieren.

Ich hänge dir mal die Bisherigen Scripte an:

HTML Formular:
Zitat:
<body bgcolor="#000000">
<font size="+3" color="#4b9e96"><strong>Kontaktformuar</strong></font>
<form id="Kontaktformular" action="[Pfad zu]send2.php" method="post" name="Kontaktformular">
<p></p>
<p></p>
<table border="0" cellspacing="5" cellpadding="0">
<tr>
<td><font color="#4b9e96"><strong>Vorname:</strong></font></td>
<td><input type="text" name="vorname" size="24"></td>
</tr>
<tr>
<td><font color="#4b9e96"><strong>Familienname:</strong></td>
<td><input type="text" name="nachname" size="24"></td>
</tr>
<tr>
<td><font color="#4b9e96"><strong>Ihre E-Mailadresse:</strong><img src="10x5.gif" alt="" height="5" width="10" border="0"></td>
<td><input type="text" name="eMail" size="24"></td>
</tr>
<tr>
<td><font color="#4b9e96"><strong>Betreff:</strong></td>
<td><input type="text" name="betreff" size="24"></td>
</tr>
</table>
<p><font color="#4b9e96"><strong>Ihre Nachricht:</strong></p>
<p><textarea name="nachricht" rows="4" cols="40"></textarea></p>
<p><input type="submit" name="sent"></p>
<p></p>
</form>
send2.php:
PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <title>Formularausgabe</title>
    </head>

    <body bgcolor="#000000">
        <p><font size="+3" color="#4b9e96"><strong>Kontaktformular </strong></font></p>
        <p><font size="+2" color="#4b9e96"><strong>Ihre Mail: </strong></font></p>
        
        <?php

$sent 
= isset($_POST['sent']) ? $_POST['sent'] : '';
$eMail = isset($_POST['eMail']) ? $_POST['eMail'] : '';
$vorname = isset($_POST['vorname']) ? $_POST['vorname'] : '';
$nachname = isset($_POST['nachname']) ? $_POST['nachname'] : '';
$betreff = isset($_POST['betreff']) ? $_POST['betreff'] : '';
$nachricht = isset($_POST['nachricht']) ? $_POST['nachricht'] : '';
if (
$sent and $eMail)
{
   global 
$eMail$vorname$nachname$betreff$nachricht;
   
   echo 
"<br><p><font color = 4b9eff size = +1 <b>Gesendet am:</b><br>";
    
$Datum date('D, d.m.Y');
      
$Uhrzeit date('H:i:s');
   echo 
"$Datum  <br>";
   echo 
"$Uhrzeit  <br><p>";
   echo 
"Von:<b> {$_POST['vorname']} </b>";
   echo 
"<b>{$_POST['nachname']}</b><br><p>"
   echo 
"Absender: <b>{$_POST['eMail']}</b><br><p>";
   echo 
"<b>Betreff: </b>{$_POST['betreff']}<br><p>";
   echo 
"<b>Ihre Nachricht:</b><br><p>";
   echo 
"{$_POST['nachricht']}</font>";     

    include (
"send.inc.php");
  } 

else {
   echo 
"Eingabe fehlt";
// if-else   
?>
        
        <p><font size="+2" color="#4b9e96"><a href="[gewünschter Link]">zur&uuml;ck</a></font></p>
    </body>

</html>
send.inc.php:
PHP-Code:
<?
  $eMail 
$_REQUEST['eMail'] ;
  
$vorname $_REQUEST['vorname'] ;
  
$nachname $_REQUEST['nachname'] ;
  
$betreff $_REQUEST['betreff'] ;
  
$nachricht $_REQUEST['nachricht'] ;

    
$absender "absender@meineDomain.tld" ;
    
$empfänger "iempfänger@meineDomain.tld" ;
                
$Datum2 date('D, d.m.Y') ;
      
$Uhrzeit2 date('H:i:s') ;
    
$Nachname " " .$nachname ;

        
$Date "<b>Gesendet am: </b>" .$Datum2 ;
        
$Time "<br><b>um: </b>" .$Uhrzeit2 ;
        
$Von "<br><p><b>von: </b>" .$vorname .$Nachname ;
        
$Mail "<br><p><b>E-Mailadresse: </b>" .$eMail ;
        
$Betreff "<br><b>Betreff: </b>".$betreff ;
        
$Nachricht "<br><p><b>Nachricht: </b><br>" .$nachricht ;

        
    
$nachricht2 $Date .$Time .$Von .$Mail .$Betreff .$Nachricht ;

    
$headers .= 'From:' $absender "\n" ;
$headers .= 'Reply-To:' $eMail "\n" 
$headers .= 'X-Mailer: PHP/' phpversion() . "\n" 
$headers .= 'X-Sender-IP: ' $REMOTE_ADDR "\n" 
$headers .= "Content-type: text/html\n" ;


  
mail$empfänger$betreff$nachricht2,  $headers) ;

?>
Wie du siehst ist das Formular in reinem HTML.

Die send2.php ist gemischt, der Grund dafür liegt auf der Hand, denn so läßt sich die Browserausgabe am besten formatieren (ich dachte zuerst an ein Formular mit
action="{$_SERVER['PHP_SELF']}"
aber das hat nicht hingehauen (auch die register_globals? ich weiß es nicht)

Die send.inc.php ist wieder reines PHP, vieleicht ncoh etwas umständlich geschrieben, aber so funktioniert es genau wie ich will, mit formatierter Mailausgabe.

Als X-Mailer gibt er mir allerdings PHP/4.4.7 an.
Das bringt mich momentan etwas durcheinander.

Gruß

Martin
__________________
Greets

Martin

absolut beginner
aber lernwillig
Mit Zitat antworten
  #11 (permalink)  
Alt 30-10-2007, 10:29
Bersi667
 Newbie
Links : Onlinestatus : Bersi667 ist offline
Registriert seit: Mar 2007
Ort: Geldern/Duisburg
Beiträge: 87
Bersi667 ist zur Zeit noch ein unbeschriebenes Blatt
Bersi667 eine Nachricht über ICQ schicken
Standard Floodschutz

Hey, ich weiss ja nicht, wie du das auf der Seite einbindest, aber falls das nur im User-Bereich steckt und von niemandem zu benutzen ist, der nicht angemeldeter User ist, könntest du doch die User-Tabelle in der Datenbank um zwei Spalten erweitern, alternativ dazu ist eine email-Tabelle, in die eine Spalte schreibst du die Menge an Versuchen und in die andere die time()...sagen wir mal, du lässt 3 Versuche zu und gibst das Feld erst wieder nach 5 Minuten frei...
Alternativ dazu ist, dass ganze in eine Session reinzuschmeissen, Cookie ginge auch, wobei das schließlich noch ein wenig unsicherer ist, so ähnlich habe ich das bei einem Login-Formular gelöst und in Zukunft auch noch bei einem email-Send-"Formular"..
Das ganze ist eher als BruteForce-Schutz zu verstehen, du verhinderst nicht nur Spamming, sondern auch nen etwaigen BufferOverflow.
Wenn noch Fragen sind, ich schau nachher nochmal rein..
Grüße, Dennis
__________________
Musik beflügelt unseren Geist
Mit Zitat antworten
  #12 (permalink)  
Alt 30-10-2007, 10:49
brmartin
 Newbie
Links : Onlinestatus : brmartin ist offline
Registriert seit: Oct 2007
Beiträge: 24
brmartin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Tag Bersi667,

Tja, es soll eigentlich ein Kontaktformular sein, das in einem geschützten Bereich abzulegen macht da wenig Sinn, obwohl, hmm, wenn ich das Kontaktformular mit einem Passwort sichere, und das Pw als Grafik anzeige bleiben zumindest mal die Bots außen vor

Datenbank (MySQL) ist leider nicht auf allen Servern vorhanden und SQLight, ich weiß nicht.

Aber die Session Variante hört sich gut an, wahrscheinlich wirds die werden.
Aber dazu komme ich heute auf keinen Fall.

Danke für den Tipp!

Ich melde mich dann in einem entsprechenden Thread.
Dashier hat ja mit der ursprünglichen Frage "Falsche Pfade beim includieren" nun wirklich nichts mehr zu tun.

Gruß

Martin
__________________
Greets

Martin

absolut beginner
aber lernwillig
Mit Zitat antworten
  #13 (permalink)  
Alt 30-10-2007, 11:44
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

global brauchst du hier ganz sicher nicht, wenn es Probleme gab, muss das woanders liegen.
Dann machst du aus deinen Post-Variablen normale lokale Variable. Gib doch gleich diese aus, statt wieder $_POST zu bemühen.
Und in der send.inc.php weist du diese Variablen, die du ja schon hast, wieder zu. Wenn du eine Datei mit include einbindest, ist das dasselbe, wie wenn der Code genau an dieser Stelle stehen würde, und die entsprechenden Variablen stehen alle zur Verfügung.
Die Eingabe von irgendwelchen benutzerdefinierten Daten in die zusätzlichen Headers der Mail-Funktion ist sehr gefährlich. Wenn da jemand in seine Mail-Adresse "meine@mail.de bcc:deine@mail.com;ander@auf_anderer_mail.net ...." in seine Mailadresse schreibt, so erhält er oder sie vielleicht keine Nachricht, dafür alle mitgelieferten BCC-Adressen. Spam-Versender sind ständig auf der Suche nach solchen Scripts.
__________________
Gruss
H2O
Mit Zitat antworten
  #14 (permalink)  
Alt 30-10-2007, 12:20
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

OffTopic:

Zitat:
Original geschrieben von brmartin
hmm, wenn ich das Kontaktformular mit einem Passwort sichere, und das Pw als Grafik anzeige bleiben zumindest mal die Bots außen vor
wenn du captcha meinst...
löblich, aber nicht zwingend ausreichend

http://www.shortnews.de/start.cfm?id=686931


__________________
**********
arkos
**********
Mit Zitat antworten
  #15 (permalink)  
Alt 30-10-2007, 14:40
brmartin
 Newbie
Links : Onlinestatus : brmartin ist offline
Registriert seit: Oct 2007
Beiträge: 24
brmartin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von H2O
global brauchst du hier ganz sicher nicht, wenn es Probleme gab, muss das woanders liegen.
Das dachte ich eigentlich auch.

Zum System:
Auf meinem Testserver sind register_globals auf off und ich habe keinen Zugriff auf die php.ini oder sonstige Systemeinstellungen.
Zur Verfügung stehen PHP3 - PHP5, das wars.

Zum Ursprünglichen Problem (Post Nr. 6):

Im Formular wird die E-Mailadresse abgefragt, die erhaltene Variable $eMail wird an send.php übergeben.

send.php gibt mir die erhaltene Variable $eMail auf dem Browser aus, wenn eben der 'sent'-Button geklickt wurde und $eMail nicht leer ist.
der include Befehl ist noch nicht implementiert.

Wird die Variable $eMail vom Formular direkt an send.inc.php übergeben wird die Mail korrekt, entsprechend der ursprünglichen send.inc.php versandt und ich erhalte eine E-Mail mit folgendem Format:

erweiteter Header:
Zitat:
Received: from xxx
by xx
id xx
for hauptadresse; Datum, Uhrzeit +0100
Received: from [ip] (helo=moutng.server.tld)
by xxx
id xxx
for Empfängeradresse; Datum, Uhrzeit +0100
Received: xxx
by mrelayeu.server.tld (node=mrelayeu8) with ESMTP (Nemesis)
id xx Datum, Uhrzeit +0100
Received: from meine WAN-IP (IP may be forged by CGI script)
by xx.server.tld with HTTP
id xx Datum, Uhrzeit +0100
X-Sender-Info: <xx@x.server.tld>
From: CGI-Mailer <cgi-mailer@server.tld>
Date: Datum, Uhrzeit +0100
Message-Id: <xxx@xx.server.tld>
Precedence: bulk
To: Empfängeradresse
Subject: Testmail
X-Provags-ID:xx==
Sender: xx=PY=server.tld=cgi-mailer-bounces-xx@xx.server.tld
Die Mail hat folgenden Inhalt:
Zitat:
PHP Test

Von: [eingegebene E-Mailadresse ($eMail)]
Integriere ich nun den include- Befehl und durchlaufe damit zuerst die send.php und dann die send.inc.php erhalte ich eine korrekte Browserausgabe aber eben keine korrekte E-Mail.
Der Header ist identisch (die ursprüngliche send.inc.php änderte ja nichts am Header, aber meine Mail hat nun nur folgenden Inhalt:
Zitat:
PHP Test

Von: []
Das ergibt absolut keinen Sinn, es sei denn die Variable $eMail geht während oder vor der Ausführung von send.inc.php verloren.

Meine Erklärung dazu ist eben daß die Variable $eMail von send.php als lokale Variable angesehen wird und daher send.inc.php nicht zur Verfügung steht.
ein setzten der Variablen als global $eMail scheint dies zu bestätigen, da ich dann die korrekte E-Mailausgabe
Zitat:
PHP Test

Von: [eingegebene E-Mailadresse ($eMail)]
erhalte.

Zitat:
Original geschrieben von H2O
Die Eingabe von irgendwelchen benutzerdefinierten Daten in die zusätzlichen Headers der Mail-Funktion ist sehr gefährlich. Wenn da jemand in seine Mail-Adresse "meine@mail.de bcc:deine@mail.com;ander@auf_anderer_mail.net ...." in seine Mailadresse schreibt, so erhält er oder sie vielleicht keine Nachricht, dafür alle mitgelieferten BCC-Adressen. Spam-Versender sind ständig auf der Suche nach solchen Scripts.
Zitat:
Original geschrieben von brmartin
Ich teste die Scripte auf einer meiner Domains und sende sie an eine der Domain zugehörigen Adresse.
Die Scripte liegen nur dann auf den Server wenn ich sie teste, danach werden sie gelöscht.
Es sind reine Test-Scripte die höchstens mal 1 h auf dem Server sind, in einem Verzeichnis das von der robot.txt ausgeschlossen ist und dabei auch noch die Namen wechseln. Ich schätze hier die gefahr insofern eher als "sehr gering" ein.

Zitat:
Original geschrieben von arkos
wenn du captcha meinst...
löblich, aber nicht zwingend ausreichend
Ehrlich gesagt dachte ich daran garnicht, ist aber keine schlechte Idee als zusätzlicher Schutz.

Das war schon der 2. Denkanstoß von dir der mich weiterbringt.

Dein Link zum Header http://www.selfphp.de/funktionsrefe...tionen/mail.php
hat mir schon geholfen, da ich dadurch das Layout der E-Mail ziemlich einfach formatieren kann, auch wenn das nicht der Sinn deines Links war
__________________
Greets

Martin

absolut beginner
aber lernwillig
Mit Zitat antworten
Antwort

Lesezeichen


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

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

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


PHP News

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

28.05.2018 | Berni

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

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

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

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

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

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

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

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

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:59 Uhr.