PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : submit eingaben püfen funzt nicht


Haraldo
22.09.2009, 15:23:39
hallo ich habe in der Form zwei button einen'weiter' und einen 'Vorgang stornieren'
wenn auf den weiter Button geklickt wird sollen die eingaben geprüft werden und wenn nicht korrekt dann wieder in das Formular. wenn auf den Vorgang stornieren Button geclickt wird dann soll eine neue Seite aufgehen. Genau das funktioniert nicht wenn ich den 'weiter' button klicke prüft er zwar die Eingaben aber er geht auch wenn die eingaben nicht korrekt sind (alert Meldung bestätigen) auf die seite auf die er gehen soll wenn die eingaben ok sind.
Was ist hier falsch?
das habe ich bis jetzt (wesentlicher Auszug)
<?php
$weit = $_POST['weit'];
$zuru = $_POST['zuru'];
if ($weit == "weiter")
{
$zuru = '';
// sonst noch einige dinge
}
else
{ ?>
<script type="text/javascript">

function eingaben_ueberpruefen()
{

if (document.Formular.sdatum.value.length < 2)
{
alert("Sie haben noch kein Unfalldatum eingegeben!")
document.Formular.sdatum.focus();
return false;
}
else
return true;
}
</script>
<?php
if ($zuru == "Vorgang stornieren")
{
$target="schadenmeld.php";
$msg = "<meta http-equiv=\"Refresh\" content=\"0;url=$target\">";
echo $msg;
exit;
}
}
?>

bitte um Hilfe (kurzer Denkanstoss)

tewe
22.09.2009, 15:52:03
der html-code dazu wäre ganz interessant ;)

Haraldo
22.09.2009, 16:23:30
danke für die antwort
hier auszuege aus dem formular
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" name="Formular" target="_self"
onsubmit="eingaben_ueberpruefen();">

<input type="submit" value="Vorgang stornieren" name="zuru" >
<input type="submit" value="weiter" name="weit" >

cortex
22.09.2009, 17:04:19
$_SERVER['PHP_SELF']


hab ich dir nicht schon einmal (http://www.selfphp.de/forum/showthread.php?t=22102#3) etwas dazu gesagt?

zum problem: deine skripte zeigen eine gewisse inkonsistenz zur behandlung der requests. du streust php, javascript und meta-angaben recht beliebig - kein wunder, wenn das ganze nicht zuverlässig funktioniert. das hier ist schon ein kracher:

<?php
if ($zuru == "Vorgang stornieren")
{
$target="schadenmeld.php";
$msg = "<meta http-equiv=\"Refresh\" content=\"0;url=$target\">";
echo $msg;
exit;
}
}
?>

du schickst daten zum server, prüfst diese und machst eine ausgabe, die zu einer clientseitigen weiterleitung führt...?

entscheide dich, wie du userdaten behandeln willst: server- oder clientseitig, wobei eine ausschliessliche clientseitige behandlung bei sicherheitskritischen eingaben nicht zu empfehlen ist.

ansonsten schau mal in praxisbuch oder kochbuch hier bei selfphp - die auswertung von formularen wird sicher irgendwo behandelt.

cx

Haraldo
22.09.2009, 17:18:34
danke für den rüffel, hat mich aber leider nicht weiter gebracht. Ich bin halt absoluter anfänfger wie schon im alten thread beschrieben. aber naja, Vielleicht sind foren nur von profis für profis gedacht muss mann halt nur wissen.
Danke trotzdem.

vt1816
22.09.2009, 17:24:47
danke für den rüffel, hat mich aber leider nicht weiter gebracht.

Hast Du Dich mit den oben beschriebenen Dingen/Hinweisen auseinandergesetzt.
Da ist nichts dabei was ein absoluter Anfänger/Laie nicht versteht.
Es bringt aber auch nichts, Dir Dein Script bis zur Perfektion zu berichtigen und Du verstehst nicht was im Script steht.

Schau Dir die Hinweise einzeln an - wenn Du einen Punkt nicht verstehst frage nach ...

cortex
22.09.2009, 17:31:53
danke für den rüffel, hat mich aber leider nicht weiter gebracht.

das war lediglich ein dezenter hinweis auf eine grundlegende problematik deiner skripte. möglicherweise findet sich jemand, der sich gern durch kraut und rüben ackert...

aber naja, Vielleicht sind foren nur von profis für profis gedacht muss mann halt nur wissen.


meines erachtens nach eine fehleinschätzung.

newbies können auch sehr wertvolle hinweise geben - die erfahrung zeigt allerdings, dass das ziemlich selten passiert, falls sich überhaupt mal jemand zu worte meldet. die meisten sind wohl eher passive mitglieder. im übrigen sehe ich mich nicht als profi...

cx