php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Jobs und Projekte > Projekthilfe
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


Projekthilfe Hier könnt Ihr eine Art Projekthilfe anfordern. Unter Projekthilfe verstehen wir Angebote bei denen KEIN Geld gezahlt werden kann.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #16 (permalink)  
Alt 24-09-2007, 16:27
Sarah
 Newbie
Links : Onlinestatus : Sarah ist offline
Registriert seit: Sep 2007
Beiträge: 10
Sarah ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich komme nicht weiter ... ich habe den Script eingefügt, aber es klappt nicht. Eigentlich soll ja das Script meckern, wenn ein Pflichtfeld fehlt, aber statt dessen brauch ich nur irgendein Feld auszufüllen und das reicht ... Ihr könnt es ja mal hier ausprobieren:

http://www.uni-due.de/io/email/beispiel.htm

Hier der Code aus beipiel.htm
Code:
<form name="mail" method="post" action="planetmail.php">

<!-- <input type=hidden name="send_index" value="dat2"> -->

<b>Name</b>
<br />
<input type="text" id="name" name="name" />
<br /><br />
<b>eMail-Adresse</b>
<br />
<input type="text" id="adresse" name="adresse" />
<br /><br />
<b>Mitteilung</b>
<br />
<textarea name="wohnort" id="wohnort "rows="6"></textarea>
<br />
<input name="Submit" type="submit" value="Nachricht senden" />

</form>

Geändert von Sarah (24-09-2007 um 16:35 Uhr)
Mit Zitat antworten
  #17 (permalink)  
Alt 24-09-2007, 16:31
Sarah
 Newbie
Links : Onlinestatus : Sarah ist offline
Registriert seit: Sep 2007
Beiträge: 10
Sarah ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Und hier der Code von planetmail.php

PHP-Code:
<?php

if(isset($_POST)){
  
$fehler = array();
  
$zwang = array('name','adresse','wohnort');
  
$leer array_keys($_POST,'');
  foreach(
$leer as $wert){
    if(
array_key_exists($wert,$zwang)){
      switch(
$wert){
        case 
'name':
          
$fehler['name'] = 'Bitte einen Namen angeben';
        break;
        case 
'adresse':
          
$fehler['adresse'] = 'Ihre Adresse wäre auch ganz nett';
        break;
        case 
'wohnort':
          
$fehler['wohnort'] = 'Wir müssten auch noch wissen wo sie wohnen';
        break;
      }
    }
  }
}


sendEmail();

function 
sendEmail(){





// Geben Sie hier ein gültige eMail-Adresse von sich an
// Diese eMail-Adresse wird dann auch als Absender-eMail-Adresse angezeigt, wenn die nachfolgende
// Option nicht aktiviert (also auf 1 gesetzt) wird.
// (Dies ist bei manchen Providern Voraussetzung, um Spamming zu verhindern)
$emailFrom "sarah.mix@gmx.net";



// eMail-Adresse des Versenders als Absenderadresse nutzen (um beispielsweise direkt anworten zu können)
// 1 => Ja  | 0 => Nein
$useSendersEmail 1;

// Geben Sie nachfolgend den Namen des Formularfeldes an, in das der Absender seine
// eMail-Adresse einträgt (Voreinstellung ist: eMail || BEACHTEN SIE GROSS- & KLEINSCHREIBUNG!!!!).
// Die Eingabe ist nur dann notwendig, wenn Sie die vorangehende Option ($useSendersEmail) auf "1" setzen!
$mailFromField 'eMail-Adresse';



// SPAM-MISSBRAUCH-SCHUTZ
// Aktivieren Sie den Schutz vor einem Missbrauch des Formmailers durch Spammer!
// Genauere Informationen finden Sie in der README.txt
// 1 => aktiviert  | 0 => NICHT aktiviert
$spamProtect 1;

// "Badword"-Schutz (Erweiterung zum Spam-Schutz)
// Hier können Sie Wörter und Wortkombinationen eintragen, die nicht in einer eMail vorkommen dürfen.
// Kommen diese Wörter vor, wird die Verarbeitung der Nachricht mit einer Fehlermeldung abgebrochen.
// Zusätzlich können Sie angeben, wie oft ein Wort maximal vorkommen darf.
// Z.B. kann es sein, dass jemand einen Link mit "http:" senden möchte. Immer häufiger kommen aber auch
// Spam-eMails vor, welche unmengen an Links enthalten. So könnte man einstellen, dass mehr als X Links
// in einer Nachricht vermutlich Spam sind.
// In der Vorgabe, dürfte in der Nachricht das Wort "Viagra" nicht einmal vorkommen, "Free Software" dürfte
// Ihnen zumindest einmal gesagt werden. Selbstverständlich können hier auch eMail-Adressen oder andere
// Inhalte eingetragen werden.
// NUTZEN SIE DIESE OPTION MIT BEDACHT, UM NICHT UNNÖTIG "GUTE" EMAILS ZU BLOCKEN
$GLOBALS['badwords'] = array('Viagra' => '0''sex' => '0''arsch' => '0',  'kostenlos' => '0''free' => '0''@' => '1');




// Empfänger eMail-Adressen, Subject, Zielseite nach dem Versenden der eMail
// Soll KEINE Kopie der eMail an eine zweite Adresse geschickt werden, so löschen Sie die "Dummy"-eMail-Adresse
// "kopie@ihre_domain.de", so daß nur noch die beiden Hochstriche stehen bleiben ("").
// Ansonsten geben Sie dort bitte eine gültige eMail-Adresse ein.
// Genauere Informationen finden Sie in der README.txt
$send_dat = array(

"dat1" => array("sarah.mix@gmx.de""""CAMPUS ESSEN Anmeldung O-Tage""danke.htm"),
#"dat2" => array("", "", "", ""),
#"dat3" => array("", "", "", ""),

);



// Felder aus dem Formular, die NICHT mit der eMail übertragen werden sollen.
// TIPP: Verwenden Sie grafische Buttons als "Absendeknopf", so werden die Koordinaten
// der Klickstelle mit der eMail verschickt. Um diesen (unschönen) Effekt zu umgehen,
// geben sie für den grafischen Button  name="senden" ein.
$ignoreFormFields = array('send_index''senden''submit''check_form','Submit','senden_y','senden_x');


###########################################################
# ENDE DER KONFIGURATION (AB HIER SOLLTE NICHTS MEHR GEÄNDERT WERDEN!!!!!!!!!!!)
###########################################################
$mailto '';
$mail_cc '';
$subject'';
$message '';

// Datum (+deutsche Tage)
$name_tag = array('Sonntag''Montag''Dienstag''Mittwoch''Donnerstag''Freitag''Samstag');
$day $name_tag[date('w')];
$year date('Y');  
$n date('d');
$month date('m');
$time date('H:i');


// Prüfung, welches send_dat-Array zum senden verwendet werden soll
// Default: dat1
!empty($_POST['send_index']) ? $st $_POST['send_index'] : $st 'dat1';


// Versende Daten
$mailto $send_dat[$st][0]; // Ziel-eMail-Adresse
$mail_cc $send_dat[$st][1]; // 2. Ziel-eMail-Adresse (Kopie)
$subject $send_dat[$st][2]; // Subjekt
$redirect $send_dat[$st][3]; // Zielseite nach eMailversand



// Formularfelder auslesen und in die eMail "einsetzen"
// Zu ignorierende Felder werden NICHT eingesetzt
while (list($fieldName$fieldValue) = each($_POST))
{
    if (
in_array($fieldName$ignoreFormFields) || empty($fieldValue)) continue;
    
$message .= "$fieldName:\n$fieldValue\r\n\r\n\r\n";
}


// Funktion zum prüfen des Inhaltes aufrufen
$message cleanContent($message$spamProtect);

// Datum und Zeit voranstellen
$message ":: Gesendet am $day, den $n.$month.$year - $time Uhr ::\r\n\r\n$message";


// Weiterleitung auf eine andere Seite
Header("Location: $redirect");


// Absender-eMail-Adresse
($useSendersEmail == 1) ? $emailFrom $_POST[$mailFromField] : $emailFrom $emailFrom;

$header "From: $emailFrom";


// Kopie schicken
if (!empty($mail_cc)) {
    
$header .= "\r\n";
    
$header .= "Cc: $mail_cc";
}


// eMail verschicken
if ($testOffline == '0') {
    @
mail ($mailto$subject$message$header)
        || die(
'<b>Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut!</b>');
}

// eMail zum testen in ein Textfile schreiben
if ($testOffline == '1') {
    
$testmail fopen('email.txt''w+');
    
fwrite($testmail$message);
    
fclose($testmail);
}


// end function



/***** Inhalte "bereinigen" *****/
function cleanContent($content$spamProtect)
{
    
$content str_replace('<br>'"\r\n"$content);
    
$content stripslashes(strip_tags($content));
    
    
// Spam-Missbrauch-Schutz aufrufen
    
if($spamProtect == 1) { $content checkContent($content); }
    
    return 
$content;
}


/***** Spam-Missbrauch-Schutz *****/
function checkContent($tpcontent)
{
    
// kritische Zeichen entfernen
    
$checkit = array("/bcc\:/i","/cc\:/i","/to\:/i");
    
$tpcontent preg_replace($checkit""$tpcontent);

    
// Script-Abbruch bei eindeutigem Spamversuchen
    
if (preg_match("/(MIME\-Version\:|Content\-Type\:)/i"$tpcontent)) {
        die(
'Ihre Angaben enthalten kritische Zeichen! Aus Gründen des Spamschutzes wird Ihre Nachricht nicht versendet.');
    }

    
// "Badword"-Überprüfung
    
if ($GLOBALS['badwords']) {
        foreach(
$GLOBALS['badwords'] as $badword=>$count)
        {
            
preg_match_all('/\b'.$badword.'\b/i'$tpcontent$match);

            if (
sizeof($match[0]) > $count) {
                die(
'Ihre Eingabe beinhaltet nicht akzeptierte Zeichen oder Wörter. Diese Nachricht wird nicht gesendet!');
            }
        }
    }
    
    
// Formular ohne Inhalte nicht versenden
    
if (empty($tpcontent)) {
        die(
'Es wurden keine Angaben gemacht! Ein leeres Formular wird nicht versendet.');
    }
    
    return 
$tpcontent;
}


?>

Geändert von Sarah (24-09-2007 um 16:40 Uhr)
Mit Zitat antworten
  #18 (permalink)  
Alt 24-09-2007, 16:36
Sarah
 Newbie
Links : Onlinestatus : Sarah ist offline
Registriert seit: Sep 2007
Beiträge: 10
Sarah ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wo liegt denn da nur der Wurm drin
Mit Zitat antworten
  #19 (permalink)  
Alt 24-09-2007, 17:05
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

wenn ich das auf die schnelle richtig sehe, werden fehler zwar erkannt, aber es passiert schlichtweg nichts, um das scipt aufzuhalten.

tobis script macht nur die überprüfung.

was du jetzt noch machen musst, ist eine abfrage bauen, die entscheidet ob das script ne mail schickt (!$fehler) oder ob das script abbricht ($fehler)....

ich denke, an der stelle kann mal ein versuch von dir gestartet werden ... sonst lernste ja nüschts
__________________
**********
arkos
**********
Mit Zitat antworten
  #20 (permalink)  
Alt 24-09-2007, 17:57
Sarah
 Newbie
Links : Onlinestatus : Sarah ist offline
Registriert seit: Sep 2007
Beiträge: 10
Sarah ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also ich habe hin und her probiert, aber es hat einfach nicht geklappt. Wäre echt toll wenn mir einer die Lösung veraten könnte. Ich glaube danach werde ich sowieso nie wieder mit PHP arbeiten
Mit Zitat antworten
  #21 (permalink)  
Alt 24-09-2007, 18:30
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

1. Ich glaube kaum, dass du dein error_reporting() wie es in den Regeln steht voll aufgedreht hast. Du prüfst die Daten und rufst dann eine Funktion auf, die erst eine Zeile später definiert wird
2. Bevor du deine sendEmail() aufrufst prüfst du noch, dass $fehler leer ist
PHP-Code:
if(empty($fehler)){
  
sendEmail();
}else{
  
//Fehlerbehandlung

3.Habe den Code nur schnell überflogen, aber mit diesem Code kann man dein Form easy zum spammen missbrauchen.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #22 (permalink)  
Alt 18-07-2010, 16:57
glStgt
 Registrierter Benutzer
Links : Onlinestatus : glStgt ist offline
Registriert seit: Jul 2010
Beiträge: 1
glStgt befindet sich auf einem aufstrebenden Ast
Standard prob mit der überprüfung

vorneweg: ich bin ein völliger php-dau und fummle mir das wenige, das ich brauche, irgendwie zusammen.

ich habe ein formular, das an einen autoresponder versandt wird (das kann ich mit html direkt in meine page einbauen und das design per css anpassen). das fehler-korrekturform des autoresponders (verbleibt auf deren server) ist häßlich und praktisch nicht umzustylen.

deshalb möchte ich die überprüfung in mein eigenes form integrieren. mit js könnte ich das, aber das nützt ja nix, wenn der user js deaktiviert hat.

im prinzip müßte ja das (natürlich angepaßte) php-script in diesem thread als lösung taugen.

PHP-Code:
<?php
if(isset($_POST)){ 
$fehler = array(); 
$zwang = array('name','adresse','wohnort'); 
$leer array_keys($_POST,''); 
foreach(
$leer as $wert){ 
if(
array_key_exists($wert,$zwang)){ 
switch(
$wert){ 
case 
'name'
$fehler['name'] = 'Bitte einen Namen angeben'
break; 
case 
'adresse'
$fehler['adresse'] = 'Ihre Adresse wäre auch ganz nett'
break; 
case 
'wohnort'
$fehler['wohnort'] = 'Wir müssten auch noch wissen wo sie wohnen'
break; 




?>
das form (code vom responder geliefert) beginnt so

HTML-Code:
<form action="http://....../subscribe/post.......28e&amp;id=aac20ef9b7" method="post" id="mc-embedded-subscribe-form" 
(die 367 zeichen der url habe ich rausgekürzt)

und endet mit einem submit-button so:

HTML-Code:
<input type="submit" value="absenden" name="subscribe" id="mc-embedded-subscribe" class="btn">

wie und wo muß ich das script einbauen und wie erkennt "($_POST)", daß der button geklickt wurde?


Danke, falls mir jemand helfen kann.

Geändert von glStgt (18-07-2010 um 21:00 Uhr)
Mit Zitat antworten
  #23 (permalink)  
Alt 18-07-2010, 19:45
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo und willkommen im Forum,

bitte Beitrag gemäß Forenregeln anpassen und Code-Tags benutzen.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
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

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:27 Uhr.