Kein Problem. Hast du denn PHP oder CGI/Perl auf deinem Server? Desweiteren wäre es wichtig, genau zu wissen, wie dein HTML-Formular bis jetzt aussieht.
Beiträge von Eckard41
-
-
Wenn jemand einen solchen "Quellcode" hätte, hätte er vielmehr eine komplette KI-Engine und würde sich damit irgendwo dusselich verdienen, wohl kaum aber diese bahnbrechende Entwicklung in diesem Forum posten.
-
Ich versuchs mal:
PHP
Alles anzeigen<html> <head> <title>e auf beliebig viele Nachkommastellen</title> <style> body {font-family: Verdana; font-size: 11px; color: #0000ff;} </style> </head> <body> <?php if (isset($_POST["submit"])){ // Eigentliche Berechnung auf Grundlage der Formel 1 + 1/1! + 1/2! + ... + 1/n! $x = 1; // Potenzwert, hier 1 (e^1) // Eingabe abfangen & 1000er-Sperre $accuracy = (ctype_digit($_POST["accuracy"]) && $_POST["accuracy"] <= 1000) ? $_POST["accuracy"] : 10; $e = $x + 1; // erster Abschnitt der Formel (1+ ...) $i_fak = 2; // Fakultaet von 1 ueberspringen, da 1! = 1 und direkt zu 2! $potenz = $x; for($i=3;$i<=$accuracy;$i++) { // So viele Durchlaeufe wie Nachkommastellen (die jeweils letzten jedoch unnoetig, leider nicht vermeidbar) $potenz = bcmul($potenz, $x, $accuracy+2); // Nur wichtig fuer die Berechnung anderer Potenzwerte, nicht fuer $x = 1 $result = bcdiv($potenz, $i_fak, $accuracy+2); // Aufzuaddierendes Zwischenergebnis; Abschnitt der Formel (n/n!) $e = bcadd($e, $result, $accuracy+2); // Aktuelles e berechnen; Abschnitt der Formel ( + n/n!) printf("1E-%0".strlen((string)$accuracy)."d|\n", $i); // Formatierte Ausgabe der aktuellen Genauigkeit (Nachkommastellen) $i_fak = bcmul($i_fak, $i, $accuracy+2); // Berechnen der Fakultaet von $i fuer den nachesten Durchlauf } echo " "; echo "[b]e=".substr($e, 0, $accuracy)."[/b]"; } ?> <form action=<?php echo $_SERVER["PHP_SELF"]; ?> method="post"> e auf <input style="width: 32px; border-style: solid; border-color: #0000ff; border-width: 1px;" type="text" name="accuracy" /> Nachkommastellen <input style="border-style: solid; border-color: #0000ff; border-width: 1px;" type="submit" name="submit" value="berechnen"/> ! </form> </body> </html>
-
Ich hoffe, es macht dir nichts aus, wenn ich mich nochmal bezüglich der Sprache umentschieden habe.
Das ganze in PHP:
Code
Alles anzeigen$x = 1; $accuracy = 1000; // Auf wieviele Nachkommastellen? $e = $x + 1; $i_fak = 2; $potenz = $x; for($i=3;$i<=$accuracy;$i++) { $potenz = bcmul($potenz, $x, $accuracy+2); $result = bcdiv($potenz, $i_fak, $accuracy+2); $e = bcadd($e, $result, $accuracy+2); printf("1E-%0".strlen((string)$accuracy)."d|\n", $i); $i_fak = bcmul($i_fak, $i, $accuracy+2); } echo " "; echo "[b]".substr($e, 0, $accuracy)."[/b]";
Und in leicht abgeänderter Form zum ausprobieren auf meinem Webserver: http://area53.dyndns.org/e.php
Allerdings hab ich mal eine Begrenzung auf 1000 Nachkommastellen eingebaut, damit nicht das halbe PPF in Versuchung kommt, die erste Million Stellen übers Wochenende auf meinem PC auszurechnen.Hier gibts übrigens die Rechenkontrolle:
http://antwrp.gsfc.nasa.gov/htmltest/gifcity/e.1mil -
*Applaus* ;P
Natürlich ist es nicht schwer und gleichzeitig doch erstaunlich, was man mit der recht einfachen Syntax in VB anstellen kann.Ich versuchs auf jeden Fall mal und quäl mich nochmal durch Datentypen und deren Nachkommastellen in C++.
-
*hust* Tja, ich fürchte das ist die Rechengenauigkeit von VB...
Wie wärs, wenn wir das morgen... na schön, heute mittag nochmal mit C++ versuchen? -
Das Script kann man recht einfach browserunabhängig schreiben, indem man das b-Tag gescheit anspricht. Wenn es doch sowieso schon eine Id hat, wieso dann nich darauf zugreifen?
Zitat<script language="JavaScript">
<!--
var countDownInterval=15;
var countDownTime=countDownInterval;function countDown()
{
--countDownTime;
if (countDownTime < 0)
{
countDownTime=countDownInterval;
}
document.getElementById("countDownText").firstChild.data = countDownTime;
setTimeout("countDown()", 1000);
if (countDownTime == 0)
{
location.href="http://www.Seite.de";
}
}
// -->
</script><b id="countDownText">15[/b]
<script language="JavaScript">
<!--
setTimeout("countDown()", 1000);
// -->
</script> -
Nein, du kannst dem Frame keine List-Funktionen zuweisen.
Ein Frame ist ein absolut passives Steuerelement und stellt wirklich nur diesen optischen Rahmen dar. Zieh doch einfach die Listbox auf das Frame und nimm meinen Code...Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
Den Abschnitt brauchst du nicht, da du vom Frame keine Ereignisse abfangen werden musst.
Standard-Exe ist ok, zum Testen genügt allerdings ein Klick auf Ausführen oder F5.EDIT:
Achja und nenn die Sub genauso wie deinen Button, also Command1.
Kein Wunder, dass nichts passiert: -
Willst dus nicht lieber mit C++ versuchen? Da gibts jede Menge kostenlose Compiler und für sowas ist die Sprache wohl auch geeigneter.^^
Na gut, aber da du dir schonmal die Mühe gemacht hast...Eigentlich hast du das meiste schon richtig gemacht
Bloß erhälst du mit Print E nur eine Ausgabe im Debugfensterchen.Versuch mal diesen Code (aber lass die List-Box auf dem Formular):
-
Kill (Dateiname)
-
-
-
Und in welcher Sprache? Hast du PHP zur Verfügung? Wenn ja, dann is das ne Sache von ein paar Minuten, bei Java Script weigere ich mich allerdings.
-
PHP
Alles anzeigen<?php $server = "localhost"; $dbase = "usr_web32_1"; $user = "???"; $pw = "???"; $dlink = mysql_connect($server, $user, $pw) or die ("Fehler: Es konnte keine Verbindung zur Datenbank hergestellt werden! \n[Details]".mysql_error()); mysql_select_db($dbase, $dlink) or die ("Fehler: Datenbank konnte nicht ausgewaehlt werden! \n[Details]".mysql_error()); $sql = "UPDATE shoutbox SET name = 'Gott' WHERE id = '54'"; $result = mysql_query($sql, $dlink); if(!$result) { print("SQL-Fehler:".mysql_error()); } else { print("SQL-Query ausgefuehrt!"); } // Nicht vergessen, die Verbindung wieder zu schliessen... mysql_close($dlink); ?>
-
<?=$variable;?>
Diese Kurzschreibweise funktioniert nicht immer, es ist - wenns denn klappt - das selbe. Ich hab mich für echo() entschieden, da allgemeingültig. Natürlich kannst du auf deinem Server auch die andere Schreibweise verwenden.&& entspricht AND genauso wie
OR
Dass in einem Buch eine solcher Stil verwendet wird, verwundert mich ziemlich. Wenn du mal auf einem Server arbeitest, bei dem die Fehlerconfiguration etwas schärfer eingestellt ist, wirst du damit eine Menge Notices ernten. Man sollte Formvariablen grade bei if-Abfragen immer mit isset() prüfen.
Ein Beispiel:Angenommen amount ist einmal leer, einmal besitzt es den Wert(!) 0. In beiden Fällen wird nach obigem Code nichts ausgegeben. Benutzt du dagegen isset() wird die 0 im Feld korrekterweise als Wert gezählt und gibt den ensprechenden Text aus. Das mag in deinem Beispiel keinen Unterschied machen, kann aber beispielsweise bei einem kleinen Taschenrechnerscript, wo die 0 unbedingt als Eintrag zählen muss, zu einiger Verwirrung führen.
-
Du hattest bei den select-Feldern keine Values angegeben. Daher waren die enspr. Formvariablen auch leer. Der Code war insgesamt nicht ganz sauber. Versuchs mal so...
PHP
Alles anzeigen<?='<?xml version="1.0" encoding="utf-8"?>';?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> <head> <title>{php/currency}.dermazta</title> <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" /> </head> <body> <?php if (isset($_POST['amount'])) // Prüfung, ob Feld ausgefüllt { $_POST['amount'] = str_replace(",", ".", $_POST['amount']); $from = array('dm' => 0.51, 'usd' => 1.21, 'gbp' => 0.66, 'euro' => 1); $to = array('dm' => 1/$from['dm'], 'usd' => 1/$from['usd'], 'gbp' => 1/$from['gbp'], 'euro' => 1); $result = round($from[$_POST['cfrom']] * $_POST['amount'] * $to[$_POST['cto']], 2); echo " ".$_POST['amount']." ".strtoupper($_POST['cfrom'])." sind ".$result." ".strtoupper($_POST['cto']).".</p>"; } ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> Währung <select name="cfrom" size="1"> <?php echo "<option "; if (isset($_POST['cfrom']) && $_POST['cfrom'] == 'dm') { echo "selected"; } echo " value=\"dm\">DM</option>"; echo "<option "; if (isset($_POST['cfrom']) && $_POST['cfrom'] == 'usd') { echo "selected"; } echo " value=\"usd\">USD</option>"; echo "<option "; if (isset($_POST['cfrom']) && $_POST['cfrom'] == 'gbp') { echo "selected"; } echo " value=\"gbp\">GBP</option>"; echo "<option "; if (isset($_POST['cfrom']) && $_POST['cfrom'] == 'euro'){ echo "selected"; } echo " value=\"euro\">Euro</option>"; ?> </select> Zielwährung <select name="cto" size="1"> <?php echo "<option "; if (isset($_POST['cto']) && $_POST['cto'] == 'dm') { echo "selected"; } echo " value=\"dm\">DM</option>"; echo "<option "; if (isset($_POST['cto']) && $_POST['cto'] == 'usd') { echo "selected"; } echo " value=\"usd\">USD</option>"; echo "<option "; if (isset($_POST['cto']) && $_POST['cto'] == 'gbp') { echo "selected"; } echo " value=\"gbp\">GBP</option>"; echo "<option "; if (isset($_POST['cto']) && $_POST['cto'] == 'euro'){ echo "selected"; } echo " value=\"euro\">Euro</option>"; ?> </select> Betrag <input name="amount" size="20" type="text" value="<?php if (isset($_POST['amount'])) echo $_POST['amount']; ?>" /> <input name="submit" type="submit" value="konvertieren" /></p> </form> </body> </html>
-
Den Code kann man wohl eindeutig als PHP identifizieren. Wenn auch ziemlich schrecklich programmiert.
Im Ernst, dieses System ist (unnötigerweise) wahnsinnig serverbelastend geschrieben. Teilweise wird für jede SQL-Query eine neue Datenbankverbindung hergestellt.
Strukturiert ist der Code auch nicht, das macht es nicht leicht für jemanden, der das ganze fortführen soll.Wen suchst du denn, jemanden, der Änderungen am Code & am Layout vornehmen soll (bzw. den PHP-Code mal gründlich überarbeitet), oder tatsächlich einen langfristigen Webmaster, der das Projekt weiterführt?
Bei ersterem, könnte ich dir helfen. -
-
Das hat nichts mit PHP5 an sich zu tun, sondern damit, dass das Script unsauber ist. In PHP5 ist standardmäßig die Einstellung register_globals deaktiviert. (Und das ist auch gut so.) Deshalb solltest du Formular-Variablen mit den Arrays $_GET bzw. $_POST abfragen, was auch der Übersichtlichkeit im Code dient.
PHP
Alles anzeigen<?php if (!empty($_POST["name"]) && !empty($_POST["email"]) && !empty($_POST["beschreibung"]) ) { $more = "From: " . $_POST["email"] . "\r\nReturn-Path: [email]post@domain.de[/email]\r\nContent-Type:text"; $body = "Herr/Frau " . $_POST["name"] . " mit der Email " . $_POST["email"] . " hat folgende Anfrage gestellt.\n Vor- und Nachname: " . $_POST["name"] . "\n Email-Adresse: " . $_POST["email"] . "\n Telefon: " . $_POST["telefon"] . "\n Fax: " . $_POST["$fax"] . "\n Unternehmen: " . $_POST["unternehmen"] . "\n Stadt: " . $_POST["stadt"] . "\n Homepage: " . $_POST["homepage"] . "\n Beschreibung: " . $_POST["beschreibung"] . "\n"; mail("-f [email]post@domain.de[/email]", $_POST["nachricht"], $body, $more); header("location: versendet.html"); } else { header("location: error.html"); } ?>
-
Erst einmal auch von mir ein großes Lob! Schaut doch wirklich professionell aus und wird einemso umfangreichern und informativem Forum auch gerecht.
Die Sache mit den Fragezeichen bei Umlauten kann ich bestätigen. Allerdings nur im Firefox. Das Problem tritt lediglich in Überschriften und bei Einträgen links im Menü auf. Vielleicht hast du ja übersehen, die Umlaute HTML-konform umzuwandeln!? Oder es liegt an der Schriftart.