587 Benutzer online
28. November 2024, 07:34:13

Windows Community



Zum Thema Erstellen eines CGI Scripts - Hallo und Guten Morgen,für meinen Anzeigenmarkt benötige ich ein CGI ScriptsKann mir da jemand helfen ?GrußChevy Driver... im Bereich Programmierung und Scripting
Autor Thema:

Erstellen eines CGI Scripts

 (Antworten: 8, Gelesen 7823 mal)

  • News-Redakteur
  • Windows 98SE
  • Beiträge: 917
  • »Ich bin ein freier Mensch«
Erstellen eines CGI Scripts
« am: 02. Dezember 2011, 07:58:04 »
Hallo und Guten Morgen,
für meinen Anzeigenmarkt benötige ich ein CGI Scripts

Kann mir da jemand helfen ?

Gruß
Chevy Driver
« Letzte Änderung: 02. Dezember 2011, 08:01:47 von Chevy Driver »

(auto)bot

  • Team
  • Windows Me
  • Beiträge: 1943
  • "Windows as a Service"
« Antwort #1 am: 02. Dezember 2011, 15:46:13 »
Welche Sprache wird denn verwendet?

  • News-Redakteur
  • Windows 98SE
  • Beiträge: 917
  • »Ich bin ein freier Mensch«
« Antwort #2 am: 02. Dezember 2011, 22:10:47 »
Denke mal PHP

im anhang fidest Du die Beispiel Datei vom Anbieter
ich weiß nur nich in wie weit ich die abändern muss vor allen wo

                             <?php
#made simple XML escaping
function escapeString($str) {
  
$str str_replace('&','&amp;',$str);
  
$str str_replace('<','&lt;',$str);
  
$str str_replace('>','&gt;',$str);
  
$str str_replace('"','&quot;',$str);
  
$str str_replace("'",'&apos;',$str);
  return 
$str;
}

#print responce to AS in XML
function printXMLResponce($resHash) {
  echo <<<HTMLTEXT
<?xml version="1.0" encoding="ISO-8859-1"?>

<advertreturn>
<advertduration>{$resHash['duration']}</advertduration>
<advertlink>{$resHash['link']}</advertlink>
<comment>{$resHash['comment']}</comment>
</advertreturn>
HTMLTEXT;
}

#receive advert image if any exist
function receiveAdsImage($id) {
  $storeDir = '/some/directory/for/images';
  global $HTTP_POST_FILES;
  $lastError = NULL;
  $fileext = '';
  if (!$HTTP_POST_FILES['asimage']['size']) {
    #echo "No advert image.\n";
    return 1;
  } else {
    #echo $HTTP_POST_FILES['asimage']['name'];
    if (preg_match("/\.(jpg|jpeg|gif|png)$/i",$HTTP_POST_FILES['asimage']['name'],$ok)) {
      $fileext = strtolower($ok[1]);
    } else {
      $lastError = "Falscher Typ der Bild-Datei. Nur jpeg (jpg), png, gif sind erlaubt.";
      return;
    }
    if (!move_uploaded_file($HTTP_POST_FILES['asimage']['tmp_name'], "{$storeDir}/{$id}.{$fileext}")) {
      $lastError = "Fehler bei der Erzeugung der Bild-Datei.";
      return;
    }
  }
  return 2;
}

#read input parameters
$username    = $HTTP_POST_VARS["username"];
$firstname = $HTTP_POST_VARS["firstname"];
$telephone    = $HTTP_POST_VARS["telephone"];
$zipcode = $HTTP_POST_VARS["zipcode"];
$areacode = $HTTP_POST_VARS["areacode"];
$country = $HTTP_POST_VARS["country"];
$street = $HTTP_POST_VARS["street"];
$town = $HTTP_POST_VARS["town"];
$email = $HTTP_POST_VARS["email"];
$fax = $HTTP_POST_VARS["fax"];
$link = $HTTP_POST_VARS["link"];
$category = $HTTP_POST_VARS["category"];
$subcategory = $HTTP_POST_VARS["subcategory"];
$categoryID  = $HTTP_POST_VARS["categoryID"];
$subcategoryID = $HTTP_POST_VARS["subcategoryID"];
$adverttype  = $HTTP_POST_VARS["adverttype"];
$busitype = $HTTP_POST_VARS["busitype"];
$advertheader = $HTTP_POST_VARS["advertheader"];
$advertbody = $HTTP_POST_VARS["advertbody"];
$adults_only = $HTTP_POST_VARS["adults_only"];
$advertID = $HTTP_POST_VARS["advertID"];
$action = $HTTP_POST_VARS["action"];
$xml = $HTTP_POST_VARS["xml"];
$lastError ='';
receiveAdsImage($advertID) or die ("FATAL: receiveAdsImage fatal error: ".$lastError."\n");;

$date = date('d.m.Y H:i:s');

$fp = fopen ("tester.txt","a") or die ("Couldn't open tester.txt");
fputs($fp,"---->$date<----\n");
fputs($fp,"Name: $username \n");
fputs($fp,"Vorname: $firstname \n");
fputs($fp,"Telefon: $telephone \n");
fputs($fp,"PLZ: $zipcode \n");
fputs($fp,"Vorwahl: $areacode \n");
fputs($fp,"Land-Vorwahl: $country \n");
fputs($fp,"Strasse: $street \n");
fputs($fp,"Stadt: $town \n");
fputs($fp,"Email: $email \n");
fputs($fp,"Fax: $fax \n");
fputs($fp,"URL: $link \n");
fputs($fp,"Kategorie: $category \n");
fputs($fp,"Unterkategorie: $subcategory \n");
fputs($fp,"KategorieID: $categoryID \n");
fputs($fp,"SubkategorieID: $subcategoryID \n");
fputs($fp,"Suchen-Bieten: $adverttype \n");
fputs($fp,"Privat-Gesch: $busitype \n");
fputs($fp,"Anzeigenkopf: $advertheader \n");
fputs($fp,"Anzeigentext: $advertbody \n");
fputs($fp,"Nur für Erwachsene: $adults_only \n");
fputs($fp,"ID der Anzeige: $advertID \n");
fputs($fp,"Action: $action \n");
fputs($fp,"XML-String: $xml \n");

fclose($fp);
$resHash['duration'] = escapeString('30');
$resHash['link']     = escapeString('http://www.test.de&<aaa>"\'');
$resHash['comment']  = escapeString('Anzeigenschleuder - Test: dieses Skript erhalten die Maerkte im Mitglied-Bereich unter: cgi-submission -> test.cgi');

printXMLResponce($resHash);
?>

  • Team
  • Windows Me
  • Beiträge: 1943
  • "Windows as a Service"
« Antwort #3 am: 02. Dezember 2011, 22:58:13 »
Denke mal PHP

im anhang fidest Du die Beispiel Datei vom Anbieter
ich weiß nur nich in wie weit ich die abändern muss vor allen wo
Ok, dabei kann ich dir jetzt so aus dem Stegreif auch nicht helfen, allein schon, weil ich die aufrufenden Scripts nicht kenne.
Ich müsste mich da erst reinarbeiten, aber dazu fehlt mir leider aktuell ein bissel die Zeit.
Aber für Infos und Tutorials zu PHP, kannst du mal hier oder hier nachschauen :wink
Falls du dann vor einem speziellen Problem stehst, stehe ich dir natürlich zur Verfügung, sofern meine Kenntnisse dafür ausreichen :wink
« Letzte Änderung: 03. Dezember 2011, 01:20:58 von SB »

  • News-Redakteur
  • Windows 98SE
  • Beiträge: 917
  • »Ich bin ein freier Mensch«
« Antwort #4 am: 04. Dezember 2011, 10:53:01 »
Danke SB,
aber bei dem ersten Link versteh ich kein Wort weil ich kein Englisch kann
und bei dem 2. kann ich nix finden was mir weiter hilft

  • News-Redakteur
  • Windows XP
  • Beiträge: 5001
Re: Erstellen eines CGI Scripts
« Antwort #5 am: 04. Dezember 2011, 11:41:24 »
Der 2. Link bringt bei mir eine Malware-Warnung!

Ich würde an Dein Problem einen Fachmann ansetzen. Bis Du das verstanden hast bist Du alt und grau...
« Letzte Änderung: 04. Dezember 2011, 11:43:20 von Noone »

  • News-Redakteur
  • Windows 98SE
  • Beiträge: 917
  • »Ich bin ein freier Mensch«
« Antwort #6 am: 04. Dezember 2011, 12:06:24 »
Der 2. Link bringt bei mir eine Malware-Warnung!

Ich würde an Dein Problem einen Fachmann ansetzen. Bis Du das verstanden hast bist Du alt und grau...

Bin ich doch jetzt schon :D
Ich dachte ja eventuell finde ich hier einen Fachmann

  • News-Redakteur
  • Windows XP
  • Beiträge: 5001
« Antwort #7 am: 04. Dezember 2011, 12:23:41 »
Wir sind doch alles nur Amateure. Profis und Fachleute würden Geld verlangen und damit ihr Geld verdienen...

  • News-Redakteur
  • Windows 98SE
  • Beiträge: 917
  • »Ich bin ein freier Mensch«
« Antwort #8 am: 12. Dezember 2011, 08:08:56 »
Also ich probiere mir hier dran die Finger wund
Ich hätte das ganze ja noch mal in Perl aber da steh ich genauso vor den Böhmischen Dörfern

#!/usr/bin/perl
#
# Version vom 10.12.03
#
# perl V 5.6.1 oder groesser notwendig
#
#
use strict;
use CGI qw(:standart);
use CGI::Carp qw(fatalsToBrowser);
use Fcntl qw(:DEFAULT);

use vars qw($lastError);

my $q = CGI->new();

print "Content-Type: text/html\n\n";

#read input parameters
my $username    = $q->param("username");
my $firstname = $q->param("firstname");
my $telephone    = $q->param("telephone");
my $zipcode = $q->param("zipcode");
my $areacode = $q->param("areacode");
my $country = $q->param("country");
my $street = $q->param("street");
my $town = $q->param("town");
my $email = $q->param("email");
my $fax = $q->param("fax");
my $link = $q->param("link");
my $category = $q->param("category");
my $subcategory = $q->param("subcategory");
my $categoryID  = $q->param("categoryID");
my $subcategoryID = $q->param("subcategoryID");
my $adverttype  = $q->param("adverttype");
my $busitype = $q->param("busitype");
my $advertheader = $q->param("advertheader");
my $advertbody = $q->param("advertbody");
my $adults_only = $q->param("adults_only");
my $advertID = $q->param("advertID");
my $action = $q->param("action");
my $xml = $q->param("xml");

# Get the current time.
my($date) = scalar(localtime());

# Append the data to a file.
open(F, ">>tester.txt");
print F "From $0 at $date\n";
#for $key (keys %CGI) {
#  print F "$key => $CGI{$key}\n";
#}
print F "Name: $username \n";
print F "Vorname: $firstname \n";
print F "Telefon: $telephone \n";
print F "PLZ: $zipcode \n";
print F "Vorwahl: $areacode \n";
print F "Land-Vorwahl: $country \n";
print F "Strasse: $street \n";
print F "Stadt: $town \n";
print F "Email: $email \n";
print F "Fax: $fax \n";
print F "URL: $link \n";
print F "Kategorie: $category \n";
print F "Unterkategorie: $subcategory \n";
print F "KategorieID: $categoryID \n";
print F "SubkategorieID: $subcategoryID \n";
print F "Suchen-Bieten: $adverttype \n";
print F "Privat-Gesch: $busitype \n";
print F "Anzeigenkopf: $advertheader \n";
print F "Anzeigentext: $advertbody \n";
print F "Nur für Erwachsene: $adults_only \n";
print F "ID der Anzeige: $advertID \n";
print F "Action: $action \n";
print F "XML-String: $xml \n";
close(F);

#print "<pre>\n";
receiveAdsImage($q) or die ("FATAL: receiveAdsImage fatal error: ".defined($lastError)?$lastError:$!."\n");
my $resHash;

$resHash->{'duration'} = escapeString('30');
$resHash->{'link'}     = escapeString('http://www.test.de');
$resHash->{'comment'}  = escapeString('Anzeigenschleuder - Test: dieses Skript erhalten die Maerkte im Mitglied-Bereich unter: cgi-submission -> test.cgi');

printXMLResponce($resHash);
#print "</pre>\n";

exit;

#recieve and store advert image file if exist
sub receiveAdsImage {
  my($query) = @_;
  $lastError = undef;
  unless (defined($query->param('asimage')) && ($query->param('asimage') !~ /^\w*$/)) {
    return 1;
  } else {
    #T print $query->param('asimage')."<br>\n";
    my $file = $query->upload('asimage');
    my $fileinfo = $query->uploadInfo($file);
    my $fileext;
    #determine file name as transmitted (full path may be included)
    my $filename = getFileName($file,$query->uploadInfo($file)->{'Content-Disposition'});
    #determine file extension
    if ($filename =~ /\.(jpg|jpeg|gif|png)$/i) {
      $fileext = lc($1);
    } else {
      $lastError = "Falscher Typ der Bild-Datei. Nur jpeg (jpg), png, gif sind erlaubt.";
      return;
    }
    #genertate random file name
    #my $fileID = generateID(10);
    my $advertID = $q->param("advertID");
    my $fileID = "pic-$advertID";
    #compose complete file name with random name and determined extension
    my $storeFile = "$fileID.$fileext";
    #Tprint "Size $storeFile= $filesize\n<br>";
    if (!$file && $query->cgi_error) {
      $lastError = "Fehler beim Holen der Bild-Datei im CGI.";
      return;
    }
    if (not sysopen FILE, "$storeFile", O_EXCL | O_CREAT | O_WRONLY, 0600) {
      $lastError = "Fehler bei der Erzeugung der Bild-Datei. ($!)";
      return;
    } else {
      my $buffer   = "";
      my $BUFFER_1K = 1024;
      my ($fsize,$rsize) = (0,0);
      binmode FILE;
      while (($rsize = read ($file, $buffer, $BUFFER_1K))) {
        print FILE $buffer or return; #print("Fehler beim Schreiben der Bild-Datei. ($!)\n");
        $fsize += $rsize;
      }
      close FILE;
      # print ("Store image file (name=$storeFile,size = $fsize)\n");
      return 2;
    }
  }
}

#Used in receiveAdsImage function
sub getFileName {
  my ($cginame, $disp) = @_;
  my $name;
  if ($disp =~ /filename\=\"(.+)\"/) {
    $name = ($1);
  } else {
    $name = $cginame;
  }
  return $name;
}

#generate random string $idSize chars length
sub generateID {
  my $idSize = shift;
  $idSize = 8 if not defined($idSize);
  my @chars = ("A".."Z","a".."z",1..9);
  return join("", @chars[ map{rand @chars} (1..$idSize) ]);
}

sub escapeString {
  my $res = shift;
  $res =~ s/\&/\&amp;/g;
  $res =~ s/\</\&lt;/g;
  $res =~ s/\>/\&gt;/g;
  $res =~ s/\"/\&quot;/g;
  $res =~ s/\'/\&apos;/g;
  return $res;
}

sub printXMLResponce {
  $resHash = shift;
  print <<HTMLTEXT;
<?xml version="1.0" encoding="ISO-8859-1"?>
<advertreturn>
<advertduration>$resHash->{'duration'}</advertduration>
<advertlink>$resHash->{'link'}</advertlink>
<comment>$resHash->{'comment'}</comment>
</advertreturn>
HTMLTEXT
}

windows forum anlegen offline erstellen script abfragen xml file shell
use skript cgi sub go-windows cgi-scripte printxmlresponce yms 46751780 bgq
CGI files