Stringoperationen in PHP

  • Hallo Leute,

    ich muss mich leider hier doch mal mal melden. Habe folgendes Problem.
    Nehmen wir an es befindet sich ein input type=text name=text in einem Webformular.
    Sobald der Button Anlegen gedrückt worden ist, wie ein zweites PHP-File geöffnet.

    hier steht:
    $mytest = $_POST['test'];
    jetzt habe ich das Problem, dass wenn ich das so in ein Textfile schreibe ich es nicht mehr mit einem Bash-Script lesen kann.
    Genau! Es liegt an dem \r\n
    Wie bekomme ich ein CRLF an eine übergebene Variable mit method=post

    Bin für jeden Ratschlag dankbar

  • Hi,
    das Prinzip hat Dir Jörg ja schon erklärt, aber das:


    ...
    $mytest = $_POST['test'];
    ...


    muss wohl

    Code
    $mytest = $_POST['text'];


    heissen, oder?
    Ausserdem wird unter Linux in Texten keine CR/LF Kombination verwendet sondern nur ein '\n' ... das kann sonst u.U. zu Problemen führen.

    cheers,
    -ds-

  • Du gehst das von der Falschen Seite an,

    Ich hatte dir hier schon den Hinweis auf die PHP Finktion TRIM gegeben.
    Alternativ kannst du str_replace nutzen um die vom FILE eingelesenen Strings vom LF (Unix) oder CR/LF ( Windows) zu reinigen.

    Post doch mal das Stück CODE welches die Strings aus der Datei einliest.
    Dann kann man dir evtl besser weiterhelfen.

    Alles andere ist Rumgestochere im Nebel und ohne Glaskugel nicht zu bewerkstelligen.

    Ansonsten :

    Code
    $mytest = $_POST["test"] . "\r\n";

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

    Einmal editiert, zuletzt von Der_Imperator (30. November 2014 um 14:25)


  • Alternativ kannst du str_replace nutzen um die vom FILE eingelesenen Strings vom cr oder cr/lf zu reinigen.

    Post doch mal das Stück CODE welches die Strings aus der Datei einliest.
    Dann kann man dir evtl besser weiterhelfen.

    Ich denke jetzt ging es um Schreiben nicht Lesen :s

  • Ohne zu wissen wie dein Formular aussieht, wie die andere PHP Datei das Formular weiter verarbeitet, oder wie das bash Script aussieht - kann man das eigentlich nicht wirklich beantworten...

    Ich habe mit sowas jedenfalls keine Probleme

    Zum auslesen und beschreiben einer Datei kann man folgendes nutzen:

    Spoiler anzeigen

    [code=php]
    <!DOCTYPE html>
    <html>
    <head>
    <title>Editor</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style>
    textarea {
    overflow:auto;
    resize:both;
    width:90%;
    margin:0px auto;
    padding:3px 0 0 3px;
    border:1px solid #6c6c6c;
    background-color:#0F1113;
    font-size:100%;
    color:#fff;
    }
    </style>
    </head>
    <body>
    <?php
    if (isset($_POST['Save'])) {
    $data_textlines = $_POST['textlines'];
    $data_repl = str_replace("\\", "", $data_textlines);
    if (file_exists($file)){ unlink($file); }
    if (isset($file) AND !empty($file)) {
    $savedSUCCESS=1;
    if (!$file_handle = fopen($file,"w+")) {
    $savedSUCCESS=0;
    echo "<font color='#b22222'>FEHLER: Kein Schreibrecht!</font><br/>\n";
    }
    if (!fwrite($file_handle, $data_repl)) {
    $savedSUCCESS=0;
    echo "<font color='#b22222'>FEHLER: File konnte nicht gespeichert werden!</font><br/>\n";
    }
    }
    fclose($file_handle);
    if (isset($savedSUCCESS) AND $savedSUCCESS == "1") {
    echo "<font color='#32cd32'>Erfolgreich gespeichert!</font><br/>\n";
    }
    }

    echo "<form name='form1' method='POST' action='".$_SERVER['PHP_SELF']."'>\n";
    echo " <input type='submit' name='Save' value='Speichern'/>\n";
    echo " <textarea class='textarea' name='textlines' style='background-color:transparent' cols='110' rows='35' wrap='off'>\n";
    if (file_exists("/tmp/test.txt")) { echo file_get_contents("/tmp/test.txt"); }
    echo " </textarea>\n";
    echo "</form>\n";
    ?>
    </body>
    </html>
    [/php]

  • OK,
    ich sende einfach mal ein paar Zeilen Code:
    Im Formular steht u.a. in einer Tabelle
    <td>Web User</td>
    <td><input type=password name='webalt'></td>
    <td><input type=password name='web'></td>
    <td><input type=password name='web1'></td>

    Wir merken uns das Textfeld mti dem Namen webalt
    Nach dem Drücken des Submit-Buttons wird ein PHP-File ausgerufen zur Auswertung

    <?php

    $mywebalt = $_POST[webalt];
    $mywebalt = str_replace("\r", '', $mywebalt); // remove carriage returns
    $mywebalt = str_replace("\n", '', $mywebalt); // remove new lines
    if ($mywebalt != '')
    {
    $dateihandle = fopen("/var/pass/web.txt","r");
    $zeile = fgets($dateihandle, 4096);
    echo "Web-User<br>";
    if ($zeile == $mywebalt)
    {
    //echo "Altes Web-Kennwort ist richtig!<br>";
    if ($myweb == $myweb1 AND $myweb != '')
    {
    //echo "Beide sind richtig!<br>";
    $datei = fopen("/var/pass/web.txt","w");
    $Zahl= fwrite($datei, $myweb."\n",100);

  • Code bitte im CODE oder PHP tag verpacken


    ..Es fehlt das Formular..


    Damit Wir Deinen Code verstehen können, müssen Wir die Zusammenhänge sehen. Wir haben keinen Einblick in Deinen Code, solange du diesen nicht postest. Und glaub mir wenn ich bezweifel das der derart Geheim ist als dass du ihn nicht vollständig posten könntest. So machts helfen jedenfalls keinen Spass weil die Ratestunde weiter ginge

  • Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!