Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum
>
Entwickler
>
PHP Kontaktformular mit zusätzlichen Infos
PHP Kontaktformular mit zusätzlichen Infos
dom_beta
01.10.12
15:12
Hallo,
kennt jemand eine kostenlose unter GPL stehendes Kontaktformular via PHP wo neben den allgemeinen Angaben wie Name, Adresse & Co. auch weitere Besucherinformationen wie verwendeter Webbrowser, Betriebssystem und IP-Adresse mitsendet?
Das wäre sehr nett.
MfG
„...“
Hilfreich?
0
Kommentare
void
01.10.12
21:41
Ich glaube, ich verstehe die Frage nicht ganz... Füg doch einfach beliebige Felder hinzu...?
„Developer of the Day 11. Februar 2013“
Hilfreich?
0
nahtanoj96
01.10.12
21:44
Also das könntest du wahrscheinlich selbst proggen...
Verstehe ich das richtig, dass du etwas suchst, um diese Infos zu "spionieren", was du aber selber nicht schreiben kannst (ich auch nicht)? Also einfach nen Beispielcode. So speziell wohl nicht, aber such doch einfach mal nach ner Möglichkeit die Dinge rauszufinden. Das dann in die Datenbank eintragen kriegst du doch wahrscheinlich hin, oder? MfG, Jonathan
Hilfreich?
0
dom_beta
01.10.12
22:54
Hallo,
also, das ursprüngliche Skript ist ein Script von Licomail aus dem Jahre 2002.
Diese Skripte sind in 3 Dateien aufgespalten und diese Funktion mit der Browser- und Betriebssystemversion ist da schon drin, funktioniert aber nicht mehr.
Liegt wohl daran, dass das Skript nur bis Windows 98 erkennen laut (laut Recherchen).
Da ich keine Ahnung von PHP habe, wäre es nett, wenn jemand das umstellen könnte oder aber, ihr könntet mich auf ein solchen Codeschnipsel verweisen.
Dann könnte ich das mal einbauen und testen.
„...“
Hilfreich?
0
void
01.10.12
23:08
willste die scripte mal online stellen?
„Developer of the Day 11. Februar 2013“
Hilfreich?
0
maliker
02.10.12
01:21
Die Informationen kannst du unter PHP mithilfe der Superglobalen Variable $_SERVER abfragen. Detaillierte Beschreibung des Arrays findest du unter:
Kannst dann die Werte mithilfe der versteckten Eingabefelder mitsenden. Beispiel:
<form>
<input type="hidden" name="browser" value="<?php echo $_SERVER[ 'HTTP_USER_AGENT' ]; ?>" />
// weitere Eingabefelder
</form>
Nach dem Absenden kannst du je nach Übertragungsmethode (GET / POST) dann über $_GET[ '
browser
' ] / $_POST[ '
browser
' ] abfragen.
Nutze dabei bitte die Methode isset
Hilfreich?
0
dom_beta
04.10.12
16:26
void
willste die scripte mal online stellen?
Bitte:
<?php
/************************************************************************
* File: licomail_functions.inc.php *
* Function-Library *
* ===================================================================== *
* Beschreibung: *
* Diese Datei stellt die Funktionalitaet des Formmailers zur Ver- *
* fuegung. *
* *
* Dokumentation und Support: *
* http://www.little-coder.ch *
* ===================================================================== *
* Author: Roger Wittwer Letzte Aenderung: 10/02/2002 *
* Copyright (c) 2002 by Roger Wittwer *
************************************************************************/
$inputVars; // Input aus dem Formular
/*******************************************************************
* Die Methode liefert den Namen der Konfigurations-Datei,
* welcher mit dem Hidden Field im Formular verschickt wurde
*
* Return: Name der Konfigurations-Datei
*******************************************************************/
function getFormConfigFile()
{
global $inputVars;
return $inputVars["licomail_config_file"];
}
/*******************************************************************
* Die Methode bereitet den Inhalt des E-Mails auf und gibt
* ihn als String zurueck
*
* Return: E-Mail-Body
*******************************************************************/
function generateEMailBody()
{
global $inputVars,
$mail_header_text,
$mail_footer_text,
$mail_visitor_details;
while (list($Key, $Val) = each($inputVars)) {
if ($Key !="licomail_send" && $Key !="licomail_config_file")
{
$body .= $Key.": ".$Val."\n";
}
}
if ($mail_visitor_details)
{
$languages = array(
"de" => "Deutsche Version",
"en" => "Englische Version",
"nl" => "Niederl‰ndische Version",
"fr" => "Franzˆsische Version",
"it" => "Italienische Version",
"ru" => "Russische Version",
);
$header = $GLOBALS[HTTP_USER_AGENT];
$host = @gethostbyaddr($GLOBALS[REMOTE_ADDR]);
$os = getVisitorOS($header);
list( $browser, $version, $language ) = getVisitorBrowser($header);
$body .= "\n\n Besucherdetails:";
if (browser)
{
$body .= "\nBrowser: ".$browser;
if ($version) $body .= " ".$version;
if ($languages[$language]) $body .= " (".$languages[$language].")";
}
if ($os) $body .= "\nBetriebssystem: ".$os;
if ($host) $body .= "\nHerkunfts-Adresse / IP: ".$host;
}
return $mail_header_text."\n\n".$body."\n\n".$mail_footer_text;
}
/*******************************************************************
* Die Methode bereitet den E-Mail-Header auf und gibt
* ihn als String zurueck
*
* Return: E-Mail-Header
*******************************************************************/
function generateEMailHeader()
{
global $mail_recipient_cc,
$mail_recipient_bcc,
$mail_sender,
$mail_copy_to_visitor;
if ($mail_sender) $headers = "From: ".$mail_sender."\n";
if ($mail_recipient_cc) $headers .= "cc: ".$mail_recipient_cc;
if ($mail_copy_to_visitor && getVisitorEMailAdress() != "")
{
if ($mail_recipient_cc) $headers .= ", ";
else $headers .= "cc: ";
$headers .= getVisitorEMailAdress();
}
$headers .= "\n";
if ($mail_recipient_bcc) $headers .= "bcc: ".$mail_recipient_bcc;
return $headers;
}
/*******************************************************************
* Die Methode filtert die vom Besucher eingetragene E-Mail-
* Adresse aus dem Formular.
*
* Hinweis: Beruecksichtigt wird die erste gueltige E-Mail-Adresse,
* in einem Eingabefeld des Formulars.
*
* Return: E-Mail-Adresse
*******************************************************************/
function getVisitorEMailAdress()
{
global $inputVars;
reset($inputVars);
while (list($Key, $Val) = each($inputVars))
{
if (preg_match("/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+\.([a-zA-Z]{2,3})$/", $Val))
{
return $Val;
}
}
return "";
}
/*******************************************************************
* Die Methode prueft die Eingaben des Besuchers
*
* Return: Array mit Fehlermeldungen
*******************************************************************/
function checkInputVars()
{
global $inputVars,
$form_check_fields;
$retErrors;
if (isset($form_check_fields))
{
$keys = array_keys($form_check_fields);
for ($i = 0; $i < count($form_check_fields) ;$i++)
{
$inputName = $keys[$i];
$inputValue = $inputVars[$inputName];
$errorPattern = $form_check_fields[$inputName];
if($inputValue == "")
$retErrors[] = $inputName.": Dieses Feld erfordert eine Eingabe";
if ($errorPattern == "CONTAINS_NUMBERS")
{
if (preg_match("/^.*[0-9].*$/", $inputValue))
$retErrors[] = $inputName.": Ihre Eingabe darf keine Zahlen enthalten";
}
else if ($errorPattern == "CONTAINS_CHARACTERS")
{
if (preg_match("/^.*[a-zA-Z‰ˆ¸].*$/", $inputValue))
$retErrors[] = $inputName.": Ihre Eingabe darf keine Buchstaben enthalten";
}
else if ($errorPattern == "INVALID_EMAIL" && !$inputValue == "")
{
if (!preg_match("/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+\.([a-zA-Z]{2,3})$/", $inputValue))
$retErrors[] = $inputName.": Ihre E-Mail-Adresse ist ungültig";
}
}
}
return $retErrors;
}
/*******************************************************************
* Diese Methode ermittelt das Betriebssystem aufgrund des Browsers
*
* Diese Methode habe ich nach einem Hinweis vom Author in der
* deutschen PHP-Mailingliste kopiert:
* http://pfirsich.altmuehlnet.de/auswertung.php3
* http://pfirsich.altmuehlnet.de/auswert.php3
*
* Herzlichen Dank!
*
* Return: Betriebssystem
*******************************************************************/
function getVisitorOS($ua) {
if( eregi( "Win {0,1}(nt|[0-9]{1,2})", $ua, $win_ver ) ) {
$win_ver = $win_ver[1];
$os = "Windows";
}
if( eregi( "Windows {0,1}(nt|[0-9]{1,2})", $ua, $win_ver ) ) {
$win_ver = $win_ver[1];
$os = "Windows";
}
if( $win_ver ) $win_ver = trim( $win_ver );
if( $win_ver == "95" ) $os .= " 95";
elseif( $win_ver == "98" ) $os .= " 98";
elseif( $win_ver == "16" || ereg( "^3\.", $win_ver ) ) $os .= " 16";
elseif( eregi( "nt", $win_ver ) || ereg( "4\..+", $win_ver ) ) $os .= " NT";
if( ereg( "Linux", $ua ) ) {
$os = "Linux";
if( ereg( "Linux ([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,3})", $ua, $os_ver ) ) $os .= "$os_ver[1]";
}
if( ereg( "SunOS", $ua ) ) $os = "SunOS";
if( ereg( "([a-zA-Z]{3,4}BSD)", $ua, $os ) ) $os = $os[1];
if( ereg( "OS/2", $ua ) ) $os = "OS/2";
if( ereg( "Mac", $ua ) ) $os = "MacOS";
return( $os );
}
/*******************************************************************
* Diese Methode ermittelt den Browser
*
* Diese Methode habe ich nach einem Hinweis vom Author in der
* deutschen PHP-Mailingliste kopiert:
* http://pfirsich.altmuehlnet.de/auswertung.php3
* http://pfirsich.altmuehlnet.de/auswert.php3
*
* Herzlichen Dank!
*
* Return: Array mit Browser, Version und Sprache
*******************************************************************/
function getVisitorBrowser($ua) {
list( $browser, $version ) = split( "/", $ua, 2 );
$ua = $version;
if( $browser == "Mozilla" ) {
list( $version, $ua ) = split( " ", $ua, 2 );
$moz_browser = true;
$browser = Netscape;
if (eregi("5.", $version)) $version = "6.x";
$moz_ver = $version;
if( ereg( "\[([a-z]{2})\]", $ua, $language ) ) $language = $language[1];
if( eregi( "MSIE", $ua ) ) {
$browser = "Internet Explorer";
if( eregi( "MSIE ([0-9]\..+);", $ua, $version ) ) $version = $version[1];
}
if( eregi( "Opera", $ua) ) {
$browser = "Opera";
if( eregi( "Opera[/ ]([0-9]\..+);", $ua, $version ) ) $version = $version[1];
if (eregi("5.", $version)) $version = "6.x";
}
}
return array( $browser, $version, $language );
}
?>
„...“
Hilfreich?
0
void
05.10.12
09:49
Hi,
ja die Methode "getVisitorOS" kennt tatsächlich nur einige wenige Windows-Versionen.
Wie lesbar muss das ganze denn sein? Ich würde vorschlagen, dass du einfach den gesamten User-Agent-String in die Mail schreibst. Das ist zwar nicht hübsch, aber wird auch noch in 10 Jahren die dann aktuellen Betriebssysteme kennen (sofern diese vom Browser mitgesendet werden).
Du würdest dann nicht mehr "Windows 98" sehen, sondern z.B. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/536.26.14 (KHTML, like Gecko) Version/6.0.1 Safari/536.26.14".
Da jeder Browser einen anderen UA-Header sendet, ist es ohnehin schwierig, einen "hübsch" formatierten String für Betriebssystem und Browser zu extrahieren.
Was deinen Wunsch angeht, die IP-Adresse mitzusenden (warum auch immer du das willst): Füg einfach in die oberste Funktion "generateEMailBody" kurz vorm return noch eine Zeile mehr ein:
...
$body .= "\nIP: ".$_SERVER[REMOTE_ADDR];
}
return $mail_header_text."\n\n".$body."\n\n".$mail_footer_text;
}
edit: boah ist die code-formatierung schei** geworden!!
„Developer of the Day 11. Februar 2013“
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.
Apple kündigt Systemupdates für heute Abend an ...
Mac OS X: 25 Jahre Aqua, 25 Jahre Dock
Apple Intelligence: Weiterhin Nonsens-Zusammenf...
Softwareupdate: Apple veröffentlicht iOS 18.2.1
iOS 18.1 veröffentlicht
Apple gewährt Einblick in Audio- und Video-Test...
Mac-Wartung: Alte Kernel-Erweiterungen entfernen
Kurz: Apple bietet iPhone 15 erstmals refurbish...