Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
formular [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
formular


 
nakg
20-07-2004, 11:07 
 
hi leute
hab da ein leichtes problem ! folgendes-->

habe im wesentlichen eine seite welche admin.php heist. diese seite soll sowas ähnliches wie ein "abgespeckter phpMyAdmin werden.

logge mich auf dieser seite mittels ldap ein --> das loginformular wird in der funktion login_form erzeugt. wenn die auth. ok ist "verschwindet" das login form und es wird eine weitere funktion gen_erh() aufgerufen in dieser funktion wird ein formular mit zwie eingabemöglichkeiten erstellt.
wenn ich nun den weiter button drücke wird die nächste funktion shoe_erh_name aufgrufen da wird wieder ein form generiert in welchen die eingaben von gen_erh verarbeitet und dargestellt werden.

nun: wie bringe ich das am besten hin das nun das formular aus gen_erh nach eingabe der werte verschwindet und das formular an dieser stelle aus show_erh_name angezeigt wird --> geht es das ich das alles auf der seite admin.php mache ... hab da ein verständnisprob. oder kann sowas nicht machen bitte um hilfe
hir noch meine scripts und funktionen
admin.php:
<?php
session_start();
//require("connect.php");
require("ldap_lsr.php");
require("lib_admin.php");
$debug = 0;
// HTML Titel Schreiben
echo"<html>\n";
echo"<head>\n";
echo"<title>LSR-NOE Erhebungen</title>\n";
echo"</head>\n";
echo"<body>\n";
echo"<center><h1>LSR-NOE Online-Erhebungen</h1>\n";

if ($debug) {
show_debug();
} ;

if (!isset($_SESSION['login'])) {
$_SESSION['login'] = 0;
}
// Bei logout Session löschen
if (isset($_POST['logout'])) {
//log_event("LOGOUT");
session_unset();
session_destroy();
}
// Bei login LDAP-Anmeldung
if (isset($_POST['user']) AND isset($_POST['password']) AND isset($_POST['login'])) {
login_ldaplsr($_POST['user'], $_POST['password']);
if ($_SESSION['login']) {
// log_event("LOGIN");
} else {
$fail = $_POST['user'] . "/" . $_POST['password'];
//log_event("LOGIN FAIL: $fail");
}
}
// Anmeldeformular bzw. Abmeldeschaltfäche anzeigen
if (!$_SESSION['login']) {
echo"<div align=center>";
if (!$_SESSION['login']) {
echo"<h2>Anmeldung</h2>\n";
echo"<font color=red size=-1>Bitte verwenden Sie im Erhebungs-System <b>niemals</b> die \"Zurück\"-Schaltfläche Ihres Browsers!</font><p>\n";
login_form();
} else {
echo"<H2>Derzeit keine Erhebungen verfügbar</H2>\n";
}
echo"</div>";
} else {
echo"<table cellpadding=5><tr bgcolor=#DDDDDD><td>\n";
echo"</td><td>\n";
logout_button();
echo"</td></tr></table>\n";
echo "<hr>";
}

if ($_SESSION['login']){
gen_erhebung();
$erh_name = $_POST['erh_name'];
$erh_anzahl = $_POST['sp_anzah'];
}

if (isset ($_POST['weiter'])){
show_erh_name($erh_name,$sp_anzahl );
}


?>


funktionen;

// Anmeldeformular
function login_form()
{
echo"<table>";
echo"<form method=\"post\" action=\"admin.php\">\n";
echo"<tr><td><b>Kontoname:</b></td><td><input type=text name=\"user\" size=8 maxlength=8></td></tr>\n";
echo"<tr><td><b>Passwort:</b></td><td><input type=password name=\"password\" size=16 maxlength=16></td></tr>\n";
echo"<tr><td><font size=-1>Anmeldung mit den Kontodaten von noeschule.at!</font></td><td><input type='submit' name='login' value='Anmelden'></td>\n";
echo"</form></table>\n";
}
// Abmeldebutton
function logout_button()
{
echo"<form method=\"post\" action=\"admin.php\">\n";
echo"<input class=ser type=\"submit\" name=\"logout\" value=\"Abmelden\">\n";
echo"</form>";
}

// erhebung baun
function gen_erhebung()
{
echo"<table>";
echo"<form method=\"post\" action=\"admin.php\">\n";
echo"<tr><td><b>Erhebungsname:</b></td><td><input type=text name=\"erh_name\" size=20 maxlength=20></td></tr>\n";
echo"<tr><td><b>Anzahl der benötigten Felder:</b></td><td><input type=int name=\"sp_anzahl\"></td></tr>\n";
echo"<tr><td><font size=-1>Mit weiter werden die Eingaben verarbeitet.</font></td><td><input type='submit' name='weiter' value='weiter'></td>\n";
echo"</form></table>\n";
}

function show_erh_name($erh_name, $sp_anzahl){
echo"<form method=\"post\" action=\"admin.php\">\n";
echo"<tr><td><b>test:</b></td><td><input type=text name=\"test\" size=20 maxlength=20></td></tr>\n";
echo $erh_name;
echo $sp_anzahl;
echo"</form>\n";
}

 
wahsaga
20-07-2004, 11:11 
 
Original geschrieben von nakg
nun: wie bringe ich das am besten hin das nun das formular aus gen_erh nach eingabe der werte verschwindet und das formular an dieser stelle aus show_erh_name angezeigt wird
dein submit-button im gen_erh-form heißt "weiter" mit value "weiter".
also frag doch einfach ab, ob dieser wert übermittelt wurde.

if(!empty($_POST['weiter']) && $_POST['weiter'] == 'weiter' ) { // jetzt nächstes formular ausgeben }


solche sich selbst wieder aufrufenden formularseiten nennt man auch "affenformular", http://www.dclp-faq.de/q/q-stil-normalform.html gibt weitere hinweise.


p.s.: *verschieb* zu PHP.

 
nakg
20-07-2004, 11:22 
 
erstmal danke für die antwort !
er zeigt mir zwar das formular aus show_erh_name an aber "darüber" bleibt das formular aus gen_erh stehen .
will aber das nach drücken des buttons weiter eben das form aus gen_erh verschwindet und an dieser stelle das andere anzeigt.

 
wahsaga
20-07-2004, 12:35 
 
Original geschrieben von nakg
er zeigt mir zwar das formular aus show_erh_name an aber "darüber" bleibt das formular aus gen_erh stehen .
und ein wenig mitdenken ist zu viel verlangt?

if(bedingung) { // zeige formular aus show_erh_name() }

das kriegst du also hin? fein.


wo ist dann das problem, auf etwas analogs in der art

if(!bedingung) { // zeige formular aus gen_erhebung() }

zu kommen, so dass dieses formular nur dann angezeigt wird, wenn die bedingung eben noch nicht erfüllt war ...?

 
nakg
20-07-2004, 13:01 
 
versteh ich nicht

will einfach das das was in der ersten funktion also formular ein weg ist wenn ich weiter gedrückt habe und an der gleichen stelle auf dem bildschirm das formular aus funktion 2 dargestellt wird und das alles auf der gleichen seite admin.php

weis nicht was du mit der bedingung meinst ?
speichere mit weiter die eingaben in eine var und gebe is im zwieten formular wieder aus will aber das mann das erste nicht mehr sieht

bitte nicht böse sein wenn ich so dumm frage

 
wahsaga
20-07-2004, 13:11 
 
Original geschrieben von nakg
weis nicht was du mit der bedingung meinst ?
na das, was ich oben gepostet hatte, die abfrage!

die hat doch nach deiner aussage auch schon "funktioniert".

also wo ist das problem, eine bedingung zu negieren, und anhand dieser abfrage dann zu entscheiden, ob das erste formular ausgegeben werden soll oder nicht ...?

 
nakg
20-07-2004, 13:45 
 
ich raff das einfach nicht !
bedingung für aufruf des formulars aus show_erh_name ist das der button weiter gedrückt ist.
dann soll eben nur das form angezeigt werden ..

wenn also weiter gedrückt wurde wird mit

if (isset ($_POST['weiter'])){ // abfrage ob wieter gedrückt

show_erh_name($erh_name,$sp_anzahl ); // dann diese funktion
}



da steht dann aber in admin.php weiter oben immer noch


if ($_SESSION['login']){ // session wird bei login gesetzt trifft also immer zu
gen_erhebung(); // erste funktion --> zu daten eingeben
$erh_name = $_POST['erh_name'];
$erh_anzahl = $_POST['sp_anzah'];
}



und eben genau dies wird dann wieder angezeigt
wüsste nicht wie und mit welchr bedingung ich das wegbekomme!damit zwar werte noch vorhanden sind funktion bzw ebnen das formular aus der funktion weg ist

könnte ja sein das wir aneinander vorbeireden

 
ExInfernis
20-07-2004, 13:52 
 
if($_SESSION['login'])
{

if(!$Formular-abgeschickt)
{
Zeige Eingabeformular
}
elseif($Formular-abgeschickt)
{
Zeige den Adminbereich
}
}


Schon mal daran gedacht ?

 
nakg
20-07-2004, 14:06 
 
ne
muss in den adminbereich wo ich dann meine formulare (werden noch mehr als zwei) die voneinander abhängig sind bearbeiten kann.

 
wahsaga
20-07-2004, 14:28 
 
Original geschrieben von nakg
wenn also weiter gedrückt wurde wird mit
if (isset ($_POST['weiter'])){ // abfrage ob wieter gedrückt

show_erh_name($erh_name,$sp_anzahl ); // dann diese funktion
}
da steht dann aber in admin.php weiter oben immer noch
if ($_SESSION['login']){ // session wird bei login gesetzt trifft also immer zu
gen_erhebung(); // erste funktion --> zu daten eingeben
$erh_name = $_POST['erh_name'];
$erh_anzahl = $_POST['sp_anzah'];
}
und eben genau dies wird dann wieder angezeigt
wüsste nicht wie und mit welchr bedingung ich das wegbekomme!
dann nutze doch da einfach die gleiche bedingung, nur negiert:
if ($_SESSION['login']){ // session wird bei login gesetzt trifft also immer zu
if ( !isset($_POST['weiter'])) { // abfrage ob weiter NICHT gedrückt
gen_erhebung(); // erste funktion --> zu daten eingeben
...

was zum henker kapierst du denn daran bitte nicht?

 
nakg
20-07-2004, 17:20 
 
danke erst mal

funkt soweit
wenn ich nun im zweiten formular (nachdem das erste nicht mehr angezeigt wird) wieder einen button weiter einbau und dann eine 3 funktion mit einem 3 formular aurufen möchte ( erstes und zweites sollen dann wieder nicht angezeigt werden) funkt das dann genauso
oder sollte mann jeweils in den funktionen( formularen) variable setzten und die dann auf die gültigkeit prüfen

dh: ich frage garnicht ab ob weiter gesetzt ist sondern ob andere variablen übergben werden ??

hoffe nerv dich mit meiner dummen fragerei nicht zu sehr aber aller anfang ist schwer

 
ExInfernis
20-07-2004, 18:08 
 
Ja, eigentlich schon.

Hast dann eben noch :

if (isset ($_POST['weiter2'])){ // abfrage ob weiter2 gedrückt wurde

Manchmal ist es aber übersichtlicher lieber eine neue Seite mit dem Formular anzusprechen.
Also für jeden größeren Schritt lieber ne neue Seite, um die Verschachtelung nicht zu kompliziert werden zu lassen (schließlich muss sich der Interpreter da jedesmal durchwurschteln), deine Login-Überprüfung könntest du dann auf jeder Seite includieren.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:46 Uhr.