script läuft nicht immer
Verfasst: 04.12.2025 16:35
Hallo habe ein Script, wo ich auf der Eingabeseite einen z.B. 4-stelligen oder 5-stelligen Code eingebe.
Aus diesem berechne ich im Script ein "Ergebnos"
Dieses Ergebnis sende ich mir dann per Email
allerdings funzt das Script nicht immer
z.B. bei der Eingabe 0209 oder 2606. bekomme ich keine Mail
Also bei bestimmten Zahlen bekomme ich die Mail und bei z.B. diesen beiden nicht
Find den Fehler nicht
Aus diesem berechne ich im Script ein "Ergebnos"
Dieses Ergebnis sende ich mir dann per Email
allerdings funzt das Script nicht immer
z.B. bei der Eingabe 0209 oder 2606. bekomme ich keine Mail
Also bei bestimmten Zahlen bekomme ich die Mail und bei z.B. diesen beiden nicht
Find den Fehler nicht
Code: Alles auswählen
<?php
//Formulareingabe prüfen
//den Code wandeln in String und Flag bei ? setzen
$eingabe = strval($_POST['code']);
if (substr($eingabe,0,1) == '?') {
$eingabe = substr($eingabe,1);
}
if ($_POST['submit'] && preg_match("([0-9]{4})", $eingabe) ) { //mind. 4-stellig
//Wenn Wert abgesendet wird
//Variablen deklarieren
$zs = 1800; // Zeichen je Seite
$zz = 50; // Ziffern je Zeile
//$code = $_POST['code'];
$code = $eingabe;
echo '*** ' . $code . ' ***';
// Berechnen der Anzeige (Buchseite, Zeile, Position)
// Position Code in Nachkommastellen finden
$pi = file_get_contents('pi-stellen.txt');
$pi = substr($pi, 0 , 500003); // kürze π auf Buchlänge
// echo $pi;
$pos = strpos($pi, $code) - 2; // 1. FundStelle in Pi
if ($pos !== -2)
{
//Zufällige Fundstelle, wenn mehrere Treffer im Buch
preg_match_all('/' . $code . '/', $pi, $matches, PREG_OFFSET_CAPTURE);
$array = $matches[0];
$anzahl = count($array);
// Schleife für alle Fundstellen
$ergebniss = '';
for ($i=0; $i < $anzahl; $i++) {
$pos = $array[$i][1] - 2;
// Seite berechnen
$seite = intdiv($pos, $zs);
$rest = ($pos % $zs);
if ($rest <> 0) $seite++;
//Buchseite eins erhöhen, da ab Seite 2 losgeht
$seite++;
// Zeile und Pos berechnen
$zeile = intdiv($rest, $zz);
$stelle = ($rest % $zz);
if ($stelle <> 0) $zeile++;
if ($stelle == 0) $stelle = 50;
$ergebniss = $ergebniss . $seite . '-' . $zeile . '-' . $stelle . "\n";
}
$ausgabe = $ergebniss;
$ausgabe_google = $_POST['code'];
// PHP senden
$empfaenger = "mailempfaenger@domain.com";
$inhalt = ' ';
$betreff = 'Code:' . $code;
$from = "From: Olaf Weber <norply@gmail.com>";
$text = 'Seite(n):' . "\n" . $ausgabe;
// echo 'Code ' . $betreff . "\n";
// echo $text;
mail($empfaenger, $betreff, $text, $from);
// Ausgabe, dass Mail gesendet wurde
// echo "<p style='color: blue; font-size: 72px; border: 2px solid black; text-align: center; padding:10px;'>Mail wurde versendet.</p>";
// Suchaufruf Google
$url = 'https://www.google.de/search?q=' . urlencode($ausgabe_google);
echo '<meta http-equiv="refresh" content="1; url=' . htmlspecialchars($url, ENT_COMPAT, 'UTF-8') . '">';
}
else
{
echo '<h1>Code ist nicht im Buch</h1>';
}
// Programm beenden
exit;
} // if Ende
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PI-BUCH-SUCHE</title>
<link rel="stylesheet" href="layout.css">
</head>
<body>
<header></header>
<article>
<div class="logo">
<img src="google-weihnacht.gif" width="200" alt="">
</div>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="codeingabe">
<input type="text" id="code" name="code" autofocus><br><br>
<input type="submit" name="submit" value="Suche">
</form>
</article>
<footer></footer>
</body>
</html>