Formular erneute Passworteinegabe
mercedes
- php
Hallo,
ich habe ein Formular als Tagesbericht für unsere Mitarbeiter erstellt.
Alle Einträge werden in eine MySQL Datenbank geschrieben was soweit funktioniert.
Da der "Bericht" über die gesamte Schichtzeit geöffnet bleiben muß (es werden dort am Tag anfallende Probleme eingetragen)habe ich nun folgendes Problem:
Erfolgt eine Eingabe erst nach einem späteren Zeitpunkt (Zeit kann ich nicht sagen) muß ein Passwort (das LoginPas für die Seite) eingegebn werden. Nach dem o.k kommt die Abfrage immer wieder und die Seite muß neu gestartet werden.
Könnt Ihr mir sagen worauf ich evtl. achten muß um diese zu verhindern?
Kann es am Server oder an meinem Script liegen?
Wenn es keinen Allgemeinen Hinweis gibt würde ich auch auf wunsch den Code hochladen (kann ich aber erst von zu Hause)
Ich hoffe es ist halbwegs verständlich
Gruß
hi,
Ich hoffe es ist halbwegs verständlich
Nicht für mich. Schreib mal, was Du machen willst. Das verstehe ich besser, als das, was Du nicht machen willst.
Hotte
hi,
Ich hoffe es ist halbwegs verständlich
Nicht für mich. Schreib mal, was Du machen willst. Das verstehe ich besser, als das, was Du nicht machen willst.
Hotte
Hallo,
also, um die www.Seite zu öffnen muß ein PW eingegeben werden.
Auf dieser Seite befindet sich ein Formular.
Wenn das Formular längere Zeit geöffnet ist und dann ein neuer Eintrag erfolgt & dieser dann mit submit gespeichert, wird eine erneute PW Eingabe benötigt. Wenn die PW-Eingabe mit ok. bestätigt wird geht das PW Fenster wieder auf und das hört nicht mehr auf. Nach jedem o.k. geht's wieder auf.
Das Formular selbst benötigt kein PW.
hi,
also, um die www.Seite zu öffnen muß ein PW eingegeben werden.
Auf dieser Seite befindet sich ein Formular.
Wenn das Formular längere Zeit geöffnet ist und dann ein neuer Eintrag erfolgt & dieser dann mit submit gespeichert, wird eine erneute PW Eingabe benötigt. Wenn die PW-Eingabe mit ok. bestätigt wird geht das PW Fenster wieder auf und das hört nicht mehr auf. Nach jedem o.k. geht's wieder auf.
Das Formular selbst benötigt kein PW.
Hmmm, also nach einer bestimmten Zeit soll das Passwort für die Formulareingabe erneut abgefragt werden? Und das nachdem der Text eingegeben wurde? Das ist zwar schlecht, besser wäre es, dem Benutzer zu zeigen, dass die Zeit abgelaufen ist; aber ich hab immer noch nicht verstanden, was das Problem dabei ist.
Hotti
hi,
also, um die www.Seite zu öffnen muß ein PW eingegeben werden.
Auf dieser Seite befindet sich ein Formular.
Wenn das Formular längere Zeit geöffnet ist und dann ein neuer Eintrag erfolgt & dieser dann mit submit gespeichert, wird eine erneute PW Eingabe benötigt. Wenn die PW-Eingabe mit ok. bestätigt wird geht das PW Fenster wieder auf und das hört nicht mehr auf. Nach jedem o.k. geht's wieder auf.
Das Formular selbst benötigt kein PW.Hmmm, also nach einer bestimmten Zeit soll das Passwort für die Formulareingabe erneut abgefragt werden? Und das nachdem der Text eingegeben wurde? Das ist zwar schlecht, besser wäre es, dem Benutzer zu zeigen, dass die Zeit abgelaufen ist; aber ich hab immer noch nicht verstanden, was das Problem dabei ist.
Hotti
Ne,ne,
genau das will ich ja nicht. Das "blöde" Fenster erscheint ja wenn ich auf speichern drücke. Das ganze wiederholt sich so lang bis ich die Sete schließe und dann neu öffne!
Hello,
Ne,ne,
genau das will ich ja nicht. Das "blöde" Fenster erscheint ja wenn ich auf speichern drücke. Das ganze wiederholt sich so lang bis ich die Sete schließe und dann neu öffne!
Du müsstest schon mal etwas genauer beschreiben, was das Script macht und ob du einen Verzeichnisschutz mit .htaccess benutzt, also die Kontrolle vom Server selber ausgeübt wird, oder ob die Zugangskontrolle mittels Basic Authentication oder auf andere Weise vom Script surchgeführt wird.
Ist z.B. zusätzlich noch Javascript im Spiel?
Wird mit Sessions gearbeitet?
Es gibt also mehrere Möglichkeiten, diese Verhaltensweise zu erzeugen.
Ohne weitere Einblicke in Deinen Code kann man da nur raten.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg

http://ip adresse eingeben, LogIn+PW eingeben, über MenüButton Demo.php aufrufen dann Daten ins Formular eingeben.
...nun da ist er
<?php
//******************************************************************************
// Eingabeformular
//******************************************************************************
// Datenbankzugriff
include("admin/includes/config.php");
// Formulardaten einlesen (PHP und HTML Tags entfernen)
if (isset($_POST['eintragen']))
{
// Inhalte der Felder aus POST holen
$DATUM = $_POST['DATUM'];
$UHRZEIT = $_POST['UHRZEIT'];
$DAUER = $_POST['DAUER'];
$FEHLERKATEGORIE = $_POST['FEHLERKATEGORIE'];
$ON = $_POST['ON'];
$BESCHREIBUNG = $_POST['BESCHREIBUNG'];
$MASSNAHME = $_POST['MASSNAHME'];
$VERMEIDUNG = $_POST['VERMEIDUNG'];
$ANMERKUNG = $_POST['ANMERKUNG'];
$M_NAME = $_POST['M_NAME'];
$SCHICHT = $_POST['SCHICHT'];
$ORT = $_POST['ORT'];
// Maskierende Slashes aus POST entfernen
$_POST = get_magic_quotes_gpc() ? array_map( 'stripslashes', $_POST ) : $_POST;
/* ************************************************************************************************ */
/* *** Hier sollten und MUESSEN die Benutzereingaben geprueft werden um Schadcode abzufangen!!! *** */
/* ************************************************************************************************ */
// Sind alle Eingaben durch die Validierung gekommen werden sie in die DB geschrieben
// Verbindung oeffnen und Datenbank ausweahlen
$conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" );
if ($conID)
{
mysql_select_db( $db_name, $conID );
}
// Das Datum wird erzeugt
$datum = time();
// Anfrage zusammenstellen der an die DB geschickt werden soll
$sql = "INSERT INTO `F_Fehlerbericht`
(`DATUM`, `UHRZEIT`, `DAUER`, `FEHLERKATEGORIE`, `ON`, `BESCHREIBUNG`, `MASSNAHME`, `VERMEIDUNG`, `ANMERKUNG`, `M_NAME`, `SCHICHT`, `ORT` )
VALUES(
'" .mysql_real_escape_string( date_german2mysql($_POST["DATUM"])). "',
'" .mysql_real_escape_string( $UHRZEIT ). "',
'" .mysql_real_escape_string( $DAUER ). "',
'" .mysql_real_escape_string( $FEHLERKATEGORIE ). "',
'" .mysql_real_escape_string( $ON ). "',
'" .mysql_real_escape_string( $BESCHREIBUNG ). "',
'" .mysql_real_escape_string( $MASSNAHME ). "',
'" .mysql_real_escape_string( $VERMEIDUNG ). "',
'" .mysql_real_escape_string( $ANMERKUNG ). "',
'" .mysql_real_escape_string( $M_NAME ). "',
'" .mysql_real_escape_string( $SCHICHT ). "',
'" .mysql_real_escape_string( $ORT ). "'
)";
// Schickt die Anfrage an die DB und schreibt die Daten in die Tabelle
mysql_query( $sql );
// Pruefen ob der neue Datensatz tatsaechlich eingefuegt wurde
if (mysql_affected_rows() == 1)
{
$Ausgabe = "Der Datensatz wurde hinzugefügt!";
//echo "<h3>Der Datensatz wurde hinzugefügt!</h3>";
// Hier kann weiterer Code stehen der ausgefuehrt werden soll
// wenn ein Eintrag erfolgreich war. z.B. Email an den Admin schicken
// der ueber den neuen Eintrag informiert
}
else
{
$Ausgabe = "Der Datensatz konnte <strong>nicht</strong> hinzugefügt werden!";
//echo "<h3>Der Datensatz konnte <strong>nicht</strong> hinzugefügt werden!</h3>";
// Hier koennen Massnahmen ergriffen werden die ueber den Misserfolg informieren
// wie z.B. den Benutzer darueber zu informieren, dem Admin eine Mail schicken
// damit er sich um den Fehler kuemmern kann, etc pp
}
}
//<?php
//http://www.php.de/php-fortgeschrittene/17357-date-ausgabe-deutsch.html
//showing Dates in German lanuage:
function formatDateString($stamp) {
//initalise String:
//Gettting the months set up...
$monate = array(
1=>"Januar",
2=>"Februar",
3=>"März",
4=>"April",
5=>"Mai",
6=>"Juni",
7=>"Juli",
8=>"August",
9=>"September",
10=>"Oktober",
11=>"November",
12=>"Dezember");
//Getting our Month
$monat = date("n", $stamp);
//Getting the Days set up....
//$tage = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
//Getting Day....
$tag = date("w", $stamp);
//$printme = $tage[$tag].", den ".date("d", $stamp).". ".$monate[$monat]." ".date("Y", $stamp);
$printme = date("d", $stamp).". ".$monate[$monat]." ".date("Y", $stamp);
return $printme;
}
// Konvertiert das deutsche Datum-Format in ein MySQL-Format
function date_german2mysql($date)
{
$d = explode(".",$date);
return sprintf("%04d-%02d-%02d", $d[2], $d[1], $d[0]);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Fehlerbericht</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="default.css" rel="stylesheet" type="text/css" />
</head>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="formular" id="formular">
<body>
<div id="wrapper">
<div id="header">
<h1><a href="#">Fehlerbericht</a></h1>
<h2><a href="#"><img src="images/WP.png" width="160" height="42"></a></h2>
<h3><? print ($Ausgabe);?></h3>
<!-- <h4><? print formatDateString(date(time()));?></h4> -->
</div>
<div id="menu">
<ul>
<li><a href="index.php" accesskey="1" title="">Home</a></li>
<li class="active"><a href="demo.php" accesskey="2" title="">Demo</a></li>
<li><a href="#" accesskey="3" title="">MCR</a></li>
<li><a href="#" accesskey="4" title="">Service</a></li>
<li><a href="lesen_prod.php" accesskey="5" title="">Übersicht</a></li>
<li><a href="#" accesskey="6" title="">MORE</a></li>
<li><a href="login.php" accesskey="7" title="">224</a></li>
</ul>
</div>
<!-- INHALT -->
<div id="content">
<div id="colOne">
<div class='my_fieldset30_links'>
<h2>Datum</h2>
<input type="text" class="defbreite" name="DATUM" id="DATUM" value="<?php echo date("d.m.Y");?>">
</div>
<div class='my_fieldset30_mitte'>
<h2>Uhrzeit</h2>
<input type="text" class="defbreite" name="UHRZEIT" id="UHRZEIT">
</div>
<div class='my_fieldset30_rechts'>
<h2>Dauer in Min</h2>
<input type="text" class="defbreite" name="DAUER" id="DAUER">
</div>
<br>
<div class='my_fieldset30_mitte'>
<h2>Kategorie</h2>
<select class="defbreite" name="FEHLERKATEGORIE" id="FEHLERKATEGORIE">
<option selected value="">Bitte auswählen!</option>
<option >*</option>
<option value="i.O.">i.O.</option>
<option >*</option>
<option value="NC P">NC P</option>
<option value="Sona">Sona</option>
<option value="externe Quelle">externe Quelle</option>
<option value="Zeitabweichung von disponierter Zeit">Zeitabweichung DISPO</option>
<option value="Sonstiges">Sonstige</option>
</select>
</div>
<div class='my_fieldset30_rechts'>
<h2>Störung</h2>
<input type="checkbox" onchange="this.form.className = (this.checked ? '' : 'compact');"/>
<br><span class="feld2"><input type="radio" name="ON" id="ON_1" value="NEIN" checked="checked" />NEIN </span>
<span class="feld2"><input type="radio" name="ON" id="ON_2" value="JA">Ja </span>
</div>
<br>
<div class='my_fieldset'>
<h2>Details</h2>
<textarea class="defbreite" rows="4" name="BESCHREIBUNG" id="BESCHREIBUNG"></textarea>
</div>
<br>
<div class='my_fieldset45_links'>
<h2>Ergriffene Maßnahmen</h2>
<textarea class="defbreite" rows="3" name="MASSNAHME" id="MASSNAHME"></textarea>
</div>
<div class='my_fieldset45_rechts'>
<h2>Maßnahmen zur Fehlervermeidung</h2>
<textarea class="defbreite" rows="3" name="VERMEIDUNG" id="VERMEIDUNG"></textarea>
</div>
<br>
<div class='my_fieldset'>
<h2>Bemerkung</h2>
<textarea class="defbreite" rows="3" name="ANMERKUNG" id="ANMERKUNG"></textarea>
</div>
<br>
</div>
<!-- /INHALT -->
<!-- INHALT Links -->
<div id="colTwo">
<div class='my_fieldset'>
<h2>Zuständiger MA</h2>
<select class="defbreite" name="M_NAME" id="M_NAME">
<?php //Beim Senden eines Formulars die gewählte Auswahl in der Auswahlliste beibehalten.
$array = array(1 => "Bitte auswählen! ", "vorname name", );
for ($a = 1; $a <= 2; $a++) {
echo " <option value=\"$array[$a]\"";
if ($_POST["M_NAME"] == $array[$a]) {
echo " selected";
}
else {
if ($_POST["M_NAME"] == "" && $a == 1) {
echo " selected";
}
}
echo ">$array[$a]</option>\n";
}
?>
</select>
</div>
<br>
<div class='my_fieldset'>
<h2>Schicht</h2>
<select class="defbreite" name="SCHICHT" id="SCHICHT">
<?php //Beim Senden eines Formulars die gewählte Auswahl in der Auswahlliste beibehalten.
$array = array(1 => "Bitte auswählen! ", "PP1.1", "PP1.2", "PP1.3", "*", "PP2.1", "PP2.2", "PP2.3", "*", "FW3.1", "FW3.2");
for ($a = 1; $a <= 11; $a++) {
echo " <option value=\"$array[$a]\"";
if ($_POST["SCHICHT"] == $array[$a]) {
echo " selected";
}
else {
if ($_POST["SCHICHT"] == "" && $a == 1) {
echo " selected";
}
}
echo ">$array[$a]</option>\n";
}
?>
</select>
</div>
<br>
<div class='my_fieldset'>
<h2>Standort</h2>
<select class="defbreite" name="ORT" id="ORT">
<?php //Beim Senden eines Formulars die gewählte Auswahl in der Auswahlliste beibehalten.
$array = array(1 => "Bitte auswählen! ", "PP", "Innen", "Außen");
for ($a = 1; $a <= 4; $a++) {
echo " <option value=\"$array[$a]\"";
if ($_POST["ORT"] == $array[$a]) {
echo " selected";
}
else {
if ($_POST["ORT"] == "" && $a == 1) {
echo " selected";
}
}
echo ">$array[$a]</option>\n";
}
?>
</select>
</div>
<br>
<div class="knopf">
<p><input class="submit" type="submit" name="eintragen" id="eintragen" value="Speichern"/></p>
<input class="submit" type="submit" value="email Senden"/>
</div>
<br>
</div>
<div style="clear: both;"> </div>
</div>
<!-- /INHALT Links -->
<div id="footer">
<p>2009</p>
</div>
</div>
</body>
</form>
</html>
Hello,
include("admin/includes/config.php");
Was steht denn dort drin?
Im überigen Script kann ich keine Passwortabfrage bzw den Header, der diese am Client erfordert, entdecken.
Welcher Web-Server wird betrieben?
Welches OS liegt drunter?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
