PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |
|

14-08-2009, 13:41
|
Alain_S_
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 79
|
|
Ein bereits beschriebenes Feld in einer dynamischen Seite sperren
Hallo
Ich versuche, in meiner dynamischen Tabelle, die ich mit einem Formular aktualisieren kann ein bereits beschriebenes Feld zu sperren, damit es nicht mehr überschrieben werden kann. ich vermute es in dem folgenden Bereich einstellen zu können, weiß aber nicht wie. kann mir da jemand weiterhelfen?
PHP-Code:
?><?php function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue; switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break;
Gruß
|

14-08-2009, 14:01
|
streuner
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Ort: Lüneburg
Beiträge: 623
|
|
Hm...
Hi.
Bin mir nicht sicher, ob ich die Problematik richtig verstehe. Habe zwei Lösungsansätze:
1. Wenn du über ein Formular arbeitest, kannst Du (z.B.) das Eingabe Textfeld danach einfach sperren (einfach auf readonly setzen)
2. extra Spalte in der DB mit einem Bolleaschen Wert, der nach einem Update geändert wird und bei einem SQL Befehl geprüft wird.
mfg streuner
|

14-08-2009, 14:34
|
Alain_S_
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 79
|
|
Ja ich du hast mich richtig verstanden :-)
die 1. Variante scheint die richtige für mich zu sein, weil ich das feld über ein anderes Forlulad dann wieder löschen muss.
An welcher Stelle setze ich das Textfeld denn auf readonly?
Das wären zwei Ausschnitte, aus meiner Formular.
PHP-Code:
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) { $updateSQL = sprintf("UPDATE christines_termine_1 SET fehlt=%s WHERE Trainer=%s", GetSQLValueString($_POST['fehlt'], "text"), GetSQLValueString($_POST['Trainer'], "text")); mysql_select_db($database_christines_termine_1, $christines_termine_1); $Result1 = mysql_query($updateSQL, $christines_termine_1) or die(mysql_error()); <input type="text" name="fehlt" value="<?php echo $row_christines_termine_1['fehlt']; ?>" size="32">
Geändert von Alain_S_ (14-08-2009 um 14:37 Uhr)
|

14-08-2009, 15:39
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 25.236
|
|
Zitat:
Zitat von Alain_S_
An welcher Stelle setze ich das Textfeld denn auf readonly?
|
Wie wär's denn mit der, an der du's ausgibst?
http://de.selfhtml.org/html/formular...e.htm#nurlesen
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

14-08-2009, 15:43
|
streuner
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Ort: Lüneburg
Beiträge: 623
|
|
Gut  ! Geht es darum, dass das Textfeld insgesamt nicht mehr bearbeitbar ist, oder nur temporär (für die aktuelle Session)? Wenn nur für die Session, füllst du ein Hidden Feld mit einem Parameter und fragst ab, ob der existiert, wenn ja setzt du das Textfeld auf "readonly" (oder disabled), oder du füllst ne Session Variable.
Wenn das dauerhaft (bei jedem Aufruf) sein soll, kommst du um eine Hinterlegung eines Wertes (z.B.in eine Datenbank) nicht drumherum. Beim Update setzt du dann in einer extra Spalte einen Booleaschen Wert (z.B. "1", "ja"...etc.) und lässt ihn bei einer SELECT Anweisung auslesen und befüllst damit ein Variable. Mit if fragst du dann im Textfeld, ab ob die Variable folgenden Wert hat...!
Beispiel:
PHP-Code:
$qry = mysql_query("SELECT meinepruefungsspalte FROM meineTabelle, $datenbankconnection);
while ($row = mysql_fetch_array($qry, MYSQL_ASSOC)){ $meinepruefvariable = $row["meinepruefspalte"]; } //...
//Beispiel <input type="text" name="fehlt" value="<?php echo $row_christines_termine_1['fehlt']; ?>" size="32" <?php if ($meinepruefvariable == "1"){ echo "readonly"; } ?>>
mfg streuner
|

14-08-2009, 16:48
|
Alain_S_
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 79
|
|
Ok, dann muss ich das doch bisschen genauer erklären.
Ich habe eine Seite, auf der die Felder mit einem Formular beschrieben werden können. Auf dieser Seite dürfen die bereits beschriebenen Felder nicht überschrieben werden.
Und dann habe ich eine zweite Seite für den "Admin", auf der er die Einträge verändern und löschen kann.
Dashalb muss ich die sperre in das Fromular der ersten Seite einsetzen.
Gruß
|

14-08-2009, 17:00
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 25.236
|
|
Zitat:
Zitat von Alain_S_
Ich habe eine Seite, auf der die Felder mit einem Formular beschrieben werden können. Auf dieser Seite dürfen die bereits beschriebenen Felder nicht überschrieben werden.
|
Dann stellt sich zuerst mal die Frage, ob sie dann überhaupt Formularfelder sein müssen.
Zitat:
Und dann habe ich eine zweite Seite für den "Admin", auf der er die Einträge verändern und löschen kann.
Dashalb muss ich die sperre in das Fromular der ersten Seite einsetzen.
|
Dass diese "Sperre" aber für die Katz' ist, wenn du die übergebenen Werte dann trotzdem auswertest, ist dir hoffentlich bewusst.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

14-08-2009, 17:11
|
Alain_S_
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 79
|
|
Es geht mir auf der ersten Seite nur darum, dass die Felder von dieser Seite nicht überschrieben werden können. Das gibt ein Terminkalender, und sonst könnten die Leute Termine einfach überschreiben. Aber die Mitarbeiter benötigen eine Möglichkeit, falsche Termine zu löschen oder zu ändern. Wenn ich dich richtig verstanden habe, müsste dein Hinweis entkräftet sein oder?
|

14-08-2009, 18:50
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 25.236
|
|
Kommt darauf an, ob du die Werte, die ggf. beim Server ankommen und die du für unverändert hältst, verarbeitest oder nicht.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

17-08-2009, 09:52
|
streuner
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Ort: Lüneburg
Beiträge: 623
|
|
" Es geht mir auf der ersten Seite nur darum, dass die Felder von dieser Seite nicht überschrieben werden können. Das gibt ein Terminkalender, und sonst könnten die Leute Termine einfach überschreiben. Aber die Mitarbeiter benötigen eine Möglichkeit, falsche Termine zu löschen oder zu ändern."
Wenn du die Daten nur darstellen willst, kannst dus als Tabelle ohne Textfelder oder sonstige Eingabemöglichkeit machen. (siehe auch Kommentar wahsaga!) Wenn irgendwo ein Termin (Datensatz) in einem Datumsfeld angezeigt wird, machst du einfach noch 2 links darunter (als Beispiel) einmal löschen und einmal bearbeiten. Das wertest du dann mit ner Funktion jeweils aus! Kannst auch 2 allg. Buttons unter dem Formular machen (löschen, bearbeiten) und man wählt durch klicken von Radio Boxen das entsprechende Datum/Eintrag aus. Ist es das?
mfg streuner
__________________
Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.
"Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"
|

20-08-2009, 18:01
|
Alain_S_
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 79
|
|
Zitat:
Zitat von streuner
"
Wenn du die Daten nur darstellen willst, kannst dus als Tabelle ohne Textfelder oder sonstige Eingabemöglichkeit machen. (siehe auch Kommentar wahsaga!) Wenn irgendwo ein Termin (Datensatz) in einem Datumsfeld angezeigt wird, machst du einfach noch 2 links darunter (als Beispiel) einmal löschen und einmal bearbeiten. Das wertest du dann mit ner Funktion jeweils aus! Kannst auch 2 allg. Buttons unter dem Formular machen (löschen, bearbeiten) und man wählt durch klicken von Radio Boxen das entsprechende Datum/Eintrag aus. Ist es das?
mfg streuner
|
Ja das mit Radio Boxen ist sehr praktisch, werde es übernehmen und den Anmeldenamen bis dahin durchschleusen, dass sich die Leute nur mit ihrem Anmeldenamen anmelden können.
Mein Problem, dass die Leute auch mit diesen Radio Boxen ein bereits beschriebenes Terminfeld überschreiben können besteht trotzdem noch. Das Formuler mit Radio boxen darf ein Terminfeld, in das sich bereits eine andere Person eingetragen hat nicht überschreiben können. Es darf also nur leere Terminfelder beschreiben und bereits beschreibene nicht überschreiben.
Gruß
|

20-08-2009, 18:46
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 25.236
|
|
Zitat:
Zitat von Alain_S_
Mein Problem, dass die Leute auch mit diesen Radio Boxen ein bereits beschriebenes Terminfeld überschreiben können besteht trotzdem noch.
|
Ja dann gebe ihnen diese Möglichkeit halt einfach nicht!
Zitat:
Das Formuler mit Radio boxen darf ein Terminfeld, in das sich bereits eine andere Person eingetragen hat nicht überschreiben können. Es darf also nur leere Terminfelder beschreiben und bereits beschreibene nicht überschreiben.
|
Zu prüfen, ob ein "Terminfeld" bereits belegt ist, oder einen hereinkommenden Belegungswunsch akzeptieren darf, ist letztendlich Aufgabe des serverseitigen Scriptes - ganz egal, wie auch immer die clientseitige Darstellung aussehen mag.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

20-08-2009, 19:08
|
Alain_S_
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 79
|
|
Zitat:
Zitat von wahsaga
Ja dann gebe ihnen diese Möglichkeit halt einfach nicht!
Zu prüfen, ob ein "Terminfeld" bereits belegt ist, oder einen hereinkommenden Belegungswunsch akzeptieren darf, ist letztendlich Aufgabe des serverseitigen Scriptes - ganz egal, wie auch immer die clientseitige Darstellung aussehen mag.
|
Und wie verweigere ich ihnen dies? Es sollte aber eine formularbedingte Sperre sein, weil ich dann über ein anderes Formular auch keine änderungen mehr machen kann.
So wie ich dich verstanden habe, würde ich diese Einstellung auf dem Server machen und dann kann ich selbst über ein anderes Formular auch keine änderungen mahr machen oder?
|

20-08-2009, 19:32
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 25.236
|
|
Es gibt keine "formularbedingte" Sperre.
Du kannst nicht davon ausgehen, dass die Daten, die an verarbeitendes Script geschickt werden, überhaupt von "deinem" Formular kommen - sie kommen irgendwo her. Woher, weisst du nicht im geringsten.
Jedes serverseitige Script hat bei jedem Aufruf zu überprüfen, ob die Daten, die ihm übermittelt wurden, legitim sind.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

20-08-2009, 20:01
|
Alain_S_
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 79
|
|
Zitat:
Zitat von wahsaga
Es gibt keine "formularbedingte" Sperre.
Du kannst nicht davon ausgehen, dass die Daten, die an verarbeitendes Script geschickt werden, überhaupt von "deinem" Formular kommen - sie kommen irgendwo her. Woher, weisst du nicht im geringsten.
Jedes serverseitige Script hat bei jedem Aufruf zu überprüfen, ob die Daten, die ihm übermittelt wurden, legitim sind.
|
mit dem serverseitigen Script habe ich keine Erfahrung.
Ich verwende XAMPP also Apache. Ist das sehr schwierig? Und wie ist das dann, wenn die Seite fertig ist mit dem hochladen der Seite auf den Webserver?
Wenn die Sperre des Feldes beim Server ist, wie kann ich als Administrator dann die Felder bearbeiten? nur noch direkt in der Datenbank?
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Ähnliche Themen
|
Thema |
Autor |
Forum |
Antworten |
Letzter Beitrag |
Momentaufnahme einer dynamischen Seite auslesen und in statische HTML Seite speichern
|
Schkii |
PHP Developer Forum |
4 |
07-04-2008 16:00 |
Kann man einer einzigen IP den gesamten Zugang zu einer webseite sperren/umleiten
|
WeTogether |
Apps und PHP Script Gesuche |
3 |
14-11-2006 13:23 |
Input Feld für daten - eingabe sperren
|
phpfreak |
HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS |
3 |
02-12-2004 13:52 |
Seite sperren
|
Benji |
PHP Developer Forum |
1 |
28-10-2004 09:06 |
mit onunload bereits geöffnete seite wieder laden
|
Clubingman |
HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS |
2 |
13-04-2004 14:35 |
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|