Shop-Hilfe.com
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 22.06.2003, 00:53   #1
TP-Member
 
Registriert seit: Mar 2003
Wizard macht alles soweit korrekt

Formular mit IP Speicherung


Hallo @all

Ich hoffe Ihr könnt mir weiterhelfen, ist für Euch wahrscheinlich ganz simpel. Ich bin in Sachen PHP ein absoluter Neuling und habe/will erst damit anfangen mich tiefer in die Geschichte einzuarbeiten.
Mein Problem ist:
Ich brauche unbedingt ein Formular das Zeit, Datum und die IP des Absenders sicher aufzeichnet (mit sendet). Und sollte ich dies mit einem Formmailer wie z.Bsp. FORMMAILER.pl verschicken?

Wie gesagt ich bin absolut Neu auf dem Gebiet. Wäre Euch also dankbar die Sache verständlich zu erklären.

Vielen Dank an Euch im voraus
Wizard ist offline   Mit Zitat antworten


Alt 22.06.2003, 12:41   #2
TP-Veteran
 
Benutzerbild von pauel
 
Registriert seit: Jan 2003
Ort: München
pauel hilft, wo's gehtpauel hilft, wo's geht
ich schreibs dir schnell!
pauel ist offline   Mit Zitat antworten
Alt 22.06.2003, 13:03   #3
TP-Veteran
 
Benutzerbild von pauel
 
Registriert seit: Jan 2003
Ort: München
pauel hilft, wo's gehtpauel hilft, wo's geht
hi.
also hier der code:

PHP-Code:
<?
function check_email($email) { 
              
$nonascii      "\x80-\xff";
             
              
$nqtext        "[^\\\\$nonascii\015\012\"]"
              
$qchar         "\\\\[^$nonascii]"
             
              
$protocol      '(?:mailto:)'
             
              
$normuser      '[a-zA-Z0-9][a-zA-Z0-9_.-]*'
              
$quotedstring  "\"(?:$nqtext|$qchar)+\""
              
$user_part     "(?:$normuser|$quotedstring)"
             
              
$dom_mainpart  '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.'
              
$dom_subpart   '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*'
              
$dom_tldpart   '[a-zA-Z]{2,5}'
              
$domain_part   "$dom_subpart$dom_mainpart$dom_tldpart"
             
              
$regex         "$protocol?$user_part\@$domain_part"
             
              return 
preg_match ("/^$regex$/",$email); 
              

}


if ( 
$_POST['submit'] ) {
  
  if ( 
$_POST['name'] != "" && $_POST['kommentar'] != "" && check_email($_POST['email']) ) {
    
      
$uhr date ("H:i");
      
$datum date ("j.n.Y");
      
      
$ip getenv ("REMOTE_ADDR");
      
# Du ermittelst die IP des Besuchers und legst sie in $ip ab.
      
      
$mail_adresse "xxx@xxx.de";
      
# Da das Formluar Deine Email Adresse kennen muss, scheibst du in $mal_adresse Deine email Adresse!
      
      
$mail_betreff "Kontakt von [url]www.xxx.de[/url]";
      
# Der Betreff Deiner Email, welcher später in Deinem Ourlook/Sonstigem Mail Programm Angezeigt wird!
      
      
$mail_inhalt "Name: ".$_POST['name']." schrieb am: ".$datum." um ".$uhr." Uhr\nEmail: ".$_POST['email']."\nKommentar: ".$_POST['kommentar']."\n\nIP: ".$ip;
      
# In der $mail_inhalt wird der Body deiner Mail eingestellt das "\n" steht immer für einen Zeilenumbruch.
      
      
$mail_absender "From ".$_POST['name']." <".$_POST['email'].">";
      
# Hier wird der Absemder Deiner Mail bestimmt.
      
      
mail ($mail_adresse,$mail_betreff,$mail_inhalt);
      
# mail wird versandt.

      
$msg "Vielen Dank. Ihre email wurde soeben an ".$mail_adresse." versandt!";
      echo 
$msg;
  }
  else {
    
$f_msg "Bitte geben Sie korrekte Daten ein!";
    echo 
"<strong>".$f_msg."</strong><br /><a href=\"javascript: history.back (-1);\">Zurück</a>";
  }
  
}
else {
?>
<form action="<? echo $_SERVER['PHP_SELF'?>" method="post">
<table align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td>Name:</td>
    <td align="right"><input type="text" name="name"></td>
  </tr>
  <tr>
    <td>EMail:</td>
    <td align="right"><input type="text" name="email"></td>
  </tr>
  <tr>
    <td colspan="2" align="left"><strong>Kommentar:</strong></td>
  </tr>
  <tr>
    <td colspan="2"><textarea cols="5" row="5" style="width: 300px; height: 150px" name="kommentar"></textarea></td>
  </tr>
  <tr>
    <td><br /></td>
  </tr>
  <tr>
    <td colspan="2" align="right"><input type="submit" name="submit" value="senden"></td>
  </tr>
</table>
</form>
<?
}
?>
gruß, Paul
pauel ist offline   Mit Zitat antworten
Alt 22.06.2003, 14:06   #4
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Hey Paul!

Du legst ne Variable für den Absender an, aber übergibst sie an keiner Stelle der Mail-Funktion... ? So, wie es jetzt ist, wirds mit Sicherheit von vielen Mail-Server zurückgewiesen, da ein Return-Path und der From-Header zwingend notwendig sind!

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 22.06.2003, 14:28   #5
TP-Member
 
Registriert seit: Mar 2003
Wizard macht alles soweit korrekt
Danke erst einmal für die schnellen Antworten.

Stuck Mojo, was muß ich ändern? Und wie wird das ganze dann Serverseitig ausgewertet? Kann ich den folgenden Code
-----------------------------------------------------
<?
function check_email($email) {
$nonascii = "x80-xff";

$nqtext = "[^\\$nonascii1512\"]";
$qchar = "\\[^$nonascii]";

$protocol = '(?:mailto<img src="images/smilies/smile.gif" border="0" alt="">';

$normuser = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
$quotedstring = "\"(?:$nqtext|$qchar)+\"";
$user_part = "(?:$normuser|$quotedstring)";

$dom_mainpart = '[a-zA-Z0-9][a-zA-Z0-9._-]*\.';
$dom_subpart = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\.)*';
$dom_tldpart = '[a-zA-Z]{2,5}';
$domain_part = "$dom_subpart$dom_mainpart$dom_tldpart";

$regex = "$protocol?$user_part@$domain_part";

return preg_match ("/^$regex$/",$email);


}


if ( $_POST['submit'] ) {

if ( $_POST['name'] != "" && $_POST['kommentar'] != "" && check_email($_POST['email']) ) {

$uhr = date ("H:i");
$datum = date ("j.n.Y");

$ip = getenv ("REMOTE_ADDR");
# Du ermittelst die IP des Besuchers und legst sie in $ip ab.

$mail_adresse = "xxx@xxx.de";
# Da das Formluar Deine Email Adresse kennen muss, scheibst du in $mal_adresse Deine email Adresse!

$mail_betreff = "Kontakt von <a href="http://www.xxx.de" target="_blank">www.xxx.de</a>";
# Der Betreff Deiner Email, welcher später in Deinem Ourlook/Sonstigem Mail Programm Angezeigt wird!

$mail_inhalt = "Name: ".$_POST['name']." schrieb am: ".$datum." um ".$uhr." Uhr\nEmail: ".$_POST['email']."\nKommentar: ".$_POST['kommentar']."\n\nIP: ".$ip;
# In der $mail_inhalt wird der Body deiner Mail eingestellt das "\n" steht immer für einen Zeilenumbruch.

$mail_absender = "From ".$_POST['name']." <".$_POST['email'].">";
# Hier wird der Absemder Deiner Mail bestimmt.

mail ($mail_adresse,$mail_betreff,$mail_inhalt);
# mail wird versandt.

$msg = "Vielen Dank. Ihre email wurde soeben an ".$mail_adresse." versandt!";
echo $msg;
}
else {
$f_msg = "Bitte geben Sie korrekte Daten ein!";
echo "<strong>".$f_msg."</strong><br /><a href=\"java script: history.back (-1);\">Zurück</a>";
}

}
else {
?>
-------------------------------------------------------------------

auch verbergen - ich meine damit das ich nur folgendes


<form action="<? echo $_SERVER['PHP_SELF'] ?>" method="post">
<table align="center" cellpadding="0" cellspacing="0">
<tr>
<td>Name:</td>
<td align="right"><input type="text" name="name"></td>
</tr>
<tr>
<td>EMail:</td>
<td align="right"><input type="text" name="email"></td>
</tr>
<tr>
<td colspan="2" align="left"><strong>Kommentar:</strong></td>
</tr>
<tr>
<td colspan="2"><textarea cols="5" row="5" style="width: 300px; height: 150px" name="kommentar"></textarea></td>
</tr>
<tr>
<td><br /></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" name="submit" value="senden"></td>
</tr>
</table>
</form>

---------------------------------------------------------------------------------
ins html schreibe und das ganze per script Serverseitig ausgewertet wird.

Danke
Wizard ist offline   Mit Zitat antworten
Alt 22.06.2003, 14:33   #6
TP-Veteran
 
Benutzerbild von pauel
 
Registriert seit: Jan 2003
Ort: München
pauel hilft, wo's gehtpauel hilft, wo's geht
ach ich geb s die gleich nochmal korrekt!

Geändert von axo (22.06.2003 um 14:37 Uhr).
pauel ist offline   Mit Zitat antworten
Alt 22.06.2003, 14:46   #7
TP-Veteran
 
Benutzerbild von pauel
 
Registriert seit: Jan 2003
Ort: München
pauel hilft, wo's gehtpauel hilft, wo's geht
PHP-Code:
<?
function check_email($email) { 
              
$nonascii      "\x80-\xff";
             
              
$nqtext        "[^\\\\$nonascii\015\012\"]"
              
$qchar         "\\\\[^$nonascii]"
             
              
$protocol      '(?:mailto:)'
             
              
$normuser      '[a-zA-Z0-9][a-zA-Z0-9_.-]*'
              
$quotedstring  "\"(?:$nqtext|$qchar)+\""
              
$user_part     "(?:$normuser|$quotedstring)"
             
              
$dom_mainpart  '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.'
              
$dom_subpart   '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*'
              
$dom_tldpart   '[a-zA-Z]{2,5}'
              
$domain_part   "$dom_subpart$dom_mainpart$dom_tldpart"
             
              
$regex         "$protocol?$user_part\@$domain_part"
             
              return 
preg_match ("/^$regex$/",$email); 
              

}


if ( 
$_POST['submit'] ) {
  
  if ( 
$_POST['name'] != "" && $_POST['kommentar'] != "" && check_email($_POST['email']) ) {
    
      
$uhr date ("H:i");
      
$datum date ("j.n.Y");
      
      
$ip getenv ("REMOTE_ADDR");
      
# Du ermittelst die IP des Besuchers und legst sie in $ip ab.
      
      
$mail_adresse "xxx@xxx.de";
      
# Da das Formluar Deine Email Adresse kennen muss, scheibst du in $mal_adresse Deine email Adresse!
      
      
$mail_betreff "Kontakt von [url]www.xxx.de[/url]";
      
# Der Betreff Deiner Email, welcher später in Deinem Ourlook/Sonstigem Mail Programm Angezeigt wird!
      
      
$mail_inhalt "Name: ".$_POST['name']." schrieb am: ".$datum." um ".$uhr." Uhr\nEmail: ".$_POST['email']."\nKommentar: ".$_POST['kommentar']."\n\nIP: ".$ip;
      
# In der $mail_inhalt wird der Body deiner Mail eingestellt das "\n" steht immer für einen Zeilenumbruch.
      
      
$mail_header "From ".$_POST['name']." <".$_POST['email'].">\r\n";
      
# Hier wird der Absemder Deiner Mail bestimmt.
      
      
$mail_header .= "Return-Path: <".$mail_adresse.">";
      
      
mail ($mail_adresse,$mail_betreff,$mail_inhalt,$mail_header);
      
# mail wird versandt.

      
$msg "Vielen Dank. Ihre email wurde soeben an ".$mail_adresse." versandt!";
      echo 
$msg;
  }
  else {
    
$f_msg "Bitte geben Sie korrekte Daten ein!";
    echo 
"<strong>".$f_msg."</strong><br /><a href=\"javascript: history.back (-1);\">Zurück</a>";
  }
  
}
else {
?>
<form action="<? echo $_SERVER['PHP_SELF'?>" method="post">
<table align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td>Name:</td>
    <td align="right"><input type="text" name="name"></td>
  </tr>
  <tr>
    <td>EMail:</td>
    <td align="right"><input type="text" name="email"></td>
  </tr>
  <tr>
    <td colspan="2" align="left"><strong>Kommentar:</strong></td>
  </tr>
  <tr>
    <td colspan="2"><textarea cols="5" row="5" style="width: 300px; height: 150px" name="kommentar"></textarea></td>
  </tr>
  <tr>
    <td><br /></td>
  </tr>
  <tr>
    <td colspan="2" align="right"><input type="submit" name="submit" value="senden"></td>
  </tr>
</table>
</form>
<?
}
?>
pauel ist offline   Mit Zitat antworten
Alt 22.06.2003, 14:47   #8
TP-Veteran
 
Benutzerbild von pauel
 
Registriert seit: Jan 2003
Ort: München
pauel hilft, wo's gehtpauel hilft, wo's geht
achja:


PHP ist Serverseitig ;-) den Code bekommt niemand zu sehen. keine Angst :-)
pauel ist offline   Mit Zitat antworten
Alt 22.06.2003, 15:22   #9
TP-Member
 
Registriert seit: Mar 2003
Wizard macht alles soweit korrekt
Danke axomento, werde ich gleich probieren!

Mfg
Wizard ist offline   Mit Zitat antworten
Alt 22.06.2003, 15:30   #10
TP-Veteran
 
Benutzerbild von pauel
 
Registriert seit: Jan 2003
Ort: München
pauel hilft, wo's gehtpauel hilft, wo's geht
no prob
pauel ist offline   Mit Zitat antworten
Alt 22.06.2003, 15:34   #11
TP-Member
 
Registriert seit: Mar 2003
Wizard macht alles soweit korrekt
habs ausprobiert und bekomme folgende Fehlermeldung:
-----------
Parse error: parse error in /xx-xx.de/form/form.php on line 87
-----------

dies ist line 87:
$mail_betreff = "Kontakt von <a href="http://www.xxx.de" target="_blank">www.xxx.de</a>";


Wizard ist offline   Mit Zitat antworten
Alt 22.06.2003, 15:40   #12
TP-Veteran
 
Benutzerbild von pauel
 
Registriert seit: Jan 2003
Ort: München
pauel hilft, wo's gehtpauel hilft, wo's geht
<a href="http://www.xxx.de" target="_blank">
muss:
<a href=\"http://www.xxx.de\" target=\"_blank\">

heissen!
pauel ist offline   Mit Zitat antworten
Alt 22.06.2003, 15:46   #13
TP-Member
 
Registriert seit: Mar 2003
Wizard macht alles soweit korrekt
Sorry aber jetzt kommt die Fehlermeldung

parse error on line 93


------------------
$mail_inhalt = "Name: ".$_POST['name']." schrieb am: ".$datum." um ".$uhr." Uhr\nEmail: ".$_POST['email']."\nKommentar: ".$_POST['kommentar']."\n\nIP: ".$ip;
Wizard ist offline   Mit Zitat antworten
Alt 22.06.2003, 15:49   #14
TP-Veteran
 
Benutzerbild von pauel
 
Registriert seit: Jan 2003
Ort: München
pauel hilft, wo's gehtpauel hilft, wo's geht
also bei mir auf dem server gings!
aber mach mal:

$mail_inhalt = "Name: ".$_POST['name']." schrieb am: ".$datum." um ".$uhr." Uhr\nEmail: ".$_POST['email']."\nKommentar: ".$_POST['kommentar']."\n\nIP: ".$ip;


durch:

$mail_inhalt = "Name: ".$_POST['name']." schrieb am: ".$datum." um ".$uhr." Uhr\nEmail: ".$_POST['email']."\nKommentar: ".$_POST['kommentar']."\n\nIP: ".$ip"\n";


weiss aber nicht woran das liegen kanN!

schau mal ob am ender vorigen zeile ein semikolon ist!

oder gib die zeile mal davor her!

grüße.
pauel ist offline   Mit Zitat antworten
Alt 22.06.2003, 15:53   #15
TP-Member
 
Registriert seit: Mar 2003
Wizard macht alles soweit korrekt
habs mit der neuen Zeile ausprobiert kommt aber immer noch der Fehler

$mail_betreff = "Kontakt von <a href=\"http://www.xxx.de\" target=\"_blank\">;

# Der Betreff Deiner Email, welcher später in Deinem Ourlook/Sonstigem Mail Programm Angezeigt wird!



$mail_inhalt = "Name: ".$_POST['name']." schrieb am: ".$datum." um ".$uhr." Uhr\nEmail: ".$_POST['email']."\nKommentar: ".$_POST['kommentar']."\n\nIP: ".$ip"\n";
Wizard ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Formular mit IP Speicherung Formular mit IP Speicherung
« Textarea -> Zeilensprung | dependant dropdown lists »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu