Zurück   HTML Forum > Programmierung > PHP

PHP Das PHP Forum für schnelle Hilfe und reichlich Tipps von Experten auf dem Gebiet von PHP.

Neues Thema erstellen  Antwort
 
Themen-Optionen Thema durchsuchen
Alt 10.08.2009, 13:13   #1
Neuer Benutzer
 
Registriert seit: 01.05.2009
Ort: Frankfurt am Main
Beiträge: 16
Kinski eine Nachricht über ICQ schicken Kinski eine Nachricht über Skype™ schicken
Standard php Script modifizieren

Hallo Developr,

würdest du mir helfen bei der Modifizierung eines php scriptes ?
Meine php Kentnisse sind gleich null !, bei der englichen Sprache weis ich mir zu helfen.

Gruß Kinski
Kinski ist offline   Mit Zitat antworten
Alt 10.08.2009, 13:30   #2
Administrator
 
Benutzerbild von developr
 
Registriert seit: 11.11.2008
Ort: Bremen
Beiträge: 260
developr eine Nachricht über ICQ schicken developr eine Nachricht über MSN schicken
Standard AW: php Script modifizieren

Kommt auf die Zeit drauf an, was brauchst du denn?
developr ist offline   Mit Zitat antworten
Alt 10.08.2009, 14:32   #3
Neuer Benutzer
 
Registriert seit: 01.05.2009
Ort: Frankfurt am Main
Beiträge: 16
Kinski eine Nachricht über ICQ schicken Kinski eine Nachricht über Skype™ schicken
Standard AW: php Script modifizieren

Hallo,

habe mir das gerade nochmal überlegt mit dem Gästebuch, werde eines einframen (http://www.gaestebuch-free.de)
Doch wen du dir mal das Kontaktformular ansähen tätest ???

Ist bald genauso umfangreich wie das Gästebuch Script,
also eher viel Beschreibung . . .
als eMail Addy sollte spyrogira@gmx.org rein.

Bekomme wen ich die Seite mit dem Kontaktformular in den Upload Ordner auf meine Festplatte exportiere folgende Fehlermeldung:



was müste da was geändert werden ?

Habe neulich in den tiefen meiner Festplatte Mediator 9 aufgetan, eine irre Software, (für meinen Geschmack) dieses Mediator 9 bringt diese Scripte mit.
Kann den Support von Matchware leider nicht beheligen . . .
Bin gerade dabei meine privater Page damit zu erstellen.
www.kinski-forever.net
Login: Gast
Pass: password
Wollte ursprünglich mit Joomla dies machen, habe jedoch festgestellt das Mediator 9 für meine private Page adäquater ist . . .
Doch mit dieser Scriptmodifizierung bin ich überfordert, einfaches html, css, ja schon eher.
Die Foto Shows erstelle ich mit Amara und binde diese als .swf auf Unterseiten ein.
Wen dich das zuviel Zeit kostet, lasse ichs weg auch nicht schlimm, findet sich auch eine Alternative.
Miniaturansicht angehängter Grafiken
mediator-scripte.jpg  
Angehängte Dateien
Dateityp: txt Kontaktformular.txt (16,6 KB, 2x aufgerufen)
Kinski ist offline   Mit Zitat antworten
Alt 10.08.2009, 18:45   #4
Administrator
 
Benutzerbild von developr
 
Registriert seit: 11.11.2008
Ort: Bremen
Beiträge: 260
developr eine Nachricht über ICQ schicken developr eine Nachricht über MSN schicken
Standard AW: php Script modifizieren

Das macht nichts, habe früher auch enorm viel mit Mediator erstellt, gar ganze Programme =). Sehr umfangreich aber geniales Programm !

Hier ist der Code deiner PHP Datei, lade diese mal auf deinen FTP hoch (Dateiname kontakt.php). Du musst dann noch die Verlinkung ändern, von kontakt.html in kontakt.php.

PHP-Code:
<?php
########################################################

# Kontaktformular
#
# Dieses Script erzeugt ein einfaches Mail-Formular für den Anwender und sendet eine E-Mail an die vordefinierte Adresse.

# Copyright 2007 MatchWare A/S
# http://www.matchware.com/mediator/
#
# The script requires a PHP-compatible server. 
# Most hosting service providers support PHP.
#
# This script presents a simple mail form to the user and sends an e-mail
# to a predefined address. Various options, along with language settings,
# can be customized fully. This script does not use anti-spam measures to
# avoid robots from using it, but most common methods of "form hijacking"
# have been addresed.
#
########################################################
  
########################################################
#
# The following is the script configuration. 
# Edit it as you see fit.
#
########################################################

# This defines the address this mail will be sent to. This MUST be a valid address, or
# the script will abort.
$recipient "spyrogira@gmx.org";


# If you set this variable to 'false', the user won't be allowed to write
# a subject for the mail (the default subject will be used). If you set it
# to 'true', an input field containing the subject will be shown to the user.
$allowSubject false


# This defines the default subject. If the user is allowed to edit it, this will be
# used as the default value of the subject field when the mail form is presented.
# If not, the subject of the mail will always be the content of this variable.
$defaultSubject "E-Mail von kinski-forever.net";


# Define whether the user has to provide a real e-mail address (true) or not (false).
$requireMail true;


# Define whether the user has to enter a message. I recommend you keep this turned on.
$requireMessage true;


# This is where you can define any extra fields you might like to present
# to the user. You can add as many as you want, but keep in mind that none
# of these will be required to send the mail.
# If you don't need any extra fields at all, you can empty the array like so:
# $extraFields = array();
#
$extraFields = array(
    
#"Telefon",
    #"Fax",
    #"Wo haben Sie von uns erfahren?",
    #"Wo wohnen Sie?",
);


# This string will be used to pad the extra fields when presented in the final mail.
$padString ".";


# We'll need to define some labels to use in the mail form itself. You can
# change these to fit your needs.
# If you have any experience with HTML you'll know that special characters
# can be represented with tags, like &amp; for "&" - this will be done
# automatically.
$labelName     "Ihr Name";
$labelMail     "Ihre E-Mail Adresse";
$labelSubject  "Betreff dieser Mail";
$labelMessage  "Ihre Nachricht";
$labelRequired "notwendig";
$labelSendMail "Mail senden!";

# We should also define some messages to display in case of success or errors.
# Mail:
    
$msgSendSuccess           "Ihre Mail wurde erfolgreich versandt";
    
$msgSendFailure           "Während des Mailversands ist ein unbekannter Fehler aufgetreten.";
    
$msgMailHeader            "Folgendes wurde von Ihrer Website aus gesendet:";
# Errors:
    
$msgErrorsWereEncountered "Es sind Fehler aufgetreten";
    
$msgValidEmailRequired    "Sie müssen eine gültige E-Mail-Adresse eingeben";
    
$msgValidNameRequired     "Sie müssen einen Namen eingeben";
    
$msgNeedMessage           "Sie müssen eine Nachricht eingeben";
    
$msgNoValidNameChars      "Ungültige Zeichen im eingegebenen Namen. Bitte erneut eingeben.";



# To help the layout along a bit we'll define a simple stylesheet. You
# can change this all you want, or remove it completely if you wish.
    
?>

<style type='text/css'>

    /* Errors */
    .md9MailerErrors h3
    {
    margin: 0px 0px 10px 0px;
    font-size: 20px;
    }

    /* The mail form itself */
    .md9MailerForm input, .md9MailerForm textarea
    {
    width: 95%;
    border: 2px solid #444;
    background-color: #fafafa;
    font-size: 13px;
    color: #000;
    padding: 2px;
    }
    .md9MailerForm input:focus, .md9MailerForm textarea:focus
    {
    background-color: #fff;
    border-color: #000;
    }

</style>

<?php
########################################################

# You shouldn't edit below this line 
# unless you know what you are doing :o)

########################################################
    
# Any extra fields defined in the $extraFields array will be prepended with an
# identifier when the input fields are displayed. This is that identifier.
$extraFieldPrepend "exfield_";
$lineBreak "\r\n";

# This line tells PHP to display all errors, except notices which are basically
# useless anyway. Most servers should be configured to ignore notices by default,
# but it's better to be safe than sorry.
error_reporting(E_ALL E_NOTICE);



#######################################################################################
#                                                                                     #
# We'll need some functions to handle generic data mangling. Let's define them here.  #
#                                                                                     #
#######################################################################################

# This function takes a string as input and returns
# only the alphanumerical parts in lowercase. This is
# used to prepare extra fieldnames for use in the form.
function makeSafeField($input)
{
    
$input preg_replace("/[^(a-z0-9)]/i","",$input);
    
$input strtolower($input);
    return 
$input;
}

# This function takes a string as input and strips it
# of anything that might be considered bad characters
# ... only the most basic chars are allowed to remain.
function makeSafeName($input)
{
    
$input preg_replace("/[^([:alnum:][:space:],\.)]/i","",$input);
    return 
trim($input);
}

# This function uses a preg-pattern to determine whether
# any given e-mail address validates according to the
# standards. This pattern was taken from www.php.net,
# courtesy of a mister Elier Delgado.
function isValidEmail($input)
{
    
$pattern "/^[a-z]+[a-z0-9]*[\.|\-|_]?[a-z0-9]+@([a-z]+[a-z0-9]*(?(?=[\.|\-])([\.|\-][a-z]+[a-z0-9]*[a-z0-9]+)|[a-z0-9]+)){1,4}\.[a-z]{2,4}$/i";
    return 
preg_match($pattern,$input);
}

# This function will remove any line breaks from whatever is sent
# its way. Many spammers have a nasty habit of using linebreaks to
# inject new headers into an e-mail, effectively redirecting it
# somewhere else. This can be used to send lots of spammail using
# your website as the source - and trust me, you don't want that.
function stripBadStuff($input)
{
    
$input str_replace(array("\n","\r"), ""$input);
    
$input stripslashes($input);
    return 
$input;
}

        
#######################################################################################
#                                                                                     #
# Okay - now's the time for the real script to run.                                   #
#                                                                                     #
#######################################################################################

# First, we should check if the e-mail address you filled in actually validates. If not,
# the script will abort at once.
if (!isValidEmail($recipient))
    die(
"<h1>Error!</h1>The variable <b>\$recipient</b> is set to '<i>".$recipient."</i>', which is not a valid e-mail address. You cannot use this 

script until you've configured it properly.<br/><br/>The script has aborted execution on line <b>"
.__LINE__."</b>.");


# Set up an array for any errors we might encounter.
$errors = array();


# If the script was called with a POST-request, we should parse
# the incoming data and do stuff with it.
if ($_SERVER['REQUEST_METHOD'] == "POST")
{
    
# We'll start by setting a success-variable to true. If any errors are
    # encountered while processing the data, the variable will be set to
    # false, meaning something has gone wrong.
    
$OkayToSend true;
    
    
# Remove any nasty hackerstuff from name and e-mail
    
$sender_name stripBadStuff($_POST['sendername']);
    
$sender_mail stripBadStuff($_POST['sendermail']);
    
    
# We should do the same for the subject - provided the user ever had
    # a chance to change it.
    
$subject = ($allowSubject) ? stripBadStuff($_POST['subject']) : $defaultSubject;
    
    
    
# Now we'll check to see if the e-mail address actually validates. If not,
    # we need to figure out if we should take action.
    
if (!isValidEmail($sender_mail))
    {
        if (
$requireMail)
        {
            
# The address was not valid, and that's a bad thing. We'll report the
            # error and make sure the mail isn't sent.
            
$OkayToSend false;
            
$errors[] = $msgValidEmailRequired;
        }
        else 
            
# The address was not valid, but it's not a problem. We'll delete the address
            # for now, then fill it in later if the mail is to be sent.
            
unset($sender_mail);
    }
    
    
    
# Let's make sure the user has entered a name at all.
    
if (!strlen($sender_name))
    {
        
# That's a negative. We'll need to abort here.
        
$errors[] = $msgValidNameRequired;
        
$OkayToSend false;
    }
    else
    {
        
# There is a name. Let's clean it up some more...
        
$sender_name makeSafeName($sender_name);
        
# ... and make sure there's anything left after that last butchering.
        
if (!strlen($sender_name))
        {
            
$errors[] = $msgNoValidNameChars;
            
$OkayToSend false;
        }
    }
    
    
# The subject should be cleaned up as well.
    
$subject makeSafeName($subject);
    if (!
strlen($subject))
        
$subject $defaultSubject;
    
    
    
# Now we should run through the extra fields (if any), making sure the data
    # is free of nasty surprises.
    #
    # First, we set up an array to contain the output we're expecting.
    
$exFieldOutput = array();
    
    
# Then we'll make an integer variable which will contain the lenghts of the
    # field 'titles'. This will later be used to pad the output and make it look
    # good. We'll set it to the length of the "name" label, then check to see if
    # the e-mail label is longer.
    
$maxFieldLength strlen($labelName);
    if (
strlen($labelMail) > $maxFieldLength$maxFieldLength strlen($labelMail);
    
    
# Then we find out whether there's actually any fields to process.
    
if (is_array($extraFields) && @count($extraFields))
        
# Start a loop through the fields you've defined earlier
        
foreach($extraFields as $key)
        {
            
# Find out what the current field would be called in the POST-array.
            
$fieldname makeSafeField($key);
            
            
# If the field has content, let's do stuff to it.
            
if (strlen(trim($_POST[$extraFieldPrepend $fieldname])))
            {
                
# Remove line breaks - in this case not because they'd compromise security,
                # since the extra fields will be inserted as part of the body of the mail,
                # but rather because we want the mail to look neat and tidy.
                
$value str_replace(array("\n","\r"), " "$_POST[$extraFieldPrepend $fieldname]);
                
$value trim($value);
                
$value stripslashes($value);
                
                
# Put the resulting value into our output array.
                
$exFieldOutput[$key] = $value;
                
                
# If this field has a longer name than previously recorded, update
                # $maxFieldLength to compensate.
                
if (strlen($key) > $maxFieldLength)
                    
$maxFieldLength strlen($key);
            }
        }
    
    
# Prepare the body of the mail
    
$body stripslashes(trim($_POST['body']));
    
# If the message is empty but required to exist, throw a hissy fit.
    
if (!strlen($body) && $requireMessage)
    {
        
$OkayToSend false;
        
$errors[] = $msgNeedMessage;
    }
    
    
# Now we're done processing - let's see if we're allowed to continue.
    
if ($OkayToSend)
    {
        
# Seems we're good to go.
        
        # If no e-mail has been set, we'll insert a generic string which will make the
        # mail look more proper.
        
if (!$sender_mail)
        {
            
$removeMailOnComplete true;
            
$sender_mail "no-valid-email-provided";
        }

        
# Set up an "extra body" variable and put a simple divider into it. We're using a secondary
        # variable instead of appending to the body text, since the latter will be shown in the
        # editor if something goes wrong during post of the mail.
        
$exbody "\n\n".str_repeat("-",$maxFieldLength+3)."\n";
        
        
# Add mail and name variables, to make sure the data is easily accessible to the reader
        
$exbody .= str_pad($labelName ." "$maxFieldLength+2$padStringSTR_PAD_RIGHT) . ": ".$sender_name "\n";
        
$exbody .= str_pad($labelMail ." "$maxFieldLength+2$padStringSTR_PAD_RIGHT) . ": ".$sender_mail "\n";
        
        
# Add the processed extra fields if they exist
        
if (count($exFieldOutput))
            foreach(
$exFieldOutput as $k=>$v)
                
$exbody .= str_pad($k ." "$maxFieldLength+2$padStringSTR_PAD_RIGHT) . ": ".$v $lineBreak;

        
        
# Create another "extra body" variable - this one will be prepended to the content.
        # Consider it a header to the content provided by the user.
        
$prebody $msgMailHeader."\n".str_repeat("-"strlen($msgMailHeader))."\n\n";
        
        
        
# Set up the basic headers of the e-mail
        
$headers "From: \"".$sender_name."\" <".$sender_mail.">\n";
        
$headers .= "Subject: ".$subject."\n";
        
$headers .= "X-Mailer: Mail script generated by Matchware Mediator 9\n";
        
$headers .= "X-Mail-source: http" . ($_SERVER['HTTPS']=="on"?"s":"") . "://" $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . "\n";
        
        
        
        
# That's all the processing we need. Yay!
        
        # Send the mail and report status.
        
print "<div class='md9MailerErrors'>";
        if (
mail($recipient$subject$prebody.$body.$exbody$headers))
        {
            
# The mail was sent without problems, so we'll report
            # a success and reset body + extra fields.
            
print "<h3>".htmlentities($msgSendSuccess)."</h3>\n";
            unset(
$body);
            unset(
$exFieldOutput);
        }
        else
            
# Something bad happened. The most likely cause is that the server has not been
            # configured with mail-sending capabilities. More information should be available
            # in the server logs.
            
print "<h3>".htmlentities($msgSendFailure)."</h3>\n";
        
        print 
"</div>\n\n";

        
        
# Unset the sender's mail if he didn't provide a proper one. This is
        # to stop "no-valid-email-provided" from showing up in the mail form.
        
if ($removeMailOnComplete) unset($sender_mail);
    }
        
}


    
#######################################################################################
#                                                                                     #    
# All events below this line are executed every time the script is run - if errors    #
# are encountered during POST, they will be displayed along with the mail form.       #
#                                                                                     #
#######################################################################################


# Display errors, if any were found.
if (@count($errors))
{
    print 
"<div class='md9MailerErrors'>";
    print 
"<h3>".htmlentities($msgErrorsWereEncountered).":</h3><ul>\n";
    foreach(
$errors as $v)
        print 
"<li>".htmlentities($v)."</li>\n";
    print 
"</ul></div><br/>\n\n\n";
}

# Print the form tag
print "<form class='md9MailerForm' action='".$_SERVER['PHP_SELF']."' method='post'>";

# Print name
print "<label><b>".htmlentities($labelName)." (".htmlentities($labelRequired).")</b><br/><input maxlength='100' type='text' name='sendername' 

value=\"
{$sender_name}\"/></label>";
print 
"<br/>\n\n";

# Print mail
print "<label><b>".htmlentities($labelMail).
    (
$requireMail " (".htmlentities($labelRequired).")" ""). # only print "required" if $requireMail is 'true'
    
":</b><br/><input type='text' name='sendermail' value=\"{$sender_mail}\"/></label>";
print 
"<br/>\n\n";

# Print subject, if needed
if ($allowSubject)
{
    if (!
$subject$subject $defaultSubject;
    print 
"<label><b>".htmlentities($labelSubject).":</b><br/><input type='text' maxlength='100' name='subject' value=\"{$subject}\"/></label>";
    print 
"<br/>\n\n";
}

# Print extra fields, if available
if (is_array($extraFields) && @count($extraFields))
    foreach(
$extraFields as $f)
    {
        print 
"<label><b>".htmlentities($f).":</b><br/>";
        
$fName makeSafeField($f);
        
$fVal = (strlen($exFieldOutput[$f])) ? $exFieldOutput[$f] : "";
        print 
"<input type='text' name='".$extraFieldPrepend.$fName."' value=\"{$fVal}\"/></label>";
        print 
"<br/>\n\n";
    }

# Print the body field
print "<label><b>".htmlentities($labelMessage).
    (
$requireMessage " (".htmlentities($labelRequired).")" ""). 
    
"</b><br/><textarea rows='4' cols='60' name='body'>$body</textarea>";
print 
"<br/>\n\n";

# Print the buttons and close the form
print "<button type='submit'>".$labelSendMail."</button>";
print 
"</form>";

?>
developr ist offline   Mit Zitat antworten
Alt 11.08.2009, 05:26   #5
Neuer Benutzer
 
Registriert seit: 01.05.2009
Ort: Frankfurt am Main
Beiträge: 16
Kinski eine Nachricht über ICQ schicken Kinski eine Nachricht über Skype™ schicken
Standard AW: php Script modifizieren

ja vielen Dank auch für den Support,

habe es so gemacht wie beschrieben, habe die Datei auf dem Server umbenannt von kontakt.html nach kontakt.php,
wen ich jetzt die Seite mit dem Browser aufrufe bekomme ich eine Fehlermeldung
(error 404 Das angeforderte Dokument ist nicht vorhanden)

Was kann das jetzt sein ? Nehme ich das .html suffix weg findet der Browser die Seite nicht mehr . .
Kinski ist offline   Mit Zitat antworten
Alt 11.08.2009, 06:53   #6
Administrator
 
Benutzerbild von developr
 
Registriert seit: 11.11.2008
Ort: Bremen
Beiträge: 260
developr eine Nachricht über ICQ schicken developr eine Nachricht über MSN schicken
Standard AW: php Script modifizieren

Weil du noch die Verlinkung in der startseite.html ändern musst. Die zeigt ja momentan auf die kontakt.html, es soll ja aber die kontakt.php aufgerufen werden.

Wenn du http://www.kinski-forever.net/kontakt.php direkt aufrufst, geht es ja.
developr ist offline   Mit Zitat antworten
Alt 11.08.2009, 07:00   #7
Neuer Benutzer
 
Registriert seit: 01.05.2009
Ort: Frankfurt am Main
Beiträge: 16
Kinski eine Nachricht über ICQ schicken Kinski eine Nachricht über Skype™ schicken
Standard AW: php Script modifizieren

ah eben hab ichs, habe aus kontakt.php kontakt.html.php gemacht der geht . . .,
werde das mit der Linkanweisung in der Startseite auch testen.

Geändert von Kinski (11.08.2009 um 07:04 Uhr)
Kinski ist offline   Mit Zitat antworten
Neues Thema erstellen  Antwort
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

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 aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
XML parsen und CSS in PHP einbauen Paze PHP 4 15.07.2009 15:50
Links in PHP Paze PHP 2 10.07.2009 12:41