2016-09-12 3 views
-3

Ich weiß, dass der Titel nicht sehr spezifisch ist, wusste nicht wirklich, wie man es besser formuliert. Ich habe eine Zielseite, wo ich zwei Eingabeformulare für Benutzername und eine für E-Mail und dann eine Absenden-Schaltfläche am unteren Rand habe. Ich möchte wissen, wie ich es so machen kann, dass, nachdem der Benutzer seinen Benutzernamen und E-Mail eingibt und sie einreichen, es auf meine Forum-Registrierungsseite umleitet und automatisch das Feld Benutzername und E-Mail im Forum mit dem, was sie platziert haben, füllt im Formular auf der Zielseite, wenn dies überhaupt möglich ist. Ich hoffe, das ist klar genug erklärt.Landing Page submit button Weiterleitung zur MyBB-Registrierungsseite mit automatisch ausgefüllten Feldern?

Ich benutze MyBB für die Forum-Software. Hier ist das Markup für das Formular und die Schaltfläche

<div class="row"> 
      <div class="col-sm-8 col-sm-offset-2 col-md-6 col-md-offset-3"> 
      <form method="post" role="form"> 
       <div class="form-group"> 
       <input type="username" class="form-control" id="exampleInputUsername" placeholder="Username"> 
       <br /> 
       <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Enter Email"> 
        <br /> 
        <a href="http://127.0.0.1`enter code here`/forum/member.php?action=register"> <button type="submit" class="btn btn-primary btn-lg" >Sign Up</button></a> 
       </div> 

      </form> 
      </div> 
     </div><!--End Form row--> 

Ich verstehe das PHP für die Zielseite. Worauf ich mich verirre, ist, wie man es auf die MyBB-Registrierungsseite überträgt und die korrelierenden Formulare automatisch mit den Angaben auf der Zielseite füllt. Ich hatte noch nie wirklich Erfahrung mit PHP. Ich habe nur HTML/CSS die Designseite von Sachen gemacht. Dies ist wirklich mein erstes Mal mit der Rückseite/Funktionalität der Website zu tun.

Die MyBB-Datei für die Registrierung ist member.php, aber die Datei ist viel zu groß, um hier zu posten, also postete ich sie in einem Gist. https://gist.github.com/RPDeliverance/575fb3d1a1843d65860f5d8a1f68466b

+2

können Sie Ihren Code teilen, so weit? – Roberrrt

+1

Legen Sie die Formularaktion auf der Forumregisterseite fest, und fügen Sie der Formularaktion den Benutzernamen und die E-Mail als Abfrageparameter hinzu. So wie Sie das beschreiben, können Sie einfach einen Ort verwenden.href oder sogar Anker href, es sei denn, die E-Mail und der Benutzername werden im Backend gespeichert, bevor redirect –

+0

Die Idee, die ich nur jemand für mich codieren will, ist überhaupt nicht wahr. Ich kann nicht wirklich viele Informationen dazu finden. Ich habe den Hauptpost mit mehr Informationen aktualisiert. –

Antwort

1

Das ist einfach - es kann wie folgt geschehen:

page1.php:

<?php 
if(isset($_POST['submit'])) { 
    header('Location: page2.php?username='.$_POST['username'].'&email='.$_POST['email']); 
} 
?> 

<form method="post"> 
<input type="text" name="username"> 
<input type="email" name="email"> 
<input type="submit" name="submit"> 
</form> 

page2.php:

<form method="post"> 
<input type="text" value="<?php $_GET['username']; ?>" name="username"> 
<input type="email" value="<?php $_GET['email']; ?>" name="email"> 
<input type="submit" name="submit"> 
</form> 
0

ich diese Informationen in der Sitzung speichern würde , da Sie bereits Sitzungen für Anmeldezwecke verwenden müssen.
Der Trick ist, dass jede Seitenimpression von allen anderen getrennt ist, was bedeutet, dass alles, was Sie von einer Seite zur anderen sehen wollen, in einem dauerhaften Speicher gespeichert werden muss. Wie die Sitzung, ein Cookie oder ähnliches. Erstellen eines geistigen Modells dieser Kette von Eingabe ->Prozess ->Ausgabe, für jede Seitenansicht. Wo Sie den gesamten PHP-Code vom HTML trennen, wird es Ihnen auf lange Sicht leichter machen. Denken Sie daran, dass des PHP-Codes auf dem Server verarbeitet wird, bevor der HTML-Code an den Client gesendet wird; In dieser Hinsicht gibt es kein "PHP im HTML".

Denken Sie daran, die Eingabe zu validieren, um sicherzustellen, dass Sie etwas erhalten, das mindestens einem richtigen Benutzernamen entspricht (z. B. eine Untergruppe von Zeichen, die eingegeben werden können). Außerdem ist es äußerst wichtig, sich daran zu erinnern, die Ausgabe zu verlassen, wenn Sie sie zum nächsten Formular hinzufügen. Ansonsten bist du offen für XSS, was du willst/nicht sein willst.

Der Code von @TheCodesee ist nicht sicher, übrigens, da er es auch nicht geschafft hat. Hier ist ein kurzes Beispiel, wie ich es tun würde:

// On the page handling the submission. 
if (isset ($_POST['username'])) { 
    $_SESSION['username'] = filter_var ($_POST['username'], FILTER_SANITIZE_STRING); 
} 

// Later on, in the code generating the page for the form. 
if (!empty ($_SESSION['username'])) { 
    $Template->form_username = htmlspecialchars ($_SESSION['username']); 
} 

http://php.net/manual/en/function.filter-var.php

+0

_ "Der Code von @TheCodesee ist nicht sicher" _ fragte das OP nach einem sicheren Code? –

+0

Ich möchte hier keine Konversation/Diskussion starten, aber ... Wenn Sie unsicheren Code posten, von dem andere lernen können, verewigen Sie das Problem mit unsicherem Code. Niemals davon ausgehen, dass das OP weiß, was sicherer und unsicherer Code ist. – ChristianF