Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Formulare in PHP

Empfohlene Antworten

Veröffentlicht

Hallo Ihr!

Ich habe da mal ein Problem, an dem ich mir die Haare ausreiße. Entweder bin ich zu blond oder ich bin einfach nur zu blond...:D

Folgendes Problem:

Ich weiß zwar, wie ich aus einem Html-Formular Variablen in eine PHP-Form bekomme. Mein Problem ist jetz, wie bekomme ich genau diese Variablen in das übernächste Formular und in die nächsten?:(

Kann mir bitte jemand helfen?:rolleyes:

Dank und Anerkennung im Voraus :)

Du könntest das ganze z.B. anhand einer session sammeln und in der datenbank speichern.

eine andere alternative wäre z.B. das ganze über versteckte Formularfelder á la <input type="hidden" ... > laufen zu lassen ...

Hallo,

also vielen Dank erstmal. Aber ich bin wohl doch zu blond? Ich versuche das ja mit <input type='hidden'...> aber irgendwie klappt das nicht wirklich. Vielleicht mache ich bei der Übermittlung etwas falsch? Ich leite das mit POST weiter. Ist das vielleicht der Fehler?

Ich weiß einfach nicht mehr weiter...

Wenn du ein bisschen ausführlicher wirst und vielleicht deinen Code postest, könnte ich dir vielleicht weiter helfen ... ^^

es geht um folgendes...ich soll eine datenbank über nen browser von außen zugänglich machen. aber nur leute, die registriert sind und auch dann nur auf bestimmte seiten. deswegen muss ich eine variable haben, auf der ich beim aufruf der einzelnen seiten prüfen kann, ob zugang erlaubt ist oder nicht.

hier der Text aus der html_seite:

<form action = "reg_info.php" method = "post">

<TABLE ALIGN="CENTER" CELLSPACING=0 CELLPADDING=0 WIDTH="80%">

<TR VALIGN="middle">

<TD ALIGN="RIGHT" VALIGN='middle'>E-Mail: </TD>

<TD WIDTH='5%'> </TD>

<TD><input name="email" SIZE='35%'> <p></TD>

</TR>

<TR VALIGN="middle">

<TD ALIGN="RIGHT"><input type = "reset"></TD>

<TD></TD>

<TD><input type = "submit" VALUE="Weiter" ></TD>

</TR>

</TABLE>

</form>

(habe mich erstmal für die email entschieden, um das zu testen)

hier jetzt die erste php-seite, wo ich das ganz normal auslesen kann:

<?php

$email=$_POST['email'];

(dann in einer Tabelle ausgeben...)

echo "<TR ALIGN='left' VALIGN='middle'>";

echo "<TD ALIGN='RIGHT'>E-Mail:</TD>";

echo "<TD><input name='email' VALUE=$email ></TD>";

echo "<TD><B> $email </B></TD></TR>";

echo "<TR><TD> </TD></TR>";

?>

in der mittleren zeile trage ich die email ein als "HIDDEN"

ja und wenn ich dann weiter auf die nächste seite gehe...da sollte dann die email auch noch da sein...ist sie aber nicht mehr.

ich übertrage die variable doch genau wie vorher und fange sie auch genau wie vorher auf...also, was mach ich falsch?

mach aus deinem


echo "<TD><input name='email' VALUE=$email ></TD>";
[/PHP]

mal ein

[PHP]
echo "<TD><input type='hidden' name='email' VALUE=$email ></TD>";

Du solltest allgemein deinen <input's ein type attribut geben wie type="hidden" oder type="text"

Man Bedenke bitte dringend das type=hidden input Felder in jedem "Schritt" des Formulars böswillig vom Anwender verändert werden könn(t)en. Das heißt man wird die Werte mehrfach Überprüfen müssen.

Sessions sind heute mit PHP weitaus einfacher zu realisieren, und der Wert bleibt nach dem ersten Absenden (und Prüfen!) auf dem Server.

/edit

Zum "wie" hilft http://de.php.net/session_start. Nach einem session_start(); kannst du im Grunde jeden Wert des Formulars in einer $_SESSION["foo"] Variable speichern; diese sind dann persistent. Man sollte die Session-Einstellungen in der php.ini (Lebensdauer etc.) beachten.

hidden felder sind schnee von gestern, heute sind, wie mein vorredner schon sagte, sessions IN. da führt kein weg vorbei !

Vielen Dank!

Ich habe mich für die SESSION-Variante entschieden. Jetzt habe ich nur das nächste Problem. Wenn ich SESSION_START(); aufrufe, gibt der Browser eine Fehlermeldung aus ("Cannot send session cookie..." / "Cannot send session cache limiter..."). Wo kann ich die Einstellungen ändern, damit diese Meldungen nicht mehr erscheinen?

Sonst ist das ja eine saubere Lösung...

Danke im Voraus

Wo kann ich die Einstellungen ändern, damit diese Meldungen nicht mehr erscheinen?

Gar nicht. Das änderst du, indem du den Fehler, auf den die Meldung dich ja hinweist, entfernst.

Cookies werden im Header der Seite mitgeschickt (die Session-ID wird standardmäßig in einem Cookie abgelegt). Wenn der HEader aber schon weg ist, kann kein Cookie mehr angelegt werden. Das ist genau das, was die Meldung dir sagt.

Abhilfe: Session starten bevor irgendwelche Ausgaben auf der Seite gemacht werden.

Abhilfe: Session starten bevor irgendwelche Ausgaben auf der Seite gemacht werden.

Vielleicht bin ich doch einfach nur zu blond.

Hier der Text:

<HTML>

<HEAD>

<TITLE>TEST Seite 1</TITLE>

</HEAD>

<BODY>

<?php

session_start();

echo 'Willkommen auf Seite #1';

$_SESSION['farbe'] = 'grün';

$_SESSION['tier'] = 'Spinne';

$_SESSION['zeit'] = time();

echo '<br /><a href="test2_2.php?' . SID . '">Seite 2</a>';

?>

</BODY>

</HTML>

Wo, wenn nicht als erste Zeile im php-Code soll die SESSION_START() denn stehen??? :rolleyes:

Wo, wenn nicht als erste Zeile im php-Code soll die denn stehen???


<?php

  session_start();

?>

<HTML>

<HEAD>

<TITLE>TEST Seite 1</TITLE>

</HEAD>


<BODY>


<?php

  ...

  ...

?>


</BODY>

</HTML>

:D Okay, okay...ich habe es verstanden :)

Ich wusste nicht, dass man da oben auch etwas initialisieren kann.

Danke!

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.