Ein Formular mit PHP absenden

Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 
Script Seite

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 ICQ Generator
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog Verzeichnis

Partner
Sprüche Treff

Goneo.de
Bei diesen Anbieter bekommt man Webspace, Domains,...
http://www.Goneo.de
speicherzentrum.d...
Bei den Anbieter bekommt man Webspace, Domains und...
http://www.speicherzentrum.de
 
 
 

Ein Formular mit PHP absenden

Sie befinden sich: Home > Php Tutorial > Ein Formular mit PHP absend...

Ein Formular mit PHP absenden



Eintrag am:  27.12.2009
Hits / Besucher:  8765
Sprache: Deutsch
Kategorie:  Experten Tutorials
Tutorial Art:  eigenes
Eingetragen von   � 
 

Beschreibung


Es wird in diesen PHP Tutorial erklärt, wie sie mit der Programmiersprache PHP ein Formular automatisch ausfüllen und absenden. Manchmal kommt es vor, dass man sich eine Arbeitserleichterung programmieren möchte. Für diese Fälle, kann man in PHP ein Formular automatisch absenden. Ich erkläre Ihnen wie sie mit einer Php- Function in PHP dies umsetzen können.

Natürlich kann man mit dieser PHP- Function auch sehr viel Schindluder betreiben, daher möchte ich nicht im Detail auf die Anwendungsbeispiele eingehen. Ich sage nur soviel dazu, mit ein paar kleinen Modifikationen ist es möglich, jedes Formular auszufüllen. Der einzigste Schutz hierbei ist, ein so genanntes Captcha Bild, was im Formular eingebaut ist.

Um ein Formular abzusenden, benötigt man die PHP-Funktion fsockopen(), damit man eine Verbindung zu einem externen Server herstellen kann. Bitte lesen Sie vorher die Erklärung "Host mit preg_match() prüfen" und "Analysieren einer URL und in die Bestandteile zerlegen" damit nicht zu viele Fragen ihrerseits aufkommen.

Nachfolgend finden sie eine PHP Function, womit man ein Formular automatisch absenden kann.

Beispiel:

<?php
    
/*
    * Created on 27.12.2009 by Nico Schubert
    */
    
function daten_absenden($url$referer,
        
$data_zu_senden$port 80$timeout 30) {
        
/**
        * Mit der PHP Funktion parse_url() zerlegen
            wir die URL in ihre Bestandteile und
            speichern diese in der Variable
            $url_bestandteile.
        */
        
$url_bestandteile = @parse_url($url);
        
/**
        * Als nächstes prüfen wir die Variable
            $url_bestandteile, ob in dieser ein false
            steht, sollte dies der Fall sein geben
            wir eine Fehlermeldung aus und brechen
            das Script ab.
        */
        #$url_bestandteile
        
if ($url_bestandteile == false) {
            echo 
'Der gespeicherte Host in der
                Variable $host ist nicht korrekt.'
;
            exit;
        }
        
/**
        * Nun greifen wir auf das Array in der
            Variable $url_bestandteile zurück und
            speichern die Bestandteile host und path
            in einer expliziten Variable.
        */
        
$host $url_bestandteile['host'];
        
$path $url_bestandteile['path'];
        
$suchmuster =
            
"/^[a-zA-Z0-9-.]+.(com|org|net|info|de)
            $/i"
;
        
/**
        * Mit einer IF-Anweisung und preg_match()
            überprüfen wir, ob unser Host den
            Suchmuster entspricht.
        */
        
if (preg_match($suchmuster$host) == false) {
            
/**
            * Wenn die PHP-Funktion preg_match ein
                false zurückgibt, geben wir mit den
                echo Befehl eine Fehlermeldung aus.
            */
            
echo 'Der gespeicherte Host in der
                Variable $host ist nicht korrekt.'
;
            exit;
        }
        
/**
        *  Als nächstes prüfen wir mit einer
            IF-Anweisung, is_array() und count() ob
            in der Variable $data_zu_senden ein Array
            mit Daten enthalten ist.
        */
        
if (is_array($data_zu_senden) == false OR
            
count($data_zu_senden) == 0) {
            
/**
            * Wenn in der Variable $data_zu_senden,
                keine Daten enthalten sind brechen
                wir den Scriptlauf mit der PHP
                Funktion exit; das Script ab und
                geben eine entsprechende
                Fehlermeldung aus.
            */
            
echo 'Der Php function daten_absenden()
                wurde kein Array mit Daten übergeben!'
;
            exit;
        } else {
            
$i 0;
            
$daten '';
            
/**
            * Nun laufen wir unser Array, was wir der
                Funktion übermittelt haben mit einer
                so genannten foreach Schleife durch
                und speichern den Schlüssel und Wert
                als einer Zeichenkette in der
                Variable $daten. Zusätzlich prüfen
                wir mit einer IF Anweisung in der
                Schleife, ob $i gleich 0 ist,
                ansonsten stellen wir der
                Zeichenkette & Zeichen voraus.
            */
            
foreach($data_zu_senden as $key => $value) {
                if (
$i == 0) {
                    
$daten .= $key.'='.$value;
                } else {
                    
$daten .= '&'.$key.'='.$value;
                }
                
$i++;
            }
        }
         
        
/**
        * Verbindung zum Host herstellen mit der PHP
            Funktion fsockopen()
        */
        
$verbindung = @fsockopen($host$port$errno,
            
$errstr$timeout);
        
/**
        * Auswerten ob eine Verbindung zum Host
            hergestellt wurde
        */
        
if (!$verbindung) {
            
/**
            * Sollte keine Verbindung hergestellt
                werden können mit der PHP Funktion
                fsockopen() geben wir eine
                Fehlermeldung aus und brechen das
                Script ab.
            */
            
echo $errstr.' ('.$errno.')<br />';
            exit;
        } else {
            
/**
            * Verbindung hergestellt zum Host,
                Datenübertragung beginnen
            */
            
fputs($verbindung"POST ".$path."
                HTTP/1.1rn"
);
            
fputs($verbindung"Host: ".$host."rn");
            
fputs($verbindung"Referer:
                "
.$referer."rn");
            
fputs($verbindung"Content-type:
                application/x-www-form-urlencodedrn"
);
            
fputs($verbindung"Content-length: ".
                
strlen($daten) ."rn");
            
fputs($verbindung"Connection:
                closernrn"
);
            
fputs($verbindung$daten);
            
/**
            * Daten senden
            */
            
while (!feof($verbindung)) {
                
$res .= fgets($verbindung4096);
            }
            
/**
            * Verbindung schließen zum Host
            */
            
fclose($verbindung);
            
/**
            * Rückgabe der Ausgabe vom Host
            */
            
return $res;
        }
    }

    /**
    * Beispiel für den Funktionsaufruf
    */


    
/**
    * Nun befüllen wir die Variable $daten_array mit
        einen Array, der Daten die wir an das
        Formular übersenden möchten. Für den Key
        verwenden wir den Variablenamen und speichern
        den zu übergebenen Wert in den Array.
    */
    
$daten_array['variable_name'] = "Inhalt";
    
/**
    * Jetzt rufen wir die PHP-Funktion
        daten_absenden() auf und übergeben dieser
        PHP-Funktion in ersten Parameter unserer URL,
        der wir die Daten übergeben möchten.
    *
    * Im zweiten Parameter können wir einen so
        genannten Referer mit übergeben, dies ist
        nicht erforderlich. Manche Formulare
        benötigen zum entgegennehmen der Daten, die
        Angabe des Referers.
    *
    * Beim dritten Parameter übergeben wir unser Array
        mit der Variable $daten_array. Der vierte und
        fünfte Parameter sind zwei optionale Parameter.
    *
    * Der vierte Parameter steht für den Port des Host
        und der fünfte für den Timeout bis die
        Verbindung zum Host geschlossen werden soll.
        Anschließend speichern wir den Rückgabewert
        der PHP Funktion daten_absenden() in der
        Variable $x.
    */
    
$x =
        
daten_absenden("http://www.domain.de/formular.
        php"
""$daten_array8030 );
    
/**
    * Nun geben wir als letztes die Variable $x aus.
        Es wird hierzu die PHP-Funktion echo
        verwendet. Die Ausgabe entspricht des
        Rückgabewerts des URL`s, wohin wir die Daten
        gesendet haben.
    */
    
echo $x;
?>

Wenn man dieses PHP-Script an seinem wünschen angepasst hat und dieses aufruft, wird die Ergebnisausgabe vom Formular ausgegeben, nach dem man das Formular abgesendet hat. Diese Ausgabe kann man mit preg_match() weiter verarbeiten und z.b. ein anderen Prozess starten.

Sollten Sie Fragen oder Probleme mit dieser PHP Function haben, so nutzen sie bitte unser Supportforum. Erweiterungsvorschläge werden natürlich genauso gern, im Forum entgegengenommen.

Erklärung der einzelnen PHP-Funktionen:

IF-Anweisung - Es wird in diesem Tutorial erklärt, wie sie eine IF Anweisung richtig verwenden.
Text ausgeben mit PHP - Hier wird ihnen erklärt, wie sie mit den PHP Befehl echo einen Text ausgeben.
Was ist ein Array? - Sie finden hier eine Erklärung, was überhaupt ein Array ist und wie man dies verwenden kann.
foreach Schleife - Hier wird erklärt was eine foreach() Schleife ist und wie man diese, in der PHP Programmierung verwenden kann.
Php Function - Allgemeine Erklärung der PHP-Function mit Anwendungsbeispielen.

 

Tags


 

Verlink uns, wenn Dir das Tutorial gefallen hat:
Artikel hinzufügen bei: