php, codeschnipsel, php beispielen
Ein Formular mit PHP absenden

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

Userbereich
kostenlos Anmelden
Memberliste

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

Orange-hoster.de
Orange-hoster.de ist ein Partnerunternehmen der Ne...

domainzentrale.eu...
Bei diesen Anbieter bekommt man verschiedene Webho...

weitere Anbieter
PHP Space Community auf Facebook PHP Space Community auf Twitter RSS Feeds der PHP Space Community

 

Statistik
10 Gäste Online
0 Member Online
269 Besucher heute
1186 Besucher gestern
 

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:  3277
Sprache: DeutschDeutsch
Kategorie:  Experten Tutorials
Tutorial Art:  eigenes
Eingetragen von:  schubertmedia
 

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.1 "
);
            
fputs($verbindung"Host: ".$host." ");
            
fputs($verbindung"Referer:
                "
.$referer." ");
            
fputs($verbindung"Content-type:
                application/x-www-form-urlencoded "
);
            
fputs($verbindung"Content-length: ".
                
strlen($daten) ." ");
            
fputs($verbindung"Connection:
                close "
);
            
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:
Bookmark bei: Mr. Wong Bookmark bei: Webnews Bookmark bei: Icio Bookmark bei: Folkd Bookmark bei: Yigg Bookmark bei: Linkarena Bookmark bei: Del.ico.us Bookmark bei: Reddit Bookmark bei: Digg Bookmark bei: StumbleUpon Bookmark bei: Slashdot Bookmark bei: Google Bookmark bei: Blinklist Bookmark bei: Blogmarks Bookmark bei: Diigo Bookmark bei: Technorati Bookmark bei: Newsvine Bookmark bei: Netvouz