Vollständige Version anzeigen : [PHP] hidden Feld aus form wird nicht übertragen


AceOnFire
08.07.2015, 19:40

Da ich bei meinem Problem (Mit-Office-2013-oder-anderem-Programm-Suchergebnisse-automatisch-markieren) leider keine Lösung gefunden habe, dachte ich mir, dass ich mir mal selbst eine programmiere.

Das PDF habe ich zum leichteren Arbeiten in eine HTM Datei umgewandelt.
Das Finden und Markieren der Paragraphen funktioniert, nur leider wird der Text mit den Markierungen nicht übertragen.

Hier ist der gesamte Code, den ich geschrieben habe.


<?php
$datei="text;htm";

if(!isset($_POST['source']))
{
$source = implode("",file($datei));
echo "Text neu geladen<br>\n";
echo "Zeichen im Text:";strlen($source);"<br>\n\n";
}
else
{
$source = str_replace('|', '>', str_replace('~', '<', $_POST['source'])); // Kehrt die Vertauschung aus form wieder um
}
if(isset($_POST['paragraph']))
{
$paragraph=$_POST['paragraph'];
$new_source=substr ( $source , 0 , strpos ( $source , "<BODY>" ) ); // Vor BODY kommen noch einige Vormatierungen mit ***px Angaben,
$source=substr ( $source , strpos ( $source , "<BODY>" ) ); // die nicht mit durchsucht werden sollen.
if(is_numeric ( $paragraph ))
{
$pos=strpos ( $source , $paragraph );
while ($pos!==false){
$paragraph_length=strlen($paragraph);
$zeichen_vor_pos=substr ( $source , $pos-1 , 1 );
$zeichen_nach_pos=substr ( $source , $pos+$paragraph_length , 1 );
if( !is_numeric ( $zeichen_vor_pos ) AND !ctype_alpha($zeichen_vor_pos) AND !is_numeric ( $zeichen_nach_pos ) AND !ctype_alpha($zeichen_nach_pos) ) // Ueberprueft, ob sich for und nach NEEDLE noch Zahlen (waere dann nicht der gesuchte Zahlenwaert) sind
{
$new_source;=substr ( $source , 0 , $pos-$paragraph_length+1 );"<span style=\"background-color:yellow\">";substr ( $source , $pos , $paragraph_length);"</span>";
$source=substr ( $source , $pos+$paragraph_length ); // Setzt den Befehl fuer die Textmarkierung fuer die spaetere Ausgabe
}
$new_source=$new_source;substr ( $source , 0 , $pos+1 );
$source=substr ( $source , $pos+1 );
$pos=strpos ( $source , $paragraph );
}
}
$source=$new_source;$source;
}
?>

<form action="index;php" method="post">
<p>Paragraph: <input type="text" name="paragraph" /></p>
<p><input type="hidden" name="source" value='<?php echo str_replace('>', '|', str_replace('<', '~', $source)); ?>' /></p> <!--// Ersetzt "<" und ">", damit es keine seltsame Ausgabe gibt -->
<p><input type="submit" /></p>
</form>

<?php
echo "$source";
?>


Hier ist noch der Link zur htm Datei. (;;;xup~in/dl,19907421/text;htm/)

Ich hatte nur etwas html/php in der 10ten Klasse und das was ich gebraucht habe, habe ich mir schnell zusammengesucht;:P
Hoffe, dass es nur eine Kleinigkeit ist, die geändert werden muss.

Wäre für Hilfe echt dankbar.

Hardware Preisvergleich | Amazon Blitzangebote!

Videos zum Thema
Video Loading...
AceOnFire
12.07.2015, 11:59

Kann mir da echt keiner helfen?


raid-rush
12.07.2015, 14:28

Code schaut soweit funktional aus, hast du mal in die Errorlog geschaut von PHP evtl ist der Text zu lange, weil POST hat meistens eine Limitierung durch gewisse PHP-Schutzfunktionen.

value='<?php echo str_replace('>', '|', str_replace('<', '~', $source)); ?>' />

Wenn der $source ein ' enthält geht es auch nicht mehr... also ist Fehleranfällig. Du müsstest also ' auch durch " ersetzen.

Am einfachsten wäre htmlspecialchars($source,ENT_QUOTES)

PS. Thema wurde in Webentwicklung verschoben.


Ähnliche Themen zu [PHP] hidden Feld aus form wird nicht übertragen


raid-rush.ws | Imprint & Contact pr