Zum Inhalt springen

CGI Skript in PHP umschreiben


Empfohlene Beiträge

Hallo Leute,

ich brauche ganz dringend eure Hilfe, eine Lehrstelle hängt für mich davon ab!!!

Ich soll bis heute Abend folgendes CGI Skript in PHP übersetzen und ich komme nur schleppend bis ganrnicht voran. Kann mir bitte mal jemand helfen.

Hier das CGI Skript:


#!/usr/bin/perl -w


#//Login V1.1 Enterprise

#//Written by MBolz 28.07.2004


#Deklarationen der Module

use strict;

use CGI;

use DBI;


#Deklarationen der Variablen

#CGI

my $cgi = new CGI();

#Übergabewerte

my $lng = $cgi->param('lng');

my $user = $cgi->param('user');

my $pass = $cgi->param('pass');

#Datenbank

open(DB,".db");

my($DB_NAME, $DB_USER, $DB_PASSWD) = split(/\t/, <DB>);

close DB;

my $DB_DSN = "DBI:mysql:database=$DB_NAME";

my $qry;

my @row;


#Verbindung zur Datenbank aufbauen

my $dbh = DBI->connect($DB_DSN, $DB_USER, $DB_PASSWD) or die "Fehler bei Datenbankverbindung: $!";


print $cgi->header;


if ($lng eq '')

{

	#Datenbank abfragen

	$qry = $dbh->prepare('SELECT Value FROM CVSConfig WHERE Setting = "default_language"') or die $dbh->errstr;

	$qry->execute() or die $dbh->errstr;

	@row = $qry->fetchrow_array();

	$lng=$row[0];

}


#Beschriftungen auslesen

$qry = $dbh->prepare('SELECT Text FROM CVSText WHERE ID = 1 AND Language = "'.$lng.'"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $strUser = $row[0];

$qry = $dbh->prepare('SELECT Text FROM CVSText WHERE ID = 2 AND Language = "'.$lng.'"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $strPass = $row[0];

$qry = $dbh->prepare('SELECT Text FROM CVSText WHERE ID = 3 AND Language = "'.$lng.'"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $strLogin = $row[0];

$qry = $dbh->prepare('SELECT Text FROM CVSText WHERE ID = 4 AND Language = "'.$lng.'"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $strUserErr = $row[0];

$qry = $dbh->prepare('SELECT Text FROM CVSText WHERE ID = 5 AND Language = "'.$lng.'"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $strPassErr = $row[0];

$qry = $dbh->prepare('SELECT Text FROM CVSText WHERE ID = 6 AND Language = "'.$lng.'"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $strLanguage = $row[0];

$qry = $dbh->prepare('SELECT Text FROM CVSText WHERE ID = 7 AND Language = "'.$lng.'"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $strHead = $row[0];

$qry = $dbh->prepare('SELECT Text FROM CVSText WHERE ID = 13 AND Language = "'.$lng.'"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $strUserFalse = $row[0];

$qry = $dbh->prepare('SELECT Text FROM CVSText WHERE ID = 14 AND Language = "'.$lng.'"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $strPassFalse = $row[0];


#Farben auslesen

$qry = $dbh->prepare('SELECT Value FROM CVSConfig WHERE Setting = "color_background"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $color_background=$row[0];

$qry = $dbh->prepare('SELECT Value FROM CVSConfig WHERE Setting = "color_text"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $color_text=$row[0];

$qry = $dbh->prepare('SELECT Value FROM CVSConfig WHERE Setting = "color_link"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $color_link=$row[0];

$qry = $dbh->prepare('SELECT Value FROM CVSConfig WHERE Setting = "color_vlink"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $color_vlink=$row[0];

$qry = $dbh->prepare('SELECT Value FROM CVSConfig WHERE Setting = "color_alink"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $color_alink=$row[0];

$qry = $dbh->prepare('SELECT Value FROM CVSConfig WHERE Setting = "color_sitebackground"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $color_sitebackground=$row[0];


$qry = $dbh->prepare('SELECT Value FROM CVSConfig WHERE Setting = "font"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $font=$row[0];

$qry = $dbh->prepare('SELECT Value FROM CVSConfig WHERE Setting = "font_size"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $font_size=$row[0];

$qry = $dbh->prepare('SELECT Value FROM CVSConfig WHERE Setting = "font_size_header"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $font_size_header=$row[0];


#Aktion nach Login auslesen

$qry = $dbh->prepare('SELECT Value FROM CVSConfig WHERE Setting = "after_login"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

my $afterlogin = $row[0];


print '<html>

<title></title>

<head>

<script>

function hidestatus()

{

window.status="";

return true;

}

if (document.layers)

document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT)

document.onmouseover=hidestatus

document.onmouseout=hidestatus

</script>

</head>

<body bgcolor="#'.$color_background.'" text="#'.$color_text.'" link="#'.$color_link.'" vlink="#'.$color_vlink.'" alink="#'.$color_alink.'" onLoad="site.user.focus();">

<font face="'.$font.'">

<table bgcolor="'.$color_sitebackground.'" border="0" align="center" cellpadding="0" cellspacing="0" height="90%" width="100%">

<tr>

<td valign="middle">';


if (-e 'images/logo.jpg')

{

	print '<div align="center">

	<img src="images/logo.jpg" border="0">

	<br><br>

	</div>';

}


print '

<div align="center">

<font size="'.$font_size_header.'">'.$strHead.'</font>

<br>

<br>

</div>

<form name="site" method="post" onSubmit="return login()" action="">

<div align="center"> 

<table border="0" cellspacing="0" cellpadding="0">

<tr>

<td><font size="'.$font_size.'">'.$strUser.' </font></td>

<td><input name="user" type="text" size="20" value="'.$user.'"></td>

</tr>

<tr>

<td><font size="'.$font_size.'">'.$strPass.' </font></td>

<td><input name="pass" type="password" size="20" value="'.$pass.'"></td>

</tr>

<tr>

<td><font size="'.$font_size.'">'.$strLanguage.' </font></td>

<td><select name="lng" onChange="deletevalues()">';


#Aktuelle Bezeichnung der Sprache auslesen

$qry = $dbh->prepare('SELECT ID, Description FROM CVSLanguages WHERE ID = "'.$lng.'"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();

print '<option selected value="'.$row[0].'">'.$row[1].'</option>';

$lng=$row[0];


#Liste füllen

$qry = $dbh->prepare('SELECT ID, Description FROM CVSLanguages WHERE ID <> "'.$lng.'"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

while(@row = $qry->fetchrow_array())

{

	print '<option value="'.$row[0].'">'.$row[1].'</option>';

}


print '</td>

</tr>

<tr>

<td> </td>

<td><input name="cmdSubmit" type="submit" value="'.$strLogin.'"></td>

</tr>

</table>

</div>

</form>

<script language="JavaScript">

function deletevalues()

{

site.user.value="";

site.pass.value="";

site.submit();

}

function login()

{

if(site.user.value == "")

{

alert("'.$strUserErr.'");

site.user.focus();

return false;

}

if(site.pass.value == "")

{

alert("'.$strPassErr.'");

site.pass.focus();

return false;

}

}

</script>';


#Passwort prüfen

$qry = $dbh->prepare('SELECT Pass FROM CVSUsers WHERE User = "'.$user.'"') or die $dbh->errstr;

$qry->execute() or die $dbh->errstr;

@row = $qry->fetchrow_array();


if ($qry->rows > 0)

{

	if ($row[0] eq $pass) 

	{

		print '<script language="JavaScript">site.action = "'.$afterlogin.'";site.submit()</script>';

	}

	else

	{

		print '<script language="JavaScript">alert("'.$strPassFalse.'");deletevalues();</script>';

	}

}

else

{

	if ($user ne '')

	{

		print '<script language="JavaScript">alert("'.$strUserFalse.'");deletevalues();</script>';

	}

}


print '</tr>

</td>

</table>

</body>

</html>';

und hier das, was ich bisher gemacht habe:


<html>
<head>

<title></title>
</head>

<body>
<?php
// Einbinden der Benutzerdaten-Datei
include('status/config.php');

// Verbindung zum Datenbankserver herstellen
$verbindung = mysql_connect($MySQL_Server, $MySQL_User, $MySQL_Pass);
if(!$verbindung) {
echo(mysql_error());
exit();
}
mysql_select_db($datenbankname, $verbindung);

// Wenn keine Sprache ausgewählt wurde verwende die default_language
if($lng == "") {
$qry = mysql_query("SELECT Value FROM CVSConfig WHERE Setting = 'default_language'");
if(!qry) {
echo(mysql_error());
}
$row = mysql_fetch_array($qry);
$lng = $row[0];
}

//Beschriftungen auslesen
$qry = mysql_query("SELECT Text FROM CVSText WHERE ID = 1 AND Language = '$lng'");
if(!qry) {
echo(mysql_error());
}
$row = mysql_fetch_array($qry);


?>
</body>
</html>
[/PHP]

Kann mir vielleicht bitte jemand bei übersetzen helfen ??????? BITTE !!!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo!

Ich habe mal eine Frage:

Sucht die Firma einen Azubi oder eine billige Arbeitskraft?

Du sollst Wissen vorweisen, bevor Du diese gelehrt bekommst?? Das klingt für mich mehr als unseriös.

Ich würde die Finger davon lassen.

Zu Deinem Code:

Da kann ich Dir leider nicht weiterhelfen.

Gruß

Florian

Link zu diesem Kommentar
Auf anderen Seiten teilen

@TopicStarter:

Du solltest dran denken, dass die PHP Syntax nicht unbedingt die gleiche ist wie bei PERL bzw. CGI... Du hast in deinem PHP Code bei den Queries bei der Kontrolle immer das $-Zeichen vergessen.

Ich bin nun kein Perl-Master aber wieso macht du immer und immer die gleichen Vorgänge? Wieso packst du die nicht irgendwie zusammen. Wäre doch einfacher und übersichtlicher.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eine kurze Frage nebenbei, wie wäre denn dieser Codeschnippsel richtig in PHP Code übersetzt:


<body bgcolor="#'.$color_background.'" text="#'.$color_text.'" link="#'.$color_link.'" vlink="#'.$color_vlink.'" alink="#'.$color_alink.'" onLoad="site.user.focus();">

<font face="'.$font.'">

<table bgcolor="'.$color_sitebackground.'" border="0" align="center" cellpadding="0" cellspacing="0" height="90%" width="100%">

Meine Lösung:


<body bgcolor='#$color_background' text='#$color_text' link='#$color_link' vlink='#$color_vlink' alink='#$color_alink' onLoad='site.user.focus();'>
<font face='$font'>
<table bgcolor='#$color_sitebackground' border='0' align='center' cellpadding='0' cellspacing='0' height='90%' width='100%'>
[/PHP]

Kurze Erläuterung: Die Farben stehen als XXXXXX Code in der Datenbank und werden als die oben verwendeten Variablen repräsentiert. Meine Frage richtet sich auf die [b]Codeschreibweise[/b]: bgcolor='#$color_background' denn die Raute muss ja davor gesetzt werden damit das ganze als HEX-Code erkannt wird.

Danke für eure Hilfe !!

Link zu diesem Kommentar
Auf anderen Seiten teilen

So wie du das geschrieben hast, werden keine Werte der Variablen ausgegeben.

<body bgcolor='#$color_background' text='#$color_text' link='#$color_link' vlink='#$color_vlink' alink='#$color_alink' onLoad='site.user.focus();'> 

    <font face='$font'> 

    <table bgcolor='#$color_sitebackground' border='0' align='center' cellpadding='0' cellspacing='0' height='90%' width='100%'> 
Wenn, dann müsstest Du PHP-Bereiche deklarieren:
<body bgcolor='#<?$color_background?>' text='#<?$color_text?>' link='#<?$color_link?>' vlink='#<?$color_vlink?>' alink='#<?$color_alink?>' onLoad='site.user.focus();'> 

    <font face='<?$font?>'> 

    <table bgcolor='#<?$color_sitebackground?>' border='0' align='center' cellpadding='0' cellspacing='0' height='90%' width='100%'> 

oder du gibst den gesamten Code innerhalb eines PHP-Bereiches mit echo oder print aus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hmm, also helfen kann man da wohl, aber meinste wirklich wenn du das fertig hast das die dich dann nehmen ??!!

du willste ne ausblidung machen !! AHA !!!

ALSO WILLST DU DOCH DORT PROGRAMMIEREN LERNEN ODER ?!

Verstehe erhlich gesagt nicht die Vorgehensweise dieser Firma !!!!!

Wenn ich ehrlich bin ist das schöner SPAGHETTICODE bsp. das mit den Languages auslesen mir scheint es so als wenn STRG C & STRG V schneller und besser war als logisches denken :beagolisc

Versteh das bitte nicht falsch, es soll nichts gegen dich sein !! Doch leider kenne ich diese Masche von Firmen die einen vor einen Vorstellungsgespräch Quellcode schicken den man mal überarbeiten soll ! :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...