| 

.NET C# Java Javascript Exception

3
Hallo zusammen,

Hintergrund:
für unseren örtliche Kindersachenbasar habe eich eine Anwendung in PHP erstellt mit deren Hilfe die einzelnen Buchungen gemacht werden können und später auch die Abrechnung. Das ganz läuft komplett unter Windows 7. Es gibt einen Server mit Apache und MYSQL (Maria DB) und 3 Client Rechner. Die Rechner erhalten per DCHP von einem Router die IP-Adresse. An diesen ist noch ein 5-port LAN-Switch angeschlossen. Die Clients sind an diesen angeschlossen, der Server diekt am Router. Für jeden Artikel gibt es einen Barcode und in der DB sind die Preise hinterlegt. Die Mitarbeiter an der Kasse scannen den Artikel und im Hintergrund (per AJAX) wird der Preis geladen und der Artikel verbucht.

Problem / Frage:
Immer wieder kommt es jedoch vor, dass das Script (die Scripte) das die einzelnen Buchungen vornimmt "hängt". Ich habe jedoch noch nicht herausgefunden an welcher Stelle genau oder ob es am Netzwerk liegt. Da wir kein bzw. ein sehr eingeschänktes Budget besitzen (Gewinn werden komplett gespendet) kann ich leider nicht einfach mal neue Hardware beschaffen. Es werden maximal 1-2 Buchungen pro Sekunde durchgeführt. Die DB ist derzeit nicht größer als 1 MB.

Hat jemand eine Idee oder sieht einen Fehler der so ein mehr oder weniger sporadisches Verhalten verursachen könnte?

Script 1 (Eingabe / Scannen):

<html>  
<head>
<title>Erfassung Kassenvorgänge</title>
<script src="js/jquery-2.2.4.min.js"></script>
<!--
<script src="js/jquery-3.1.1.min.js"></script>
-->
<script src="js/bootstrap.min.js"></script>
<link rel="stylesheet" href="css/bootstrap.min.css" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<?php
include 'connectdb.php';
$ShowDebugInfo = false;
if ($ShowDebugInfo) {
print"<br><br><br><br>";
print "\$_SESSION: ";
print_r($_SESSION);
print "<br>\n";
print "\$_POST: ";
print_r($_POST);
print "<br><br><br><br><br><br><br><br><br>\n";
}
if (!isset($_SESSION['KasseNr'])) {
print "KasseNr nicht gesetzt!<br>\n";
if (!$ShowDebugInfo) {die(header('Location: basar_zeigen.php'));}
} else {
$KasseNr = @$_SESSION['KasseNr'];
}
$_SESSION['KasseNr'] = $KasseNr;
if (!isset($_SESSION['idBasar'])) {
print "idBasar nicht gesetzt!<br>\n";
if (!$ShowDebugInfo) {die(header('Location: basar_zeigen.php'));}
} else {
$BasarNr = @$_SESSION['idBasar'];
}
$_SESSION['idBasar'] = $BasarNr;
if (!isset($_SESSION['Basar_DT'])) {
print "Basar_DT nicht gesetzt!<br>\n";
if (!$ShowDebugInfo) {die(header('Location: basar_zeigen.php'));}
} else {
$Datum = @$_SESSION['Basar_DT'];
}

if ($ShowDebugInfo) {print "isValidTimeStamp? " . isTimestamp($Datum) . "<br>\n";}
if (isTimestamp($Datum)) {
if ($ShowDebugInfo) {print "Timestamp!<br>\n";}
$BasarDt = date( 'd.m.Y', $Datum);
$BasarDatum = date( 'd.m.Y', $Datum);
$BasarDtkurz = date( 'd.m.y', $Datum);
} else {
if ($ShowDebugInfo) {print "String!<br>\n";}
$BasarDt = date( 'd.m.Y', strtotime($Datum));
$BasarDatum = date( 'd.m.Y', strtotime($Datum));
$BasarDtkurz = date( 'd.m.y', strtotime($Datum));
}

$SummeAlt = @$_SESSION['SummeAlt'];
if ($ShowDebugInfo) {
print "<p>Datum: " . $Datum ."</p>\n";
print "<p>BasarDt: " . $BasarDt ."</p>\n";
print "<p>BasarDatum: " . $BasarDatum ."</p>\n";
print "<p>BasarDtkurz: " . $BasarDtkurz ."</p>\n";
print "<p>Kasse-Nr: " . $KasseNr ."</p>\n";
print "<p>Summe letzter Vorgang: " . $SummeAlt ."</p>\n";
}
$sql ="SELECT max(Vorgang) as maxVorgang FROM ksb.umsatz_" . $BasarNr . " where idKasse='" . $KasseNr . "'";
$result = mysqli_query($db, $sql);
$Count=0;
while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {
$VorgangNeu = $row['maxVorgang'] + 1;
$VorgangAlt = $row['maxVorgang'];
$Count++;
}
if ($Count !=1) {
die(print "<b>Fehler beim Auslesen der neuen Vorgangsnummer!");
}
if (isset($_SESSION['Neu'])) {
switch ($_SESSION['Neu']) {
case 1:
$Vorgang = $VorgangNeu;
$LfdNr = 1;
$_SESSION['Neu'] = 0;
break;
case 0:
$Vorgang = $VorgangAlt;
if (isset($_POST["V"])) {
$Vorgang = $_POST["V"];
unset($_POST);
}
if (!isset($_SESSION['VorgangLfdNr'])) {
$sql ="SELECT max(VorgangLfdNr) as maxLfdNr FROM ksb.umsatz_" . $BasarNr . " where idKasse='" . $KasseNr . "' AND Vorgang=" . $Vorgang;
print $sql;
$result = mysqli_query($db, $sql);
$Count=0;
while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {
$LfdNrNeu = $row['maxLfdNr'] + 1;
$LfdNrAlt = $row['maxLfdNr'];
$Count++;
}
if ($Count !=1) {
die(print "<b>Fehler beim Auslesen der neuen Vorgangsnummer!");
}
$LfdNr = $LfdNrNeu;
} else {
$LfdNr = $_SESSION['VorgangLfdNr']+1;
}
break;
}
} else {
$sql2 ="SELECT max(VorgangLfdNr) as maxLfdNr FROM ksb.umsatz_" . $BasarNr . " where idKasse='" . $KasseNr . "' AND Vorgang='" . $VorgangAlt . "'";
$result = mysqli_query($db, $sql2);
$Count=0;
while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {
$LfdNrNeu = $row['maxLfdNr'] + 1;
$LfdNrAlt = $row['maxLfdNr'];
$Count++;
}
$Vorgang = $VorgangAlt;
if ($Vorgang==0) {
$Vorgang=1;
}
$LfdNr = $LfdNrNeu;
}
if ($ShowDebugInfo) {
print_r(@$_POST);
print "<br>\n";
print "<p>VorgangNeu: " . $VorgangNeu ."</p>\n";
print "<p>VorgangAlt: " . $VorgangAlt ."</p>\n";
print "<p>LfdNrNeu: " . $LfdNrNeu ."</p>\n";
print "<p>LfdNrAlt: " . $LfdNrAlt ."</p>\n";
print "<p>LfdNr: " . $LfdNr ."</p>\n";

}
function isTimestamp($string)
{
try {
new DateTime('@' . $string);
} catch(Exception $e) {
return false;
}
return true;
}
?>
<?php include 'nav.php'?>
<div id="Eingabe" class="container">
<br />
<br />
<h2 align="center">Erfassung Kassenvorgänge</h2>
<h3 align="center">Basar am <?php print $BasarDatum ?> / <b>Kasse Nr. <?php print $KasseNr ?></b></h3>
<hr>
<div class="form-group">
<form name="neuer_Vorgang" id="neuer_Vorgang">
<div id="Meldung" name="Meldung" class="alert alert-danger" style="display:none"></div>
<?php
if ($ShowDebugInfo) {
if (isset($_SESSION['Fehler'])) {print "\$_SESSION['Fehler']" . $_SESSION['Fehler'] . "<br>\n";}
}
if (isset($_SESSION['Fehler']) and $_SESSION['Fehler'] !='') {
$display="block";
$class="alert alert-danger Info";
$Fehler=$_SESSION['Fehler'];
unset($_SESSION['Fehler']);
} else {
$display="none";
$class="alert alert-success Info";
$Fehler="";
unset($_SESSION['Fehler']);
}
if ($ShowDebugInfo) {
print "\$display: " . $display . "<br>\n";
print "\$class: " . $class . "<br>\n";
print "\$Fehler: " . $Fehler . "<br>\n";
}
?>
<div class="<?php print $class; ?>" id="Info" name="Info" style="display:<?php print $display;?>;font-weight:bold;"><?php print $Fehler;?></div>
<div class="table-responsive">
<table class="table table-bordered" id="dynamic_field">
<tr>
<td>Vorgang Nr.</td>
<td>lfd. Nr</td>
<td>Artikel</td>
<td>Preis</td>
<td>&nbsp;</td><!-- löschen -->
<td>&nbsp;</td><!-- bearbeiten -->
</tr>
<tr>
<td><input type="hidden" name="BasarDatum" placeholder="BasarDatum" class="form-control name_list" value="<?php print $BasarDtkurz ?>" readonly /><input type="hidden" name="idBasar" placeholder="idBasar" class="form-control name_list" value="<?php print $BasarNr ?>" readonly /><input type="hidden" name="idKasse" placeholder="idKasse" class="form-control name_list" value="<?php print $KasseNr ?>" readonly /><input type="text" name="Vorgang" placeholder="Vorgang" class="form-control name_list" value="<?php print $Vorgang ?>" readonly /></td>
<td><input type="text" name="idlfdNr" placeholder="idlfdNr" class="form-control name_list" readonly value="<?php print $LfdNr ?>"/></td>
<td><input type="text" id="Artikel" name="Artikel" placeholder="Artikel" pattern="[0-9]{2}.[0-9]{2}.[0-9]{2}-[0-9]{3}-[0-9]{3}" class="form-control name_list" onchange="checkcode('1')" /></td>
<td>&nbsp;</td><!-- Preis -->
<td>&nbsp;</td><!-- löschen -->
<td>&nbsp;</td><!-- bearbeiten -->
<!--
<td><input type="number" id="Preis1" name="Preis" id="Preis" placeholder="Preis" class="form-control name_list" /></td>
<td><button type="button" name="add" id="add" class="btn btn-success">+</button></td>
-->
</tr>
<?php
$sql ="SELECT * FROM ksb.umsatz_" . $BasarNr . " where idKasse='" . $KasseNr . "' AND Vorgang='" . $Vorgang . "' ORDER BY Zeitstempel DESC";
$result = mysqli_query($db, $sql);
$Count=0;
$Summe=0;
while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {
if ($row['geandert']==1) {
$Info =" &sup1;";
} else {
$Info ="";
}
print "<tr>\n";
print "<td><input type='text' readonly class='form-control name_list' value='" . $row['Vorgang'] . "'</td>\n";
print "<td><input type='text' readonly class='form-control name_list' value='" . $row['VorgangLfdNr'] . "'</td>\n";
print "<td><input type='text' readonly class='form-control name_list' value='" . $row['Artikel'] . "'</td>\n";
print "<td><input type='text' readonly class='form-control name_list' value='" . number_format(($row['Preis']),2,',','.') . " €" . $Info . "'</td>\n";
print "<td><button type='button' value='X' name='remove' id='remove_" . $row['idBasar'] . "_" . $row['idKasse'] . "_" . $row['Vorgang'] . "_" . $row['VorgangLfdNr'] . "' class='btn btn-danger btn_remove'><span class='glyphicon glyphicon-remove'></span></button></td>\n";
print "<td><button type='button' data-toggle='modal' data-target='#vorgang_edit' data-btnname='edit' value='E' name='edit' id='edit_" . $row['idBasar'] . "_" . $row['idKasse'] . "_" . $row['Vorgang'] . "_" . $row['VorgangLfdNr'] . "' data-id='edit_" . $row['idBasar'] . "_" . $row['idKasse'] . "_" . $row['Vorgang'] . "_" . $row['VorgangLfdNr'] . "_" . $row['Artikel'] . "_" . number_format(($row['Preis']),2,',','.') . "' class='btn btn-warning btn_edit open-EditDialog'><span class='glyphicon glyphicon-edit'></span></button></td>\n";
print "</tr>\n";
$Summe+=$row['Preis'];
$Count++;
}
$sql1 = "select sum(Preis) as Umsatz from ksb.umsatz_" . $BasarNr . " where idKasse='" . $KasseNr . "' and Vorgang='" . ($Vorgang-1) . "'";
$query = @mysqli_query($db,$sql1);
$daten = @mysqli_fetch_assoc($query);
$GesamtAlt = $daten['Umsatz'];
?>
</table>
<table width="100%">
<tr>
<td align="left" width="25%"><button type="button" name="manuell" id="manuell" data-toggle='modal' data-target="#vorgang_manuell" class="btn btn-danger manuell" accesskey="m">manuelle Eingabe - [Alt] + m</button></td>
<td align="center" width="25%"><input type="button" name="submit" id="submit" class="btn btn-info" accesskey="s" value="neuer Vorgang - [Alt] + s"/></td>
<td align="right" Class="Gesamt"><?php print $Count ;?> Positionen: <span id="Gesamt"><?php print number_format(($Summe),2,',','.') . " €"; ?></span><input type="hidden" name="Summe" id="Summe" value=0/><input type="hidden" name="BasarNr" id="BasarNr" value="<?php print $BasarNr ?>"/></td>
</tr>
<tr>
<td><hr></td>
</tr>
<tr>
<td colspan='2' align="center" Class="SummeAlt"><a href="vorgang_zeigen.php?B=<?php print $BasarNr ?>&K=<?php print $KasseNr ?>&V=<?php print $Vorgang -1; ?>&D=<?php print $BasarDt ?>">Letzter Vorgang anzeigen (Nr. <?php print $Vorgang -1; ?>)</a></td>
<td align="center" Class="SummeAlt"><span style="font-size:1.2em !important;"> Summe: <?php print number_format(($GesamtAlt),2,',','.') . " €"; ?></span></td>
</tr>
</table>
<div class="well well-sm">&sup1; Preis manuell geändert</div>
</div>
</form>
<div class="Gesamt" style="position: fixed;left: 2%;top: 100px; border-radius: 15px;"><?php print $Count ;?> Pos.: <span id="Gesamt"><?php print number_format(($Summe),2,',','.') . " €"; ?></span><input type="hidden" name="Summe" id="Summe" value=0/><input type="hidden" name="BasarNr" id="BasarNr" value="<?php print $BasarNr ?>"/>
</div>
</div>
</div>
<!-- Modal -->
<div id="vorgang_edit" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-body">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<div class='form-group'>
<h4>Vorgang bearbeiten</h4>
<form name='vorgang_bearbeiten' id='vorgang_bearbeiten' method='post' action='#' class="form-horizontal">
<div class="form-group"><label class="control-label col-sm-4" for="idBasar">Basar ID:</label><div class="col-sm-6"><input class="form-control" type="number" name="idBasar" id="idBasar" value="" readonly /></div></div>
<div class="form-group"><label class="control-label col-sm-4" for="idKasse">Kasse Nr.:</label><div class="col-sm-6"><input class="form-control" type="number" name="idKasse" id="idKasse" value="" readonly /></div></div>
<div class="form-group"><label class="control-label col-sm-4" for="Vorgang">Vorgang Nr:</label><div class="col-sm-6"><input class="form-control" type="number" name="Vorgang" id="Vorgang" value="" readonly></div></div>
<div class="form-group"><label class="control-label col-sm-4" for="lfdNr">lfd. nr:</label><div class="col-sm-6"><input class="form-control" type="number" name="lfdNr" id="lfdNr" value="" readonly /></div></div>
<div class="form-group"><label class="control-label col-sm-4" for="Artikel">Artikel:</label><div class="col-sm-6"><input class="form-control" type="text" name="Artikel" id="Artikel" value="" readonly /></div></div>
<div class="form-group"><label class="control-label col-sm-4" for="Preis">neuer Preis:</label><div class="col-sm-6"><input class="form-control" type="text" name="Preis" id="Preis" value="" /></div></div>
<div class="btn-group btn-group-justified">
<div class='btn-group'><button class='btn btn-success btn_add' type='button' name='speichern' id='speichern' >speichern</button></div>
</div>
</form>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Modal ende -->

<!-- Modal -->
<div id="vorgang_manuell" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-body">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<div class='form-group'>
<h4>Manuelle Erfassung</h4>
<form name='vorgang_man' id='vorgang_man' method='post' action='#' class="form-horizontal">
<div class="form-group"><label class="control-label col-sm-4" for="Basar">Basar</label><div class="col-sm-6"><input class="form-control" type="text" name="Basar" id="Basar" value="<?php print $BasarDtkurz; ?>" readonly /></div></div>
<div class="form-group"><label class="control-label col-sm-4" for="Teilnehmer">Teilnehmer</label><div class="col-sm-6"><input class="form-control" type="text" name="TNr" id="TNr" value="" /></div></div>
<div class="form-group"><label class="control-label col-sm-4" for="Artikel">Artikel:</label><div class="col-sm-6"><input class="form-control" type="text" name="ArtNr" id="ArtNr" value="" /></div></div>
<div class="btn-group btn-group-justified">
<div class='btn-group'><button class='btn btn-success btn_add' type='button' name='speichern_man' id='speichern_man' >speichern</button></div>
</div>
</form>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Modal ende -->
</body>
<footer id="fussbereich" class="container">
</footer>
</html>
<script>
$(document).ready(function(){
var i=1;
document.getElementById("Artikel").focus();
/*
$(document).on('click', '.manuell',function(){
document.getElementById("Artikel").value='<?php print $BasarDtkurz . "-"; ?>';
document.getElementById("Artikel").focus();
});
*/
/*
$('#add').click(function(){
$.ajax({
url:"vorgang_speichern.php",
method:"POST",
data:$('#neuer_Vorgang').serialize(),
success:function(data) {
result= data.trim();
if (result == "1") {
$('#neuer_Vorgang')[0].reset();
location.reload(true );
} else {
document.getElementById("Info").style.display = 'block';
document.getElementById("Info").className = "alert alert-danger Info";
document.getElementById("Info").innerHTML = "<a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a>" + result;
}
}
});
});
*/
$(document).on('click', '.btn_remove', function(){
var button_id = $(this).attr("id");
$.ajax({
url:"vorgang_del.php",
method:"POST",
data:{del: button_id},
success:function(data) {
result= data.trim();
if (result == "1") {
//$('#neuer_Vorgang')[0].reset();
location.reload(true );
} else {
document.getElementById("Info").style.display = 'block';
document.getElementById("Info").className = "alert alert-danger Info";
document.getElementById("Info").innerHTML = "<a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a>" + result;
}
}
});

});
$('#submit').click(function(){
$.ajax({
url:"vorgang_add.php",
method:"POST",
data:$('#neuer_Vorgang').serialize(),
success:function(data) {
result= data.trim();
location.reload(true );
}
});
});
$('#speichern').click(function(){
document.getElementById("Meldung").style.display = 'none';
document.getElementById("Meldung").innerHTML = "";
$('#btn_edit').modal('hide');
$.ajax({
url:"vorgang_preisaendern.php",
method:"POST",
data:$('#vorgang_bearbeiten').serialize(),
success:function(data) {
result= data.trim();
if (result == "1") {
$('#vorgang_bearbeiten')[0].reset();
location.reload(true );
} else {
document.getElementById("Info").style.display = 'block';
document.getElementById("Info").className = "alert alert-danger Info";
document.getElementById("Info").innerHTML = "<a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a>" + result;
}
}
});
});
$('#speichern_man').click(function(){
document.getElementById("Meldung").style.display = 'none';
document.getElementById("Meldung").innerHTML = "";
document.getElementById("TNr").focus();
var TNr=str_pad(parseInt(document.getElementById("TNr").value),3,'0', 'STR_PAD_LEFT');
var ArtNr=str_pad(parseInt(document.getElementById("ArtNr").value),3,'0', 'STR_PAD_LEFT');
var TNrx=document.getElementById("TNr").value;
var ArtNrx=document.getElementById("ArtNr").value;
if (!TNrx.match(/^[0-9]+$/)) {
alert("Teilnehmer-Nummer darf nur Zahlen enthalten!");
} else if (!ArtNrx.match(/^[0-9]+$/)) {
alert("Artikel-Nummer darf nur Zahlen enthalten!");
} else {
var Artikel='<?php print $BasarDtkurz; ?>' +"-" + TNr + '-' + ArtNr;
document.getElementById("Artikel").value=Artikel;
$('#Artikel').focus();
$("#Artikel").change();
}
$('#vorgang_manuell').modal('hide');
});

});
// Fenster mit Daten füllen
$(document).on("click", ".open-EditDialog", function () {
var myvalues = $(this).data('id');
var values = myvalues.split("_");
$(".modal-body #idBasar").val(values[1]);
$(".modal-body #idKasse").val(values[2]);
$(".modal-body #Vorgang").val(values[3]);
$(".modal-body #lfdNr").val(values[4]);
$(".modal-body #Artikel").val(values[5]);
$(".modal-body #Preis").val(values[6]);

});
// Fenster anzeigen
$('#vorgang_manuell').on('shown.bs.modal', function () {
$('#TNr').focus();
})
function str_pad (input, padLength, padString, padType) {
// eslint-disable-line camelcase
// discuss at: http://locutus.io/php/str_pad/
// original by: Kevin van Zonneveld (http://kvz.io)
// improved by: Michael White (http://getsprink.com)
// input by: Marco van Oort
// bugfixed by: Brett Zamir (http://brett-zamir.me)
// example 1: str_pad('Kevin van Zonneveld', 30, '-=', 'STR_PAD_LEFT')
// returns 1: '-=-=-=-=-=-Kevin van Zonneveld'
// example 2: str_pad('Kevin van Zonneveld', 30, '-', 'STR_PAD_BOTH')
// returns 2: '------Kevin van Zonneveld-----'
var half = ''
var padToGo
var _strPadRepeater = function (s, len) {
var collect = ''
while (collect.length < len) {
collect += s
}
collect = collect.substr(0, len)
return collect
}
input += ''
padString = padString !== undefined ? padString : ' '
if (padType !== 'STR_PAD_LEFT' && padType !== 'STR_PAD_RIGHT' && padType !== 'STR_PAD_BOTH') {
padType = 'STR_PAD_RIGHT'
}
if ((padToGo = padLength - input.length) > 0) {
if (padType === 'STR_PAD_LEFT') {
input = _strPadRepeater(padString, padToGo) + input
} else if (padType === 'STR_PAD_RIGHT') {
input = input + _strPadRepeater(padString, padToGo)
} else if (padType === 'STR_PAD_BOTH') {
half = _strPadRepeater(padString, Math.ceil(padToGo / 2))
input = half + input + half
input = input.substr(0, padLength)
}
}
return input
}
function checkcode (Nummer) {
audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var x = document.getElementById("Artikel").value;
$.ajax({
url:"vorgang_speichernpreis.php",
method:"POST",
data:$('#neuer_Vorgang').serialize(),
success:function(data) {
result= data.trim();
if (result == "1") {
// Jetzt einen Ton absielen, dass gebucht wurde!
var oscillator = audioCtx.createOscillator();
var gainNode = audioCtx.createGain();
oscillator.connect(gainNode);
gainNode.connect(audioCtx.destination);
gainNode.gain.value = 0.5;
oscillator.frequency.value = 2000;
oscillator.type = 2;
oscillator.start();
setTimeout(
function(){
oscillator.stop();
$('#neuer_Vorgang')[0].reset();
location.reload(true );
}, 150);
} else {
/*
document.getElementById("Artikel").value='';
document.getElementById("Artikel").focus();
document.getElementById("Info").style.display = 'block';
document.getElementById("Info").className = "alert alert-danger Info";
document.getElementById("Info").innerHTML = "<a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a>" + result;
*/
// anderen Ton abspielen wenn was nicht stimmt
var oscillator = audioCtx.createOscillator();
var gainNode = audioCtx.createGain();
oscillator.connect(gainNode);
gainNode.connect(audioCtx.destination);
gainNode.gain.value = 0.9;
oscillator.frequency.value = 500;
oscillator.type = 2;
oscillator.start();
setTimeout(
function(){
oscillator.stop();
$('#neuer_Vorgang')[0].reset();
location.reload(true );
//$('#Artikel').focus();
}, 500
);
}
}
});
};

</script>


Script 2 (Preis-Findung / Buchung):

<?php 
include 'connectdb.php';
$ShowDebugInfo=false;
if ( $db )
{
// Verbindung zur Datenbank wurde hergestellt
// Erst prüfen ob alle Datensätze geschrieben werden können, dann auch machen
// WICHTIG - PRÜFEN OB DATTUM BARCODE STIMMT
if ($ShowDebugInfo) {
print_r($_POST);
print"<br>\n";
}
$number = count($_POST["idBasar"]);
$BasarNr = $_POST["BasarNr"];
$_SESSION['SummeAlt'] = $_POST["Summe"];
$_SESSION['VorgangAktuell'] = $_POST["Summe"];
$savedb=true;
$savedbErr = "";
$Artikel=$_POST['Artikel'];
if ($ShowDebugInfo) {print "Artikel: " . $Artikel . "<br>\n";}
$ArtSplit=split("-",$Artikel);
$DtBasar=$ArtSplit[0];
if ($_POST['BasarDatum'] !=$DtBasar) {
die("<b>Barcode ist ungültig! Datum " . $DtBasar . " ist falsch.</b>");
}
$TNNr=str_pad($ArtSplit[1], 3 ,'0', STR_PAD_LEFT);
$ArtNr=str_pad($ArtSplit[2], 3 ,'0', STR_PAD_LEFT);
$Artikel=$DtBasar."-" . $TNNr . "-" . $ArtNr;
$sqlpreis ="SELECT * FROM ksb.artikel_" . $BasarNr . " where artikelnr=" . $ArtNr . " and teilnehmerNr=" . $TNNr . ";";

if ($ShowDebugInfo) {
print "BasarNr: " . $BasarNr . "<br>\n";
print "DtBasar: " . $DtBasar . "<br>\n";
print "TNNr: " . $TNNr . "<br>\n";
print "ArtNr: " . $ArtNr . "<br>\n";
print "sqlpreis: " . $sqlpreis . "<br>\n";
}

if (strpos($ArtNr,".")>0) {
$_SESSION['Fehler']= "Die gescannten Daten sind falsch. Bitte prüfen!";
die("<b>Die gescannten Daten sind falsch. Bitte prüfen!</b>");
}

$result = mysqli_query($db, $sqlpreis);
$Count=0;
while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {
$Preis = $row['preis'];
$Count++;
}
if ($Count >1) {
$_SESSION['Fehler']= ">Mehr als ein Artikel gefunden!";
die("<b>Mehr als ein Artikel gefunden!</b>");
}
if ($Count ==0) {
$_SESSION['Fehler']= "Kein Artikel gefunden!";
die("<b>Kein Artikel gefunden!</b>");
}

if ($ShowDebugInfo) {
print "Preis: " . $Preis . "<br>\n";
$erg="Falsch";
if ($Preis==''){$erg="Wahr";}
print "Preis==''? " . $erg . "<br>\n";
if ($Preis==0){$erg="Wahr";}
print "Preis==0? " . $erg . "<br>\n";
if (!isset($Preis)){$erg="Wahr";}
print "!isset(\$Preis)? " . $erg . "<br>\n";
if (is_null($Preis)){$erg="Wahr";}
print "is_null(\$Preis)? " . $erg . "<br>\n";

}

if ($Preis=='' or $Preis==0 or !isset($Preis) or is_null($Preis)){
$_SESSION['Fehler']= "Es wurde kein Preis erfasst! Preis für diesen Artikel bitte erfassen lassen.";
echo('<b>Es wurde kein Preis erfasst! Preis für diesen Artikel bitte erfassen lassen.</b>');
} else {
if($number > 0) {
$Zeitstempel = date("Y-m-d H:i:s");
$sqlFields = "INSERT INTO ksb.umsatz_" . $BasarNr . " (idBasar,idKasse,Vorgang,VorgangLfdNr,Preis,Zeitstempel,Artikel,teilnehmerNr,artikelnr) VALUES ";
$sqlValues = "";
if(trim($_POST["idBasar"]) != '' AND trim($_POST["idKasse"]) != '' AND trim($_POST["Vorgang"]) != '' AND trim($_POST["Artikel"]) != '') {
$sqlValues .= "(" . $_POST["idBasar"] . "," . $_POST["idKasse"] . "," . $_POST["Vorgang"] . "," . $_POST["idlfdNr"] . "," . $Preis . ",'" . $Zeitstempel . "','" . $Artikel . "'," . $TNNr . "," . $ArtNr . ")";
$_SESSION['VorgangLfdNr'] = $_POST['idlfdNr'];
}
$sqlKompl = $sqlFields . $sqlValues;
if ($ShowDebugInfo) {print "sqlKompl: " . $sqlKompl . "<br>\n";}
if ($db->query($sqlKompl) === TRUE) {
$_SESSION['Neu']=0;
//Alles gut!
} else {
$Fehlermeldung = $db->error;
$savedb=false;
$FMeld = split ("'",$Fehlermeldung);
if (trim($FMeld[0]) == 'Duplicate entry') {
$_SESSION['Fehler']= "Artikel bereits gebucht!";
$savedbErr .= "<b>Artikel bereits gebucht!</b>";
} else {
$_SESSION['Fehler']= "Fehler: " . $Fehlermeldung;
$savedbErr .= "Fehler: " . $Fehlermeldung;
}
}
if ($savedb) {
echo "1";
} else {
echo $savedbErr;
}
} else {
//Hier noch Fehler abfangen
$_SESSION['Fehler']= "Bitte Angaben prüfen!";
echo "Bitte Angaben prüfen!";
}
}
}
?>
30.03.2017
MichaZ70 11 1
2 Antworten
0
Ihre Scripte sehen für mich erst einmal in Ordnung aus. Ich würde zwar die Scripte modularisieren und damit refaktorieren (wiederkehrende Aufgaben in eigenen Klassen und Methoden auslagern und vor allem das HTML entschlacken, d.h. PHP-Anweisungen entfernen, JavaScript in eine Extradatei...).
Das sollte das Laden der Seite erst einmal beschleunigen.

Das "Hängen" der Seite kann eigentlich AJAX-Ruf liegen. Sie verwenden synchrones AJAX, was bedeutet, dass zu einem Zeitpunkt immer nur ein Client aktiv werden kann.

Andere Möglichkeit:

Der Speicher für Ihre Anwendung ist zu klein eingestellt und das System muss den Garbage Collector aufrufen.
31.03.2017
edvservice 1,3k 6
0
I would like to thank you for writing this article!
bullet force
13.04.2017

Stelle deine Javascript-Frage jetzt!