Formular & Sessions
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abhilfe
abschicken
anfang
aufnehmen
auftauchen
button
code
einbindung
eingabe
fehler
fehlermeldung
formular
funktionieren
platzhalter
post
problem
session
versand
vorschau
weiterleitung
-
Hi,
ich habe ein Formular gebastelt und möchte hierfür auf der folgenden Seite eine Vorschau desselben einbauen, wonach anschließend noch ein paar weitere Daten angegeben werden müssen. Am Ende sollen alle Eingaben gebündelt als E-Mail versand werden.
Nun stecke ich fest. Ich habe mich etwas in sessions eingelesen, da dies das erste Mal ist das ich damit zutun habe.
Das Formular ansich ist fertig und um TinyMCE ergänzt (zwei textareas sind damit ausgekleidet).
<form action="erstellen-script.php" method="post" class="no_padding"> <fieldset class="create_form_fieldset" id="for_what"> <h2>Platzhalter</h2><p> <div class="position_absolute" id="for_what_input_box"> <label for="Platzhalter">Platzhalter</label> <input id="Platzhalter" name="Platzhalter" class="input_small" type="text" required> </div> </fieldset> <fieldset class="create_form_fieldset"> <h2>Platzhalter</h2><p> <span>Dateigröße max. 5 MB</span><p> <input type="file" accept="image/*"> </fieldset><p> <fieldset class="create_form_fieldset"> <h2><label class="title_spacing" for="Platzhalter">Platzhalter</label></h2><br> <textarea id="Platzhalter" class="input_big tiny" placeholder="Platzhalter" required></textarea> </fieldset><p> <fieldset class="create_form_fieldset"> <h2><label class="title_spacing" for="when">Platzhalter</label></h2><br> <textarea id="when" class="input_big tiny" required></textarea> </fieldset> <fieldset class="create_form_fieldset"> <input id="create_submit2" class="create_form_fieldset" type="submit" value="Vorschau anzeigen"> </fieldset> </form>
Dies ist das 1. Formular.
<?php session_start(); $varibale1 = $_POST ['platzhalter']; $_SESSION ['titel'] = $varibale1; $varibale2 = $_POST ['platzhalter']; $_SESSION ['name'] = $varibale2; $place = $_POST ['place']; $_SESSION ['ort'] = $place; //error_reporting(0); $previewPage = 'http://www.website.de/vorschau.php'; header("Location: " . $previewPage); ?>
Hier habe ich das php script begonnen. Nun sollte mit klick auf den "Vorschau" Button doch eigentlich eine Weiterleitung auf die Vorschauseite erfolgen. Das die Übergabe der Variablen aufgrund der benennungen noch nicht funktioniert ist bekannt, die habe ich hier nur schnell umbenannt.
Wie auch immer, mit Klick auf den Button passiert garnichts, die Formular Eingaben werden nichteinmal zurückgesetzt, auch lädt die Seite nicht neu, es passiert schlichtweg nichts und ich weiss nicht warum. Hat hier jemand einen guten Hinweis für mich?
Wenn ich dieses Problem gelöst habe wird bestimmt noch die eine oder andere Frage richtung Session Verwendung auftauchen :)
EDIT: Habe den Fehler gefunden. Ich habe im Quellcode folgendes gehabt: <input></input> Das ist natürlich falsch, der schließende Tag war zuviel. Jetzt klappt es auch ;) Allerdings funktioniert die session noch nicht, die Eingaben habe ich über variablen ja der session zugewiesen, jedoch werden sie mir in der vorschau nicht angezeigt.
Hier der Code in der Vorschau:
<h1><?php echo $_SESSION ['titel']; ?></h1>
Sollte das so nicht eigentlich funktionieren?
EDIT: Verrückt, nun kann ich das Formular schonwieder nicht abschicken... offensichtlich ist der Fehler ein anderer.
Beitrag zuletzt geändert: 29.12.2015 16:16:28 von gamegazer -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Error Reporting angeschaltet?
Was sagt denn die Fehlermeldung?
So ist ansonsten nichts auffälliges an deinem geposteten Code.
-
Eine Fehlermeldung bekomme ich tatsächlich nicht, das Reporting ist aber an. Ich hab jetzt nochmal etwas geschaut und den vermeidlichen Fehler gefunden. Es scheint an TinyMCE zu liegen, welches ich auf der ersten Seite im head lade.
<script src="//cdn.tinymce.com/4/tinymce.min.js"></script> <script>tinymce.init({ selector:'.tiny' });</script>
Wie kann ich es denn dann einbinden wenn es so scheinbar Probleme bereitet?
Auf der Vorschauseite habe ich nun die Fehlermeldung:
Notice: Undefined variable: _SESSION
Dies heir ist der Code:
<h1><?php echo $_SESSION ['titel']; ?></h1>
Beitrag zuletzt geändert: 29.12.2015 16:52:43 von gamegazer -
Hi,
schön das du einige deiner Fehler selbst gefunden hast, am Anfang des Lernprozesses passiert sowas schonmal.
Du solltest zuerst einmal über print_r($GLOBALS) prüfen, ob deine Variablen alle gesetzt sind.
Deine Post-Variablen funktionieren teilweise nicht, da in dem HTML-Code der name='' fehlt. Über diesen wird eine Post-Variable in php erstellt.
Auch die Fehlermeldung Undefined variable: _SESSION ist richtig, warum? Eine Array-Variable wird OHNE Leerzeichen geschrieben.
echo $_SESSION['titel'];
Bei einem Leerzeichen zwischen $_SESSION und ['titel'] kennt php nicht, daraus macht er schlicht eine Variable namens $_SESSION.
Ich hoffe ich konnte dir ein wenig helfen.
MFG Micha -
Ah vielen Dank. Das mit dem Leerzeichen war mir nicht bewusst. Die fehlenden name="" Attribute sind nun auch aufgefüllt, diese waren noch nicht gesetzt, da bereits die vorhandenen nicht funktionierten. Sind nun aber schonmal ergänzt ;)
Über den print_r($GLOBALS) wird ja allerhand ausgegeben, es scheint als würde er auch alle Eingaben aus dem Formular aufnehmen, nur gibt er sich in der Vorschau auf der nächsten Seite nicht an, obwohl ich dort eben den Code angepasst habe.
<h1><?php echo $_SESSION['titel']; ?></h1><p>
EDIT: Haha, habs doch hinbekommen, mir war nicht bewusst, dass ich
auf jeder Seite angeben muss, auf der ich die variablen auch nutzen möchte.session_start();
Welches Problem nun aber noch besteht ist der TinyMCE, der scheint mir meine eigene php datei zu blockieren. Kommentiere ich die TinyMCE Einbindung im <head> aus funktioniert alles.
<script src="//cdn.tinymce.com/4/tinymce.min.js"></script> <script>tinymce.init({ selector:'.tiny' });</script>
Darum geht es. Ich habe den Editor nur extern eingebunden. Würde eine interne Einbindung abhilfe schaffen? Warum stellt dieses Script sich quer?
PS: der TinyMCE wird innerhalb des betreffenden Formulars genutzt, wo die per action=" eingebundene php nichts tut.
Beitrag zuletzt geändert: 29.12.2015 19:46:26 von gamegazer -
Hast du denn auch am Anfang wieder
session_start();
drin?
Denn ansonsten kann die Session nicht fort gesetzt werden. -
HAHA, das mit der session_start() wollte ich auch gerade schreiben, aber das hast du ja auch schon herausgefunden.
Ich kann mit nicht vorstellen, warum es nicht funktionieren soll. Kannst du nicht einfach deinen komplette Code posten? Bzw. mir eine Nachricht schreiben?
MFG Micha -
Habe euch beiden eine private Nachricht geschickt.
Beitrag zuletzt geändert: 30.12.2015 12:50:55 von gamegazer -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage