php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.02.2012, 08:34  
Neuer Benutzer
 
Registriert seit: 06.03.2011
Beiträge: 12
PHP-Kenntnisse:
Anfänger
FritzS befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Kontaktformular incl. Captcha auf PHP5 umstellen.

Hallo,
ich verwende schon etliche Jahre das Kontaktformular incl. Captcha von danysahne333 http://www.cb-talk.de/captcha.html

Nach einen Providerwechsel läuft meine Homepage nun auf Microsoft-IIS/7.5 mit PHP 5.2.17

Leider sendet das Script von danysahne333 keine eMails mehr. Die Konfiguration des eMail Servers habe ich natürlich geändert.

Das Script ist für PHP 4. konzipiert, was muss ich daran ändern? Einige Anpassungen, wie <? auf <?php ergänzt, habe ich schon gemacht. Ich würde mich gerne an den Autor danysahne333 selbst wenden, er scheint nicht erreichbar und hat selbst auf dieses Forum hier verwiesen!

Dieses kleine Testscript (von meinen Provider erhalten) sendet sehr wohl ein eMail ab.

PHP-Code:
<?php
$to 
'webmaster@meinedomain.at';
$subject 'the subject';
$message 'hello';
$headers 'From: webmaster@meinedomain.at' "\r\n" .
'Reply-To: meinname@hotmail.com' "\r\n" .
'X-Mailer: PHP/' phpversion();
ini_set "SMTP""mail.meinedomain.at" ); 
date_default_timezone_set('America/New_York');

mail($to$subject$message$headers);
?>
Oder kennt jemand ein Kontaktformular incl. Captch PHP Script ähnlich dem von danysahne333, das auf Microsoft-IIS/7.5 mit PHP 5.2.17 funktioniert, ein Link genügt.
__________________
--
Fritz

Geändert von FritzS (04.02.2012 um 08:41 Uhr).
FritzS ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.02.2012, 10:17  
Erfahrener Benutzer
 
Registriert seit: 10.01.2010
Beiträge: 386
PHP-Kenntnisse:
Fortgeschritten
ChrisvA befindet sich auf einem aufstrebenden Ast
Standard

Such mal bei Google nach einer PHP-Mail Klasse, da gibt es massig die auch uner PHP 5 noch laufen.
Oder frag mal bei deinem Provider nach einem Mail-Skript, das bei ihm funktioniert und baue dieses ein.
ChrisvA ist offline   Mit Zitat antworten
Alt 04.02.2012, 11:48  
Erfahrener Benutzer
 
Registriert seit: 06.05.2011
Beiträge: 183
PHP-Kenntnisse:
Anfänger
DEdK4ever befindet sich auf einem aufstrebenden Ast
Standard

Wie sieht denn das Skript aus? Oder ist es nicht lesbar?
DEdK4ever ist offline   Mit Zitat antworten
Alt 04.02.2012, 12:00  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von DEdK4ever Beitrag anzeigen
Wie sieht denn das Skript aus? Oder ist es nicht lesbar?
Auf die Idee gekommen den Link im Startpost anzuklicken bist du nicht oder ? - Denn dann hätte sich dieses Fragenpaar erledigt.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 04.02.2012, 14:35  
Neuer Benutzer
 
Registriert seit: 06.03.2011
Beiträge: 12
PHP-Kenntnisse:
Anfänger
FritzS befindet sich auf einem aufstrebenden Ast
Standard

Das abgeänderte Script von http://www.cb-talk.de/index-site-captcha.html Kontaktformular Ver. 1.0.10

kontakt.php
PHP-Code:
<?php
    
/*
        Captcha v1.o9 - Copyright (c) 2006, Daniel Kauser aka danysahne333
        This program and it's moduls are Open Source in terms of General Public License (GPL) v2.0

        captcha.php     (random text module)

        visit http://www.cb-talk.de/captcha.html for latest version
    */

    // Alle Fehler und Notices anzeigen
    
error_reporting(E_ALL);

    
session_start();

    
$CAPTCHA_TempString="";

    
// Zufallsfunktion für Zahlen und Buchstaben
        
function GetRandomChar() {

    
// Zufallszahl generieren
        
mt_srand((double)microtime()*1000000);
        
$CAPTCHA_RandVal mt_rand(1,2);

    
// Buchstabensalat generieren jeh nachdem ob Randval 1 oder 2 ist
        
switch ($CAPTCHA_RandVal) {
        case 
1:
            
// Zahlen 0-9
            
$CAPTCHA_RandVal mt_rand(4857);
            break;
        case 
2:
            
// Grosse Buchstaben
            
$CAPTCHA_RandVal mt_rand(6590);
            break;
        }

    
// Zufallscode ausgeben
        
return chr($CAPTCHA_RandVal);
    }

    
// Zufallscode x-stellig ausgeben
        
for ($i 1$i <= 6$i++) {
           
$CAPTCHA_TempString .= GetRandomChar();
    }

    
// Text in Sessionvariable speichern
    
if (isset($CAPTCHA_TempString)) {
        
$_SESSION["CAPTCHA_RndText"] = str_replace('I','E',str_replace('0','3',str_replace('1','S',str_replace('B','F',str_replace('O','P',str_replace('4','A',str_replace('D','K',$CAPTCHA_TempString)))))));
    } else {
        die(
"Coincidence code could not be generated - Zufallscode konnte nicht generiert werden!");
    }
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
    <style type="text/css">    <!--
    body {
        background-color: #FFFFFF;
        font-family: Verdana, Arial, Helvetica;
        font-size: 12px;
        color: #000000;
    }
    TD {
        font-family : Verdana, Arial, sans-serif;
        font-size : 12px;
    }
.link {
    COLOR: yellow; TEXT-DECORATION: none
}
    //
    -->
    .style1 {
    color: #008000;
}
    .style1 {
    color: #008000;
}
    .style2 {
    color: #800000;
}
    .style3 {
    text-align: justify;
}
    .style4 {
    border-width: 1px;
}
    </style>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta http-equiv="language" content="de" />
    <title>Email Form - Kontaktformular</title>
</head>

<body>
<a name="TopOfSide"></a><strong><font color="#000080">&nbsp;</font></strong><a target="_top"
href="/"><font size="2"><strong><img border="0" src="/images/left.GIF" width="13" height="13"> <i>Home</i></strong></font><strong><font color="#000080">&nbsp;</font></strong></a></td>

<h2>Comments and Suggestions / Kommentare und Anregungen</h2>

<form method="post" action="kontakt_ausw.php" name="kontakt">
    <div>
    <p>Name: <br></br> <input name="name" size="40" type="text" <?php if (isset($_SESSION['name'])) { echo 'value="' $_SESSION['name'] . '"'; }?>/></p>
    <p>Email: <br></br> <input name="email" size="40" type="text" <?php if (isset($_SESSION['email'])) { echo 'value="' $_SESSION['email'] . '"'; }?>/></p>
    <p>Subject / Betreff: <br></br> <input name="betreff" size="40" type="text" <?php if (isset($_SESSION['betreff'])) { echo 'value="' $_SESSION['betreff'] . '"'; }?>/></p>
    <p>Message / Nachricht: <br></br> <textarea name="nachricht" rows="5" cols="60">
    <?php if (isset($_SESSION['nachricht'])) { echo  $_SESSION['nachricht'] ; }?>
    </textarea></p>
 <p align="left"><i><b><font size="2">Input required!&nbsp;&nbsp;</font>
 <font size="2">Eingaben notwendig! </font></b></i>
 <br></br><br></br>
    <p><img border="0" src="captcha_img.php?PHPSESSID=<?php echo session_id();?>" alt="" /></p>
    <p>Insert Code / Code eintragen: <br></br> <input maxlength="6" name="txtCode" size="28" type="text" /></p>
    <p><input class="button" type="submit" name="eintrag" value="submit / absenden" />&nbsp;<input class="button" type="reset" name="reset" value="reset / l&ouml;schen" /></p>
    </div>
</form>
 <p align="left"><b><font size="2" color="#008000">
 I want answer you ASAP! If you become no answer, please send me an email too!!
 </font></b></p></color>
 <p align="left"><b><font size="2" color="#800000">
 Ich werde so rasch wie m&ouml;glich antworten!
 Wenn Sie keine Antwort bekommen, so senden Sie mir bitte die Nachricht nochmals per E-Mail!
 </font></b></p></color>
 <br></br>
  <?php
         
{
         echo 
"Last modified: ".date"d. F Y   h m s"getlastmod());
         }
     
?>
</body>
</html>
kontakt_ausw.php
PHP-Code:
<?php
    
// Session starten und config.php includen
    
session_start();
    include (
"config.php");
    include (
"mail.php");

    
// CaptchaCodes abfragen
    
$CAPTCHA_RandomText "";
    if (isset(
$_POST['txtCode'])){
    
$CAPTCHA_EnteredText str_replace("<","",str_replace(">","",str_replace("'","",str_replace("[","",str_replace("]","",$_POST['txtCode'])))));
    }
    if (isset(
$_SESSION['CAPTCHA_RndText'])) {
    
$CAPTCHA_RandomText $_SESSION['CAPTCHA_RndText'];
    }

    
// Eingabefelder abfragen
    
$_SESSION['name'] = $_POST['name'];
    
$_SESSION['email'] = $_POST['email'];
    
$_SESSION['betreff'] = $_POST['betreff'];
    
$_SESSION['nachricht'] = $_POST['nachricht'];

    
$email_i $_SESSION['email'];

    
// Email Funktion
    
function pruefe_mail($email_i) {
          if(
strstr($email_i"@")) {
            
$email_i explode ("@"$email_i);
            if(
strstr($email_i[1], ".")) $ok TRUE;
          }
          return 
$ok;
        }

    
// Eingaben prüfen
    
$fehler "";
    if(!
pruefe_mail($email_i) && !empty($email_i)) {
            
$fehler .= "<li>Email is incorrectly - Email fehlerhaft!</li>";
            }
            if (
$_SESSION['name'] == ""){
            
$fehler .= "<li>Name is missing - Name fehlt!</li>";
            }
            if (
$_SESSION['email'] == ""){
            
$fehler .= "<li>Email is missing - Email fehlt!</li>";
            }
            if (
$_SESSION['betreff'] == ""){
            
$fehler .= "<li>Subject is missing - Betreff fehlt!</li>";
            }
            if (
$_SESSION['nachricht'] == ""){
            
$fehler .= "<li>Message is missing - Nachricht fehlt!</li>";
            }
            if (
$CAPTCHA_EnteredText == $CAPTCHA_RandomText and isset($_POST['txtCode']) == true and isset($_SESSION['CAPTCHA_RndText'])){
            
$captcha true;
            } else {
            
$fehler .= "<li>Captcha is missing or incorrectly - Captcha fehlt oder fehlerhaft!</li>";
            }

    if (
$fehler == ""){
    
// Email zumsammensetzen
    
$email "From: " $_SESSION['email'];
    
$nachrichtfertig $_SESSION['name']. "wrote - schrieb: \n\n" $_SESSION['nachricht'];

    
$recipients $empfaenger;
    
$headers["From"] = $_SESSION['email'];
    
$headers["To"] = $recipients;
    
$headers["Subject"] = $_SESSION['betreff'];
    
$mailmsg $nachrichtfertig;
    
$smtpinfo["host"] = "mail.meinprovider.at";
    
$smtpinfo["port"] = "25";
//    $host = "ssl://mail.example.com";
//    $port = "465";
//    $smtpinfo["auth"] = true; false
    
$smtpinfo["auth"] = false;
//    $smtpinfo["username"] = "";
//    $smtpinfo["password"] = "";
    
$mail_object =& Mail::factory("smtp"$smtpinfo);

//     Original war dies, funktionierte auch nicht:
//    $versand = $mail_object->send($recipients, $headers, $mailmsg);
//    $versand = $mail_object->mail($recipients, $headers, $mailmsg);

//    Das war optionell - habe es aktiviert  - funktioniert auch nicht
    
$versand mail($empfaenger$_SESSION['betreff'], $nachrichtfertig$email);
            if (
$versand) {
            echo 
'<h3>Email Form - Kontaktformular</h3>
            <p>Email was successfully send - Email ist erfolgreich versendet worden!</p>'
;

            
// Sessionvariablen löschen
            
unset($_SESSION['name']);
            unset(
$_SESSION['email']);
            unset(
$_SESSION['betreff']);
            unset(
$_SESSION['nachricht']);
            }

    } else {
    echo 
'<h3>Email Form - Kontaktformular</h3>';
    echo 
$fehler;
    echo 
'<p><a href="kontakt.php">return / zurück</a></p>';
    }


    
// Session unset
    
unset($_SESSION['CAPTCHA_RndText']);

?>
Was ist die
PHP-Code:
include ("mail.php"
wo soll diese Datei liegen? Was steht dort drinnen?

Das Script lief ursprünglich auf einer LAMP Umgebung, später, angepasst (<?php anstelle <?) schon auf einen Windows Server, nun auf dem neuen Windows Server Cluster Microsoft-IIS/7.5 mit PHP 5.2.17 gibt es dieses Problem.

Ihr könnt es testen http://www.stockhammer.priv.at/contact1/kontakt.php

Wenn man auf absenden drückt passiert nichts, außer dass eine weiße Seite erscheint, wenn man zurückgeht ist der eingegebene Text vorhanden, lässt sich nicht mit reset löschen.
__________________
--
Fritz
FritzS ist offline   Mit Zitat antworten
Alt 04.02.2012, 19:02  
Neuer Benutzer
 
Registriert seit: 04.02.2012
Beiträge: 8
PHP-Kenntnisse:
Anfänger
arteHD befindet sich auf einem aufstrebenden Ast
Standard

Ich verwende seit 2 Jahren alternative Verfahren mit sehr guten Erfahrungen, um Müll zu verhindern.
Dies ist deutlich Benutzerfreundlicher und jedenfalls aus meiner Erfahrung, sehr Zuverlässig.
Und hier hatte ich das gefunden:

http://www.1ngo.de/web/captcha-spam.html
arteHD ist offline   Mit Zitat antworten
Alt 06.02.2012, 05:58  
Neuer Benutzer
 
Registriert seit: 06.03.2011
Beiträge: 12
PHP-Kenntnisse:
Anfänger
FritzS befindet sich auf einem aufstrebenden Ast
Standard

@arteHD
ob Chaptca oder andere Anti-Spammaßnahmen hat nichts mit dem Problem zu tun das mit dem von mir verwendeten Schript kein eMail versendet wird.

Es hat eher mit der php Version zu tun und dass der WEB Server ein Microsoft-IIS/7.5 (kein sendmail) ist.

Ich finde auf http://www.1ngo.de/web/captcha-spam.html nur Code Beispiele. Als php »Anwender« suche ich eher nach einer Lösung wie die von danysahne333.

Z.B. wird auch dieser Code aus dem Forum von 1ngo nicht laufen da die Angabe des Mailservers fehlt.
http://www.nexusboard.net/showthread...hreadid=290050
__________________
--
Fritz
FritzS ist offline   Mit Zitat antworten
Alt 06.02.2012, 07:12  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Schnapp dir irgendeine fertige mailer klasse und fertig. Siehe bspw. http://www.php.de/php-tipps-2009/506...turn-path.html ([Erledigt] phpmailer und Return-Path)

Alternativ swiftmailer ansehen.

Zitat:
Oder kennt jemand ein Kontaktformular incl. Captch PHP Script ähnlich dem von danysahne333, das auf Microsoft-IIS/7.5 mit PHP 5.2.17 funktioniert, ein Link genügt.
Auch auf dem IIS funktioniert mail(), sofern ein smtp eingetragen ist.
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Alt 06.02.2012, 17:31  
Neuer Benutzer
 
Registriert seit: 06.03.2011
Beiträge: 12
PHP-Kenntnisse:
Anfänger
FritzS befindet sich auf einem aufstrebenden Ast
Standard

Mit diesen beiden Scripts hatte ich nun Erfolg (ohne zusätzliche fertige mailer klassen)
http://www.freecontactform.com/email_form.php

send_form_email.php habe ich etwas modifiziert und
Zitat:
ini_set ( "SMTP", "mail.meinmailserver.at" );
hinzugefügt

PHP-Code:
// create email headers
$headers 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' phpversion();
ini_set "SMTP""mail.meinmailserver.at" );
@
mail($email_to$email_subject$email_message$headers);  
?>

<!-- include your own success html here --> 
Das habe ich dem im Eingangsposting angeführten Script entnommen
http://www.php.de/php-einsteiger/878...tml#post647010

Nur der AntiSpam Schutz fehlt noch.

Wie kann ich das Formular automatisch löschen, damit ein Reload von send_form_email.php nicht zum erneuten Versand führt?
__________________
--
Fritz

Geändert von FritzS (06.02.2012 um 18:17 Uhr).
FritzS ist offline   Mit Zitat antworten
Alt 07.02.2012, 13:06  
Neuer Benutzer
 
Registriert seit: 06.03.2011
Beiträge: 12
PHP-Kenntnisse:
Anfänger
FritzS befindet sich auf einem aufstrebenden Ast
Standard

Letztendlich verwende ich dieses angepasste freie Formular von
http://www.freecontactform.com/free.php

Das habe ich angepasst und es funktioniert ohne zusätzlich installierte mailer Klasse
PHP-Code:
$headers 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' phpversion();
ini_set "SMTP""mail.meinprovider.at" );
@
mail($email_to$email_subject$email_message$headers);
header("Location: $thankyou");
?> 
Dieses stützt sich auf
http://www.freecontactform.com/email_form.php

Diesen Tip behalte ich mir im Hinterkopf, falls der Spam zuviel wird
http://www.1ngo.de/web/captcha-spam.html
__________________
--
Fritz
FritzS ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP-Script auf PHP5 umstellen / ereg fixen Kimba PHP Einsteiger 11 30.09.2011 21:13
[Erledigt] Probleme beim Captcha erstellen maikell PHP Einsteiger 2 26.04.2011 14:23
Kontaktformular umstellen thundersweet PHP Tipps 2010 2 12.10.2010 17:19
session_start() bekomme Fehlermeldung bei captcha SleepWalker86 PHP Tipps 2010 2 02.10.2010 14:57
php4 -> php5 HCi PHP Tipps 2010 12 14.07.2010 21:06
Kontaktformular mit captcha fehler talkuvit Scriptbörse 7 07.12.2009 23:07

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php5 formular mailer mit captcha, iis 7.5 php include funtioniert nicht, php5 captcha, providerwechsel captcha funktioniert nicht mehr, php mailformular captcha gpl, umstellung auf php5 formular header, php4 kontaktformular captcha, php5 kontaktformular, php 5 und captcha, kontakt_ausw.php return $ok;, kontaktformular php5

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum