text datei übergeben

Anacondi

Erfahrenes Mitglied
Hallo, ich habe folgendes problem.
Ich möchte je nach der aufgerufenen ID eine andere text datei beschreiben lassen, weiß aber nicht, wie ich die laden lasse.
Hier mal mein dezeitiger code:
PHP:
<?php  
$text_id = $_POST["TextID"];
if ($text_id == 1) {$text = 'Lauftext1.txt';} 
if ($text_id == 2) {$text = 'Lauftext2.txt';}
if ($text_id == 3) {$text = 'Lauftext3.txt';}
if ($text_id == 4) {$text = 'Lauftext4.txt';}
if ($text_id == 5) {$text = 'Lauftext5.txt';}
if ($text_id == 6) {$text = 'Lauftext6.txt';}
if ($text_id == 7) {$text = 'Lauftext7.txt';}
if ($text_id == 8) {$text = 'Lauftext8.txt';}
if ($text_id == 9) {$text = 'Lauftext9.txt';}
if ($text_id == 10) {$text = 'Lauftext10.txt';}
if ($text_id == 11) {$text = 'Lauftext11.txt';}
if ($text_id == 12) {$text = 'Lauftext12.txt';}
if ($text_id == 13) {$text = 'Lauftext13.txt';}
if ($text_id == 14) {$text = 'Lauftext14.txt';}
if ($text_id == 15) {$text = 'Lauftext15.txt';}
if ($text_id == 16) {$text = 'Lauftext16.txt';}
if ($text_id == 17) {$text = 'Lauftext17.txt';}
if ($text_id == 18) {$text = 'Lauftext18.txt';}
if ($text_id == 19) {$text = 'Lauftext19.txt';}
if ($text_id == 20) {$text = 'Lauftext20.txt';}
if ($text_id == 21) {$text = 'Lauftext21.txt';}
if ($text_id == 22) {$text = 'Lauftext22.txt';}
if ($text_id == 23) {$text = 'Lauftext23.txt';}
if ($text_id == 24) {$text = 'Lauftext24.txt';}
 ?>

 <?php    
 if (isset($_POST['LauftextAendern']))
{
      if (file_put_contents('Lauftext1.txt', str_replace("\r\n", "\n", trim($_POST['Lauftext'])))) $Ret='Laufbandtext geändert.<br />'; else $Ret='Fehler!<br />';
      echo '<script>';
      WriteInstantMessageDlg('Laufbandtext', $Ret, 'OK');
      echo '</script>';

      unset($_POST);
 }

   if (isset($_POST['LauftextBearbeiten']))
   {
      echo 'Lauftext eintragen, heute ist der: ', date("d.m.Y."), '<br />
            <form action="lauftext_aendern.php" method="post">
              <textarea rows="5" cols="120" name="Lauftext">', file_get_contents('Lauftext1.txt'), '</textarea><br />
              <input type="submit" value="Ändern" name="LauftextAendern" />
              <input type="submit" value="Abbrechen" />
            </form>';
      exit;
   }

  ?>
also bei if (file_put_contents('Lauftext1.txt', möchte ich statt 'Lauftext1' die jeweilige datei haben
schreibe ich aber
PHP:
if (file_put_contents('$text',
legt er ne datei $text an
 
Ersetz '$text' durch "$text". Dann sollte es gehen.

String in einfachen Anführungszeichen werden nicht geparst. In Doppelten aber schon.

Aber bei diesem Befehlsaufruf sind gar keine Anführungszeichen notwendig, $text ist ja schon ein String.
 
geht doch nicht ganz. ich bekomm immer die mldung Fehler.
aber die txt dateien hab ich auf dem server und auch frei gegeben zum schreiben
 
Zuletzt bearbeitet:
Aua, meine Augen schmerzen. Dein Quelltext ist wirklich unaufgeräumt und unsauber – ich habe ihn mal ausgebessert:
PHP:
$id = (int) $_POST['TextID'];

$files = array(
  'Lauftext1.txt',
  'Lauftext2.txt',
  'Lauftext3.txt',
  'Lauftext4.txt',
  'Lauftext5.txt',
  'Lauftext6.txt',
  'Lauftext7.txt',
  'Lauftext8.txt',
  'Lauftext9.txt',
  'Lauftext10.txt',
  'Lauftext11.txt',
  'Lauftext12.txt',
  'Lauftext13.txt',
  'Lauftext14.txt',
  'Lauftext15.txt',
  'Lauftext16.txt',
  'Lauftext17.txt',
  'Lauftext18.txt',
  'Lauftext19.txt',
  'Lauftext20.txt',
  'Lauftext21.txt',
  'Lauftext22.txt',
  'Lauftext23.txt',
  'Lauftext24.txt'
);

$file = $files[$id - 1];

if (isset($_POST['LauftextAendern'])) {
  if (file_put_contents($file, str_replace("\r\n", "\n", trim($_POST['Lauftext'])))) {
    $Ret = 'Laufbandtext geändert.<br />';
  } else {
    $Ret = 'Fehler!<br />';
  }
  
  echo '<script>'; 
  WriteInstantMessageDlg('Laufbandtext', $Ret, 'OK');
  echo '</script>';
} 

if (isset($_POST['LauftextBearbeiten'])) {
  echo join(array(
    'Lauftext eintragen, heute ist der: ', date("d.m.Y."), '<br />',
    '<form action="lauftext_aendern.php" method="post">',
      '<textarea rows="5" cols="120" name="Lauftext">',
        file_get_contents($file),
      '</textarea><br />',
      '<input type="submit" value="Ändern" name="LauftextAendern" />',
      '<input type="submit" value="Abbrechen" />',
    '</form>'
  ));
  exit;
}
 
geht noch nicht so ganz. er bringt noch immer die meldung Fehler
nehme ich das
$id = (int) $_POST['TextID'];
raus, schreibt er in die datei, aber immer in die Lauftext1.txt

die id wird richtig übergeben, hab si mal mit nem echo ausgeben lassen
 
Zuletzt bearbeitet:
so sieht jetzt der code aus. er schreibt in die txt datei, aber immer in die Laufschrift1_text.php
PHP:
<?php       
 $ids = (int) $_POST['TextID'];
 echo $ids;
 
$files = array(
  'Lauftext1.txt',
  "Lauftext2.txt",
  "Lauftext3.txt",
  'Lauftext4.txt',
  'Lauftext5.txt',
  'Lauftext6.txt',
  'Lauftext7.txt',
  'Lauftext8.txt',
  'Lauftext9.txt',
  'Lauftext10.txt',
  'Lauftext11.txt',
  'Lauftext12.txt',
  'Lauftext13.txt',
  'Lauftext14.txt',
  'Lauftext15.txt',
  'Lauftext16.txt',
  'Lauftext17.txt',
  'Lauftext18.txt',
  'Lauftext19.txt',
  'Lauftext20.txt',
  'Lauftext21.txt',
  'Lauftext22.txt',
  'Lauftext23.txt',
  'Lauftext24.txt'
);
 
$file = $files[$ids];
 
if (isset($_POST['LauftextAendern'])) {
  if (file_put_contents($file, str_replace("\r\n", "\n", trim($_POST['Lauftext'])))) {
    $Ret = 'Laufbandtext geändert.<br />';
	exit('<script>location.href="lauftext_werbung.php"; </script>');
  } else {
    $Ret = 'Fehler!<br />';
  }
  
  echo '<script>'; 
  WriteInstantMessageDlg('Laufbandtext', $Ret, 'OK');
  echo '</script>';
} 
 
if (isset($_POST['LauftextBearbeiten'])) {
  echo join(array(
    'Lauftext eintragen, heute ist der: ', date("d.m.Y."), '<br />',
    '<form action="lauftext_aendern.php" method="post">',
      '<textarea rows="5" cols="120" name="Lauftext">',
        file_get_contents($file),
      '</textarea><br />',
      '<input type="submit" value="Ändern" name="LauftextAendern" />',
      '<input type="submit" value="Abbrechen" />',
    '</form>'
  ));
  exit;
}

  ?>

die Id wird richtig übergeben.
 
Du hast mein Skript auch fehlerhaft übernommen:
PHP:
# das hier ...
$file = $files[$ids];

# ... muss so aussehen:
$file = $files[$ids - 1];
 
ja, aber ich wollte damit zeigen ohne das -1 bei
$file = $files[$ids - 1];
schreibt er aber immer nur in die erste datei also die Lauftext1.txt
mit dem -1 kommt die meldung Fehler
also das $Ret = 'Fehler!<br />';
 
echo var_dump($files); gibt:

array(24) { [0]=> string(13) "Lauftext1.txt" [1]=> string(13) "Lauftext2.txt" [2]=> string(13) "Lauftext3.txt" [3]=> string(13) "Lauftext4.txt" [4]=> string(13) "Lauftext5.txt" [5]=> string(13) "Lauftext6.txt" [6]=> string(13) "Lauftext7.txt" [7]=> string(13) "Lauftext8.txt" [8]=> string(13) "Lauftext9.txt" [9]=> string(14) "Lauftext10.txt" [10]=> string(14) "Lauftext11.txt" [11]=> string(14) "Lauftext12.txt" [12]=> string(14) "Lauftext13.txt" [13]=> string(14) "Lauftext14.txt" [14]=> string(14) "Lauftext15.txt" [15]=> string(14) "Lauftext16.txt" [16]=> string(14) "Lauftext17.txt" [17]=> string(14) "Lauftext18.txt" [18]=> string(14) "Lauftext19.txt" [19]=> string(14) "Lauftext20.txt" [20]=> string(14) "Lauftext21.txt" [21]=> string(14) "Lauftext22.txt" [22]=> string(14) "Lauftext23.txt" [23]=> string(14) "Lauftext24.txt" }

echo var_dump($ids); gibt aus:
int(2)

weil ich nummer 2 als $ids drin hatt
 
Zurück