Wie sanieren ich eine Zeichenfolge in PHP, die „enthält; Echo"? (Ich habe einen festen Grund)

StackOverflow https://stackoverflow.com/questions/2807940

  •  25-09-2019
  •  | 
  •  

Frage

drehte ich diesen Fall in eine einfache PHP-Seite, dass wirft sich. Mein Problem ist, dass ich Spurtreffen- Ergebnisse vorlege und einer der Mädchennamen ist Echo ... ein schöner Name.

Das Problem Text ich Einreichung ist: Stabhochsprung - Rachel Simons, Werg, 8-6; Echo Wilson, Cit, 8-0; Molly Randall, Werg, 7-0;

So Sie ein Semikolon gefolgt von Leerraum zu sehen, gefolgt von Echo ...

Nach dem Absenden, heißt es: POST /results/test.php nicht unterstützt

Das Endziel ist es zu einer Datenbank zu speichern, zusammen mit einigen anderen Informationen und haben eine Suchseite zu finden und einfach das gesamte Ergebnis auf dem Bildschirm ausdrucken. Ich zog alle Sachen meine Datenbank aus, um es bis auf diesen einen Fehler. Ich meine, kann ich absichtlich ihren Namen falsch buchstabieren, aber es muss doch einen Weg, um dieses, nicht wahr ???

Hier ist der Test PHP-Datei.

<html>
<head>
<title>title</title>
</head>
<body>
<?php
echo "<h3>Edit meet info below</h3>";
echo "<form action=\"test.php\" method=\"post\" id=\"submitForm\">";
echo "Full Results:<br/><textarea NAME=\"results\" id=\"results\" rows=\"20\" cols=\"80\" MAXLENGTH=\"8191\"></textarea><br/><br/>";
echo "<input type=\"submit\" name=\"submitMeet\" value=\"Submit\">";
echo "</form>";
?>
</body>
</html>
War es hilfreich?

Lösung

Es klingt wie Sie etwas lahm Sicherheitssystem (Vielleicht mod_security?) Haben, dass die Anfragen abtastet und die Ablehnung diejenigen, die aussehen wie sie ein Risiko sein könnte.

Sie haben Ihren Web-Host oder etwas fragen, ob sie es deaktivieren. Es gibt NO PHP-Funktion, die auf jede Kombination von Text eine POST-Anforderung abzulehnen willkürlich basiert wird. (Zumindest nicht in diesem Fall)

Andere Tipps

Sie müssen nur Echo erhalten müssen, ihren Namen zu ändern ... Name ... Namen.

Aber im Ernst, Blick in das, was webdestroya vorgeschlagen. Wenn das nicht funktioniert, ich glaube, die schnelle und unsaubere Lösung wäre, das Trennzeichen Sie die Namen in der POST-Anfrage verwenden, um zu ändern, zu trennen und dann das Trennzeichen zurück zu Semikolons ändern, nachdem es empfangen wird. So können Sie so etwas wie dieses POST würde:

Pole vault - Rachel Simons, Tow, 8-6||Echo Wilson, Cit, 8-0||Molly Randall, Tow, 7-0||

Dies ist dann tun:

$data = str_replace('||', ';', $the_data_you_posted);

Wenn Sie nicht wollen, manuell das Trennzeichen geben, wenn die Ergebnisse eingeben, können Sie ein kleines JavaScript schreiben die Semikolons automatisch zu konvertieren, z.B. auf einreichen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top