MCTimotheus18 Geschrieben 20. April 2005 Teilen Geschrieben 20. April 2005 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 !!! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Flons Geschrieben 20. April 2005 Teilen Geschrieben 20. April 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
freq.9 Geschrieben 20. April 2005 Teilen Geschrieben 20. April 2005 @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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MCTimotheus18 Geschrieben 20. April 2005 Autor Teilen Geschrieben 20. April 2005 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 !! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
oneside Geschrieben 20. April 2005 Teilen Geschrieben 20. April 2005 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pentium Geschrieben 20. April 2005 Teilen Geschrieben 20. April 2005 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 ! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.