Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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 :)

Geschrieben

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 ...

Geschrieben

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...

Geschrieben

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?

Geschrieben

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"

Geschrieben

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.

Geschrieben

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

Geschrieben
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.

Geschrieben
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:

Geschrieben

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>

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...