2016-04-11 17 views
0

Guten Tag Alle ... erste Frage hier also bitte vergib mir, wenn es anderswo beantwortet wurde ... Ich konnte keine Antwort finden.Formular Aktion zurück zur gleichen Seite öffnet immer ein neues Fenster

Ich habe eine Seite geschrieben, die ein Formular zusammen mit der PHP-MySQL-Abfrage enthält. Die Formularaktion ist action = "". Wenn ich auf "Senden" klicke, wird das Formular in einem neuen Fenster erneut geöffnet. Das seltsame Ding ist jedoch, dass das zweite Fenster, das sich öffnet, genau so funktioniert, wie es sollte. dh: Durch Klicken auf "Senden" werden die Formulardaten hochgeladen, ohne ein weiteres Fenster zu öffnen.

Hat jemand eine Idee, wie ich das so kodieren könnte, dass sich das Formular nicht in einem zweiten Fenster öffnet ???

das Skript --->

<?php 
    session_start(); 
if(isset($_POST['submit'])){ 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "test"; 
$name=$_POST["chatter"]; 
$text=$_POST["message"]; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "INSERT INTO chat (name, text) 
VALUES ('$name', '$text')"; 

if ($conn->query($sql) === TRUE) { 
$message = "Success! message sent"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 
echo($message); 
} 

?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US"> 
    <head> 

    <title>SafetyChat</title> 
    <style type="text/css"> 
     #chatContents{height:360px; width:313px;} 
    </style> 

    </head> 
    <body> 
    <h1>SafetyChat</h1> 
Welcome to the chat <?php echo($_SESSION["1stName"]);?>. </BR> 
    <iframe id="chatContents" name="chatContents" src="../Chat/contents.php"></iframe> 

    <form target="post" method="post" action="<?php $_SERVER['PHP_SELF'];?>"> 
     <input type="hidden" name="chatter" id="chatter" value='<?php echo($_SESSION["1stName"]. " " .$_SESSION["LstName"]);?>' /> 
     <input type="text" name="message" id="message" style="width: 250px" /></BR> 
     <input type="submit" value="Send" name="submit" id="submit"/> 
    </form> 



    </body> 
</html> 

Ich sollte hinzufügen, dass die iframe aus einer anderen Datei Chatverlauf zeigt ... Ich habe entfernt, dass Code-Abschnitt und die gleichen Ergebnisse erhalten.

+0

Versuchen Sie, die 'action = ""' aus dem Code zu entfernen, das nicht, wenn man nur ein Formular zu machen ist, benötigt wird, Um – Jek

+0

zu aktualisieren, müssen Sie Ihre Eingaben bereinigen - dies hat sql Injektion Einladung geschrieben überall - Sie fügen die Daten in Ihre Datenbank direkt aus Ihrem $ _POST Werte – gavgrif

+0

Vielen Dank Leute ... Ich habe versucht, die Aktion = "" zu entfernen hat nicht geholfen. Ich habe auch versucht, die HTML-Zeile wie unten vorgeschlagen zu entfernen, aber das hat auch nicht geholfen. Es öffnet immer noch das Formular in einem anderen Fenster, das wiederum ordnungsgemäß funktioniert. im Hinblick auf die Bereinigung meiner Eingaben ... danke, und Sie haben absolut Recht ... Ich schreibe all dies auf einem WAMP-Server auf meinem lokalen Rechner als "Proof of Concept". Bevor ich es in Betrieb nehme, werde ich meinen $ _POST aufräumen. Ich frage mich, ob mein Problem das Ergebnis der Ausführung auf einem lokalen Server sein könnte? – dlowey

Antwort

0

versuchen, diese Linie zu entfernen

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

...

<?php 
    session_start(); 
if(isset($_POST['submit'])){ 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "test"; 
$name=$_POST["chatter"]; 
$text=$_POST["message"]; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "INSERT INTO chat (name, text) 
VALUES ('$name', '$text')"; 

if ($conn->query($sql) === TRUE) { 
$message = "Success! message sent"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 
echo($message); 
} 

?> 



<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US"> 
    <head> 

    <title>SafetyChat</title> 
    <style type="text/css"> 
     #chatContents{height:360px; width:313px;} 
    </style> 

    </head> 
    <body> 
    <h1>SafetyChat</h1> 
Welcome to the chat <?php echo($_SESSION["1stName"]);?>. </BR> 
    <iframe id="chatContents" name="chatContents" src="../Chat/contents.php"></iframe> 

    <form target="post" method="post" action="<?php $_SERVER['PHP_SELF'];?>"> 
     <input type="hidden" name="chatter" id="chatter" value='<?php echo($_SESSION["1stName"]. " " .$_SESSION["LstName"]);?>' /> 
     <input type="text" name="message" id="message" style="width: 250px" /></BR> 
     <input type="submit" value="Send" name="submit" id="submit"/> 
    </form> 



    </body> 
</html> 
Verwandte Themen