Seite 6 von 7

Verfasst: 10.01.2006 16:59
von hagily
das ändert auch nichts daran, dass die message_die() nicht angezeigt wird.

felix

Verfasst: 10.01.2006 17:11
von BB-BF-BM
musst du vorher noch definieren $j == 0?

Verfasst: 10.01.2006 17:21
von hagily
Hi.

Also das script ist fast fertig.
Ich habe jetzt gemerkt, dass man beim absender eine reale-Emailadresse Eingeben muss, um spam zu vermeiden.
Mit welcher Funktion kann ich die leute verpflichten dass im Absenderfeld @ und . vorkommen müssen.
hier das script:

Code: Alles auswählen

<?php

//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);


//Dieser Block kann weggelassen werden, wenn du nur den die Userdaten brauchst und auf den phpBB-Header verzichen möchtest
$page_title = 'Meine Seite';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$j == 0;

for ($i=1; $i<=2; $i++)
{
   if(isset($_POST['submit']))
   {
   //Absender
   $absender = $_POST['absender'];
   if(empty($absender)) die("Kein Absender eingetragen");

   //Empfaenger
   $empfaenger = $_POST['empfaenger'];
   if(empty($empfaenger)) die("Kein Empfänger eingetragen");
   
   //betreff
   $betreff = $_POST['betreff'];
   if(empty($betreff)) die("Kein Betreff eingetragen");

   //nachricht
   $nachricht = $_POST['nachricht'];
   if(empty($betreff)) die("Keine Nachricht eingetragen");

   $header = 'From:' .$absender .  "\r\n" .
      'Reply-To:' .$absender . "\r\n" .
      'X-Mailer: PHP/' . phpversion();
      if (mail($empfaenger, $betreff, $nachricht, $header, $absender))
      {
           $j++;
      }
   }
}
if($j >= 2)
{
message_die(GENERAL_MESSAGE, 'Die Mail wurde erfolgreich '.$j.'x versendet');
}

?>
<br /><br /><br /><br />
<form method="post">
<table border="0">
  <tr>
   <td>Absender: </td>
   <td><input type="text" name="absender" /></td>
  </tr>
  <tr>
  	<td>Empfänger:</td>
  	<td><input type="text" name="empfaenger" /></td>
  </tr>
  <tr>
  	<td>Betreff:</td>
  	<td><input type="text" name="betreff" /></td>
  </tr>
  <tr>
  	<td>Nachricht:</td>
  	<td><input type="text" name="nachricht" /></td>
  </tr>
</table>
<input type="submit" name="submit" value="Absenden" /><br><br>
</form>

<?php
//Footer - nur dann weglassen, wenn du auch den Header weglässt
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>

Verfasst: 10.01.2006 17:27
von BB-BF-BM
Und jetzt funktionierts?

Verfasst: 10.01.2006 17:34
von hagily
habe gerade noch einmal den beitrag editiert.
Infos findest du oben ^^

Verfasst: 10.01.2006 18:54
von BB-BF-BM
du könntest mehrere Textfelder machen. Sieht aber blöd aus...
also

Code: Alles auswählen

<input type="text" name="absender" />@<input type="text" name="domainname" />.<input type="text" name="laenderkennzeichnung" />
und infolge dessen auch

Code: Alles auswählen

   //Absender
   $absender = $_POST['absender'] . $_POST['somainname'] . $_POST['länderkennzeichnung'];
   if(empty($absender)) die("Kein Absender eingetragen"); 
Dadurch lassen sich aber trotzdem spamabsender nicht vermeiden...
du kannst ja irgendwas da eintragen... man müsste prüfen lassen, ob es die Mailadresse auch gibt...

Verfasst: 10.01.2006 19:00
von hagily
es gibt irgend ein code, der prüft ob bestimmte zeichen vorhanden sind.
mir fällt blos nicht ein welcher....

Verfasst: 10.01.2006 19:49
von AmShaegar
du müsstest per javascript abfragen ob die zeichen darin vorkommen und dementsprechend eine fehlermeldung ausgeben oder das formular abschicken... kann dir aber leider keinen genauen code sagen,... nur so viel: nicht der button den man klickt soll das formular abschicken, sonder das javascript.. der button darf nur die funktion aufrufen...

Verfasst: 10.01.2006 19:56
von hagily
ich habe was gefunden.
das gesammte script:

Code: Alles auswählen

<?php

//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);


//Dieser Block kann weggelassen werden, wenn du nur den die Userdaten brauchst und auf den phpBB-Header verzichen möchtest
$page_title = 'Meine Seite';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$j == 0;

for ($i=1; $i<=5; $i++)
{
   if(isset($_POST['submit']))

   {
?>
<script Language="Javascript">
function check(){
var email = document.form1.email.value;
var blanks = ''*100;
var naughty = new Array("arse","bastard","cunt","fuck","shit","wanker","piss","twat");
var sneaky = email.toLowerCase();
var illegal = "You have entered illegal characters.\nOnly characters listed here allowed.\n\nLetters of Alphabet [lower and upper case]\nNumbers\nOne @ symbol only\nFull stops\nHyphens [Minus sign]\nUnderscores\n\n";
//mail check
if (email <= blanks){
  alert("Please enter your e-mail address.");
  Highlight();return false;
  }
else if (email.length > 62){
   alert('Max character length for any e-mail address is 63.');
   Highlight();return false;
   }
else if (email.charAt(0) == " "){
   alert('You have typed a space at the - START - of your e-mail address');
   Highlight();return false;
   }
else if (email.charAt(email.length-1) == " "){
   alert('You have typed a space at the - END - of your e-mail address');
   Highlight();return false;
   }
else if (email.indexOf(" ") !=-1){
   alert('You have typed a space - IN - your e-mail address');
   Highlight();return false;
   }

//CHECK FOR ILLEGAL CHARACTERS 1
for (i=0; i < email.length; i++){
var caps = "a".toUpperCase();
var E = email.substring(i, i + 1);
if ((E < "0" || "9" < E ) && E != "@"  && E !="." && E !="-"  && E !="_"  &&  E < caps || "z" < E){
 alert(illegal);
 Highlight();return false;
 }
}

//CHECK FOR ILLEGAL CHARACTERS 2
if ((email.indexOf('`',0) != -1) || (email.indexOf(String.fromCharCode(94)) != -1) || (email.indexOf(String.fromCharCode(92)) != -1) || (email.indexOf('[',0) != -1) || (email.indexOf(']',0) != -1)){
 alert(illegal);
 Highlight();return false;
}

//CHECK FOR SWEARING
for (i=0; i < email.length; i){
 if (sneaky.indexOf(naughty[i]) != -1){
 alert('Please remove the swear word - '+naughty[i].toUpperCase());
 Highlight();return false;
 }
i++;
}



for (i=0; i < email.length; i++){
if (email.charAt(i) ==" ")
email.charAt(i)="";
}
alert(email);




//GENERAL FORMATING
if (email.charAt(0) =="."){
 alert('An e-mail address cannot start with a full stop');
 Highlight();return false;
}
else if (email.split('@').length > 2){
 alert('Only 1 @ allowed in e-mail address.');
 Highlight();return false;
}
else if (email.indexOf ('@',0) == -1){
 alert("The @ symbol is missing");
 Highlight();return false;
}
else if (email.indexOf("@") < 2){
 alert("There must be at least 2 characters before @ symbol.");
 Highlight();return false;
}
else if (email.charAt(email.length-1) == "@"){
 alert('An e-mail address cannot finnish with @');
 Highlight();return false;
}
else if (email.indexOf ('.') == -1){
 alert("An e-mail address must contain at least 1 full stop");
 Highlight();return false;
}
else if (email.indexOf('.',email.indexOf('@')) == -1){
 alert('The full stop after the @ is missing');
 Highlight();return false;
}
else if (email.substring(email.indexOf('@'),email.length).indexOf(".") < 4){
 alert('There must be at least 3 characters between @ and following full stop');
 Highlight();return false;
}
else if (email.lastIndexOf(".")+2 == email.length){
 alert('There must be at least 2 characters after last full stop');
 Highlight();return false;
}
else if (email.substring(email.lastIndexOf("."),email.length).length > 4){
 alert('Only 3 characters allowed after last full stop');
 Highlight();return false;
}
else if (email.charAt(email.length-1) =="."){
 alert('An e-mail address cannot finnish with a full stop');
 Highlight();return false;
}
ok=null;
confirm('You have entered  - '+email+'\nAll checks passed.\n\nDo you want to send it now?')?ok=1:ok=0;
if (ok==1) return true;
else return false;
}
//-->
</script><?php

   //Empfaenger
   $empfaenger = $_POST['empfaenger'];
   if(empty($empfaenger)) die("Kein Empfänger eingetragen");

   //betreff
   $betreff = $_POST['betreff'];
   if(empty($betreff)) die("Kein Betreff eingetragen");

   //nachricht
   $nachricht = $_POST['nachricht'];
   if(empty($betreff)) die("Keine Nachricht eingetragen");

   $header = 'From:' $email . "\r\n" .
      'Reply-To:' $email  '. "\r\n" .
      'X-Mailer: PHP/' . phpversion();
      if (mail($empfaenger, $betreff, $nachricht, $header, $absender))
      {
           $j++;
      }
   }
}
if($j >= 5)
{
message_die(GENERAL_MESSAGE, 'Die Mail wurde erfolgreich '.$j.'x versendet');
}

?>
<br /><br /><br /><br />
<form method="post">
<table border="0">
  <tr>
   <td>Absender: </td>
   <td><input type="text" name="email" /></td>
  </tr>
  <tr>
     <td>Empfänger:</td>
     <td><input type="text" name="empfaenger" /></td>
  </tr>
  <tr>
     <td>Betreff:</td>
     <td><input type="text" name="betreff" /></td>
  </tr>
  <tr>
     <td>Nachricht:</td>
     <td><input type="text" name="nachricht" /></td>
  </tr>
</table>
<input type="submit" name="submit" value="Absenden" /><br><br>
</form>

<?php
//Footer - nur dann weglassen, wenn du auch den Header weglässt
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>

testphase läuft noch

Verfasst: 10.01.2006 23:23
von fanrpg

Code: Alles auswählen

<?php
if(!eregi('@', $_POST['absender']) )
{
die();
}
if(!eregi('.', $_POST['absender']))
{
die();
}
?>
mittels php kann man das auch prüfen...