Php wiederholung

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
hagily
Mitglied
Beiträge: 1139
Registriert: 25.08.2005 22:05
Wohnort: Schweinfurt
Kontaktdaten:

Beitrag von hagily »

das ändert auch nichts daran, dass die message_die() nicht angezeigt wird.

felix
BB-BF-BM
Mitglied
Beiträge: 2179
Registriert: 28.10.2005 16:38
Wohnort: Essen

Beitrag von BB-BF-BM »

musst du vorher noch definieren $j == 0?
Benutzeravatar
hagily
Mitglied
Beiträge: 1139
Registriert: 25.08.2005 22:05
Wohnort: Schweinfurt
Kontaktdaten:

Beitrag 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);
?>
Zuletzt geändert von hagily am 10.01.2006 17:33, insgesamt 2-mal geändert.
BB-BF-BM
Mitglied
Beiträge: 2179
Registriert: 28.10.2005 16:38
Wohnort: Essen

Beitrag von BB-BF-BM »

Und jetzt funktionierts?
Benutzeravatar
hagily
Mitglied
Beiträge: 1139
Registriert: 25.08.2005 22:05
Wohnort: Schweinfurt
Kontaktdaten:

Beitrag von hagily »

habe gerade noch einmal den beitrag editiert.
Infos findest du oben ^^
BB-BF-BM
Mitglied
Beiträge: 2179
Registriert: 28.10.2005 16:38
Wohnort: Essen

Beitrag 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...
Benutzeravatar
hagily
Mitglied
Beiträge: 1139
Registriert: 25.08.2005 22:05
Wohnort: Schweinfurt
Kontaktdaten:

Beitrag von hagily »

es gibt irgend ein code, der prüft ob bestimmte zeichen vorhanden sind.
mir fällt blos nicht ein welcher....
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

Beitrag 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...
Benutzeravatar
hagily
Mitglied
Beiträge: 1139
Registriert: 25.08.2005 22:05
Wohnort: Schweinfurt
Kontaktdaten:

Beitrag 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
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag 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...
Antworten

Zurück zu „Coding & Technik“