1
Hallo
Ich, als totaler Leie in PHP, habe einen Code, der für jeden "Profi" sicherlich einige Mängel aufweist. Daher würde ich mich über Verbesserungsvorschläge freuen:
Vielen Dank.
Ich, als totaler Leie in PHP, habe einen Code, der für jeden "Profi" sicherlich einige Mängel aufweist. Daher würde ich mich über Verbesserungsvorschläge freuen:
<html>
<head>
<?php
include("zus/namen.php");
?>
<title>Taschenrechner / <?php echo $name["nrrechner"]; ?></title>
<link rel="stylesheet" type="text/css" href="zus/layout.css">
</head>
<body>
<?php
echo $name["linkrechner"];
?>
- <a href="#" onclick="javascript:window.open('zus/v.rechner.php','','height=550,width=700,scrollbars=0,toolbar=0,resizable=1,menubar=0,directories=0,status=0')">Versionshistory <b>dieses Rechners</b> ansehen</a><br>
<table>
<tr>
<td width="453"> Mit diesem Rechner haben Sie die Möglichkeit mit den 4 Grundrechenarten zu arbeiten. Nebenbei bietet dieser Rechnung die Funktion das Ergebnis zu runden (Stelle kann bestimmt werden) und per eMail an eine gewünschte Adresse zu senden (Obacht: Die IP wird gespeichert.).
</td>
</tr>
</table>
<br><br><br>
<table>
<tr>
<td width="160" align="center" bgcolor="#C7C7C7"><b>Pflichtangaben</td>
<td width="190" align="center" bgcolor="#C7C7C7"><b>optionale Angaben</td>
</tr>
<tr>
<td width="160">
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<br><b>Zahl 1:  <input type="text" size="8" name="a" maxlength="8"><br>
Zahl 2:  <input type="text" size="8" name="b" maxlength="8"></b><br><br>
<select name="methode" size="1">
<option value="add">Addieren            +</option>
<option value="sub">Subtrahieren      -</option>
<option value="multi">Multiplizieren      *</option>
<option value="divi">Dividieren           /</option>
<option value="divirest">Dividieren mit Rest</option>
</select>
</td>
<td width="220">
<br>Ergebnis runden auf die Stelle
<input type="text" name="stelle" size="1" maxlength="1"><br><br>
Ergebnis an folgende eMail senden:<br>
<input type="text" name="email" size="30" maxlength="40">
</td>
</tr>
</table>
<br><input type="hidden" name="checked" value="1">
<input type="hidden" name="ip" value="<?php echo $REMOTE_ADDR ?>">
<input type="submit" value="Ergebnis berechnen">
<input type="reset" value="Felder zurücksetzen">
<?php
    $a = $_POST["a"];
    $b = $_POST["b"];
    $stelle = $_POST["stelle"];
    $empfaenger = $_POST["email"];
    $speicherung = $_POST["ip"]." - ".date("d.m.Y")." / ".date("H:i:s")." - ".$methode;
    
    $tagesname = array("<font color=\"red\">Sonntag</font>", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
    $wochentag = $tagesname[date(w)];
    
    $betreff = "Taschenrechner cpox.de - Ergebnis zusenden";
    $absender = "webmaster@cpox.de";
    $emailone = "Sehr geehrte Damen und Herren!\n";
    $emailtwo = "\nSollten Sie diese eMail nicht angefordert haben, wenden Sie sich bitte an den Nutzer der IP ".$_POST["ip"]." oder schicken Sie eine eMail an webmaster@cpox.de.\n\nMit freundlichen Grüßen,\n***";
    $emailsend = "Das Ergebnis wurde am <b>".$wochentag."</b>, den <b>".date("d.m.Y")."</b> um <b>".date("H:i:s")." Uhr</b><br> von der IP <b>".$_POST["ip"]."</b> angefordert und an <b>".$empfaenger."</b> geschickt.<br><br>";
    $rechnung = "Rechnung und Ergebnis: ";
    $gerund = "Ergebnis gerundet auf die ".$stelle.". Stelle: ";
    
    $re = "^[a-z0-9\#\.\_\=\+\~\-]+@([a-z0-9\-]+\.)+[a-z]{2,4}$";
    $erg = ereg($re,$empfaenger);  
    
    
    if ((!is_numeric($a) || !is_numeric($b)) && $_POST["checked"]) {
    return;
// Ergebnis wird gerundet und an die  eMail geschickt        
    } elseif ($empfaenger && $stelle) {          
      if ($a == "0" OR $b == "0" OR $stelle == "0" && $_POST["checked"]) {
         echo "<br><br>";
         echo $name["linie"];
         echo "<font color=\"red\">Sie haben die Zahl 0 angegeben. Diese wird nicht akzeptiert.</font>";   
      }
      else {     
    $addip = fopen ("zus/ips.txt","a");
	  fwrite ($addip, "
$speicherung");
	  fclose ($addip);   
       switch ($_POST["methode"])
    {        
         case "add": 
             $Ergeb = $a + $b;
             echo "<br><br>";
             echo $name["linie"];
         if ($erg == false) {
             echo "Sie haben leider eine ungültige eMail angegeben.<br><br>";
             echo "<font color=\"green\">".$rechnung."<b>".$a." + ".$b." = ".$Ergeb."</b><br>";
             $runden = round($Ergeb,$stelle);
             $gerundet = number_format($Ergeb, $stelle, '.', '');
             echo $gerund."<b>".$gerundet."</b></font>";
         } else {        
             echo $emailsend;
             echo "<font color=\"green\">".$rechnung."<b>".$a." + ".$b." = ".$Ergeb."</b><br>";
             $runden = round($Ergeb,$stelle);
             $gerundet = number_format($Ergeb, $stelle, '.', '');
             echo $gerund."<b>".$gerundet."</b></font>";
             $message = $emailone."
             ".$rechnung." ".$a." + ".$b." = ".$Ergeb."
             ".$gerund." ".$gerundet."
             ".$emailtwo;
             @mail($empfaenger,$betreff,$message,$absender);
          }   
             break;      
         case "sub":
             $Ergeb = $a - $b;
             echo "<br><br>";
             echo $name["linie"];
           if ($erg == false) {
             echo "Sie haben leider eine ungültige eMail angegeben.<br><br>";
             echo "<font color=\"green\">".$rechnung."<b>".$a." - ".$b." = ".$Ergeb."</b><br>";
             $runden = round($Ergeb,$stelle);
             $gerundet = number_format($Ergeb, $stelle, '.', '');
             echo $gerund."<b>".$gerundet."</b></font>";
         } else {        
             echo $emailsend;
             echo "<font color=\"green\">".$rechnung."<b>".$a." - ".$b." = ".$Ergeb."</b><br>";
             $runden = round($Ergeb,$stelle);
             $gerundet = number_format($Ergeb, $stelle, '.', '');
             echo $gerund."<b>".$gerundet."</b></font>";
             $message = $emailone."
             ".$rechnung." ".$a." - ".$b." = ".$Ergeb."
             ".$gerund." ".$gerundet."
             ".$emailtwo;
             @mail($empfaenger,$betreff,$message,$absender);
          }   
             break;
         case "multi":
             $Ergeb = $a * $b;
             echo "<br><br>";
             echo $name["linie"];
         if ($erg == false) {
             echo "Sie haben leider eine ungültige eMail angegeben.<br><br>";
             echo "<font color=\"green\">".$rechnung."<b>".$a." * ".$b." = ".$Ergeb."</b><br>";
             $runden = round($Ergeb,$stelle);
             $gerundet = number_format($Ergeb, $stelle, '.', '');
             echo $gerund."<b>".$gerundet."</b></font>";
         } else {         
             echo $emailsend;
             echo "<font color=\"green\">".$rechnung."<b>".$a." * ".$b." = ".$Ergeb."</b><br>";
             $runden = round($Ergeb,$stelle);
             $gerundet = number_format($Ergeb, $stelle, '.', '');
             echo $gerund."<b>".$gerundet."</b></font>";
             $message = $emailone."
             ".$rechnung." ".$a." * ".$b." = ".$Ergeb."
             ".$gerund." ".$gerundet."
             ".$emailtwo;
             @mail($empfaenger,$betreff,$message,$absender);
          }   
             break;
         case "divi":
             $Ergeb = $a / $b;
             echo "<br><br>";
             echo $name["linie"];
         if ($erg == false) {;
             echo "Sie haben leider eine ungültige eMail angegeben.<br><br>";
             echo "<font color=\"green\">".$rechnung."<b>".$a." / ".$b." = ".$Ergeb."</b><br>";
             $runden = round($Ergeb,$stelle);
             $gerundet = number_format($Ergeb, $stelle, '.', '');
             echo $gerund."<b>".$gerundet."</b></font>";
         } else {       
             echo $emailsend;
             echo "<font color=\"green\">".$rechnung."<b>".$a." / ".$b." = ".$Ergeb."</b><br>";
             $runden = round($Ergeb,$stelle);
             $gerundet = number_format($Ergeb, $stelle, '.', '');
             echo $gerund."<b>".$gerundet."</b></font>";
             $message = $emailone."
             ".$rechnung." ".$a." / ".$b." = ".$Ergeb."
             ".$gerund." ".$gerundet."
             ".$emailtwo;
             @mail($empfaenger,$betreff,$message,$absender);
          }   
             break;
         case "divirest":
             $Ergeb = $a % $b;
             echo "<br><br>";
             echo $name["linie"];
         if ($erg == false) {
             echo "Sie haben leider eine ungültige eMail angegeben.<br><br>";
             echo "<font color=\"green\">".$rechnung."<b>".$a." / ".$b." = ".$Ergeb." = ".$Ergeb."</b><br>";
             $runden = round($Ergeb,$stelle);
             $gerundet = number_format($Ergeb, $stelle, '.', '');
             echo $gerund."<b>".$gerundet."</b></font>";
         } else {          
             echo $emailsend;
             echo "<font color=\"green\">".$rechnung."<b>".$a." / ".$b." = ".$Ergeb." = ".$Ergeb."</b></font>";
             $message = $emailone."
             ".$rechnung." ".$a." / ".$b." = ".$Ergeb." = ".$Ergeb."
             ".$emailtwo;
             @mail($empfaenger,$betreff,$message,$absender);
          }   
             break;    
    }
    }
// Ergebnis wird nur an die eMail geschickt
    } elseif ($empfaenger) {  
      if ($a == "0" OR $b == "0" && $_POST["checked"]) {
         echo "<br><br>";
         echo $name["linie"];
         echo "<font color=\"red\">Sie haben die Zahl 0 angegeben. Diese wird nicht akzeptiert.</font>";
      }
      else {   
    $addip = fopen ("zus/ips.txt","a");
	  fwrite ($addip, "
$speicherung");
       switch ($_POST["methode"])
    {     
         case "add":
             $Ergeb = $a + $b;
             echo "<br><br>";
             echo $name["linie"];
         if ($erg == false) {
             echo "Sie haben leider eine ungültige eMail angegeben.<br><br>";
             echo "<font color=\"green\">".$rechnung."<b>".$a." + ".$b." = ".$Ergeb."</b></font>";
         } else {          
             echo $emailsend;
             echo "<font color=\"green\">".$rechnung."<b>".$a." + ".$b." = ".$Ergeb."</b></font>";
             $message = $emailone."
             ".$rechnung." ".$a." + ".$b." = ".$Ergeb."
             ".$emailtwo;
             @mail($empfaenger,$betreff,$message,$absender);
          }
             break;
         case "sub":
             $Ergeb = $a - $b;
             echo "<br><br>";
             echo $name["linie"];
         if ($erg == false) {
             echo "Sie haben leider eine ungültige eMail angegeben.<br><br>";
             echo "<font color=\"green\">".$rechnung."<b>".$a." - ".$b." = ".$Ergeb."</b></font>";
         } else {          
             echo $emailsend;
             echo "<font color=\"green\">".$rechnung."<b>".$a." - ".$b." = ".$Ergeb."</b></font>";
             $message = $emailone."
             ".$rechnung." ".$a." - ".$b." = ".$Ergeb."
             ".$emailtwo;
             @mail($empfaenger,$betreff,$message,$absender);
          }
             break;
         case "multi":
             $Ergeb = $a * $b;
             echo "<br><br>";
             echo $name["linie"];
         if ($erg == false) {
             echo "Sie haben leider eine ungültige eMail angegeben.<br><br>";
             echo "<font color=\"green\">".$rechnung."<b>".$a." * ".$b." = ".$Ergeb."</b></font>";
         } else {          
             echo $emailsend;
             echo "<font color=\"green\">".$rechnung."<b>".$a." * ".$b." = ".$Ergeb."</b></font>";
             $message = $emailone."
             ".$rechnung." ".$a." * ".$b." = ".$Ergeb."
             ".$emailtwo;
             @mail($empfaenger,$betreff,$message,$absender);
          }
             break;
         case "divi":
             $Ergeb = $a / $b;
             echo "<br><br>";
             echo $name["linie"];
         if ($erg == false) {
             echo "Sie haben leider eine ungültige eMail angegeben.<br><br>";
             echo "<font color=\"green\">".$rechnung."<b>".$a." / ".$b." = ".$Ergeb."</b></font>";
         } else {          
             echo $emailsend;
             echo "<font color=\"green\">".$rechnung."<b>".$a." / ".$b." = ".$Ergeb."</b></font>";
             $message = $emailone."
             ".$rechnung." ".$a." / ".$b." = ".$Ergeb."
             ".$emailtwo;
             @mail($empfaenger,$betreff,$message,$absender);
          }
             break;
          case "divirest":
             $Ergeb = $a % $b;
             echo "<br><br>";
             echo $name["linie"];
         if ($erg == false) {
             echo "Sie haben leider eine ungültige eMail angegeben.<br><br>";
             echo "<font color=\"green\">".$rechnung."<b>".$a." / ".$b." = ".$Ergeb." = ".$Ergeb."</b></font>";
         } else {          
             echo $emailsend;
             echo "<font color=\"green\">".$rechnung."<b>".$a." / ".$b." = ".$Ergeb." = ".$Ergeb."</b></font>";
             $message = $emailone."
             ".$rechnung." ".$a." / ".$b." = ".$Ergeb." = ".$Ergeb."
             ".$emailtwo;
             @mail($empfaenger,$betreff,$message,$absender);
          }
             break;
             
    }
    }
// Ergebnis wird nur gerundet
    } elseif ($stelle) {
      if (($a == "0" OR $b == "0" OR $stelle == "0") && $_POST["checked"]) {
         echo "<br><br>";
         echo $name["linie"];
         echo "<font color=\"red\">Sie haben die Zahl 0 angegeben. Diese wird nicht akzeptiert.</font>";
      }
      else {   
    $addip = fopen ("zus/ips.txt","a");
	  fwrite ($addip, "
$speicherung");
         switch ($_POST["methode"]) 
    {
         case "add":
             $Ergeb = $a + $b;
             echo "<br><br>";
             echo $name["linie"];
             echo "<font color=\"green\">".$rechnung."<b>".$a." + ".$b." = ".$Ergeb."</b><br>";
             $runden = round($Ergeb,$stelle);
             $gerundet = number_format($Ergeb, $stelle, '.', '');
             echo $gerund."<b>".$gerundet."</b></font>";
             break;
         case "sub":
             $Ergeb = $a - $b;
             echo "<br><br>";
             echo $name["linie"];
             echo "<font color=\"green\">".$rechnung."<b>".$a." - ".$b." = ".$Ergeb."</b><br>";
             $runden = round($Ergeb,$stelle);
             $gerundet = number_format($Ergeb, $stelle, '.', '');
             echo $gerund."<b>".$gerundet."</b></font>";
             break;
         case "multi":
             $Ergeb = $a * $b;
             echo "<br><br>";
             echo $name["linie"];
             echo "<font color=\"green\">".$rechnung."<b>".$a." * ".$b." = ".$Ergeb."</b><br>";
             $runden = round($Ergeb,$stelle);
             $gerundet = number_format($Ergeb, $stelle, '.', '');
             echo $gerund."<b>".$gerundet."</b></font>";
             break;
         case "divi":
             $Ergeb = $a / $b;
             echo "<br><br>";
             echo $name["linie"];
             echo "<font color=\"green\">".$rechnung."<b>".$a." / ".$b." = ".$Ergeb."</b><br>";
             $runden = round($Ergeb,$stelle);
             $gerundet = number_format($Ergeb, $stelle, '.', '');
             echo $gerund."<b>".$gerundet."</b></font>";
             break;
         case "divirest":
             $Ergeb = $a % $b;
             echo "<br><br>";
             echo $name["linie"];
             echo "<font color=\"green\">".$rechnung."<b>".$a." / ".$b." = ".$Ergeb." = ".$Ergeb."</b></font>";
             break; 
    }
    }
// Ergebnis wird nur ausgegeben
    } else {
      if ($a == "0" OR $b == "0" && $_POST["checked"]) {
         echo "<br><br>";
         echo $name["linie"];
         echo "<font color=\"red\">Sie haben die Zahl 0 angegeben. Diese wird nicht akzeptiert.</font>";
      }
      else {   
    $addip = fopen ("zus/ips.txt","a");
	  fwrite ($addip, "
$speicherung");
         switch ($_POST["methode"])     
    {
        case "add":
             $Ergeb = $a + $b;
             echo "<br><br>";
             echo $name["linie"];
             echo "<font color=\"green\">".$rechnung."<b>".$a." + ".$b." = ".$Ergeb."</b><br></font>";
             break;
        case "sub":
             $Ergeb = $a - $b;
             echo "<br><br>";
             echo $name["linie"];
             echo "<font color=\"green\">".$rechnung."<b>".$a." - ".$b." = ".$Ergeb."</b><br></font>";
             break;
        case "multi":
             $Ergeb = $a * $b;
             echo "<br><br>";
             echo $name["linie"];
             echo "<font color=\"green\">".$rechnung."<b>".$a." * ".$b." = ".$Ergeb."</b><br></font>";
             break;
        case "divi":
             $Ergeb = $a / $b;
             echo "<br><br>";
             echo $name["linie"];
             echo "<font color=\"green\">".$rechnung."<b>".$a." / ".$b." = ".$Ergeb."</b><br></font>";
             break;
        case "divirest":
             $Ergeb = $a % $b;
             echo "<br><br>";
             echo $name["linie"];
             echo "<font color=\"green\">".$rechnung."<b>".$a." / ".$b." = ".$Ergeb." = ".$Ergeb."</b></font>";  
             break;
     }
     }
     }
?>
</form>
</body>
</html>Vielen Dank.