Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Generator plików
Forum PHP.pl > Forum > Przedszkole
pedobearpl
Hej. Mam problem z generowaniem pliku php przez generator.

plik generator.php
  1. <center><form action="generator2.php" method="post" >
  2. <p><strong>Treść wiadomości:</strong></p>
  3. <p>1
  4. <input type="text" name="pytanie1" />
  5. </p>
  6. <p>Odpowiedzi:<br>
  7. <b>1</b>
  8. <input type="text" name="odpowiedz1" />
  9. 2
  10. <input type="text" name="odpowiedz2" />
  11. <br><br>
  12. <b>3</b>
  13. <input type="text" name="odpowiedz3" />
  14. 4
  15. <input type="text" name="odpowiedz4" />
  16. <br><br>
  17. <b>5</b>
  18. <input type="text" name="odpowiedz5" />
  19. 6
  20. <input type="text" name="odpowiedz6" />
  21. <br>
  22. <br>
  23. <b>7</b>
  24. <input type="text" name="odpowiedz7" />
  25. 8
  26. <input type="text" name="odpowiedz8" />
  27. </p>
  28. <p>9
  29. <input type="text" name="odpowiedz9" />
  30. 10
  31. <input type="text" name="odpowiedz10" />
  32. <br>
  33. <br><input type="submit" value="GENERUJ" /> <input onclick="this.form.kod.select();" type="button" value="Zaznacz KOD">
  34. <br><br>
  35. <textarea name="kod" rows="15" cols="62">
  36. if (preg_match('/<?php echo $_POST['pytanie1']; ?>/', $HTTP_RAW_POST_DATA))
  37. {
  38. $f=array(
  39. "<?php echo $_POST['odpowiedz1']; ?>",
  40. "<?php echo $_POST['odpowiedz2']; ?>",
  41. "<?php echo $_POST['odpowiedz3']; ?>",
  42. "<?php echo $_POST['odpowiedz4']; ?>",
  43. "<?php echo $_POST['odpowiedz5']; ?>",
  44. "<?php echo $_POST['odpowiedz6']; ?>",
  45. "<?php echo $_POST['odpowiedz7']; ?>",
  46. "<?php echo $_POST['odpowiedz8']; ?>",
  47. "<?php echo $_POST['odpowiedz9']; ?>",
  48. "<?php echo $_POST['odpowiedz10']; ?>");
  49. echo($f[array_rand($f)]);
  50. }
  51. </textarea>
  52. </p>
  53. </form></center>
  54.  


plik generator2.php

  1. <center>
  2. <h3>Pytanie: <?php echo $_POST['pytanie1']; ?><br><br><br>
  3. Odpowiedź 1: <?php echo $_POST['odpowiedz1']; ?><br>
  4. Odpowiedź 2: <?php echo $_POST['odpowiedz2']; ?><br>
  5. Odpowiedź 3: <?php echo $_POST['odpowiedz3']; ?><br>
  6. Odpowiedź 4: <?php echo $_POST['odpowiedz4']; ?><br>
  7. Odpowiedź 5: <?php echo $_POST['odpowiedz5']; ?><br>
  8. Odpowiedź 6: <?php echo $_POST['odpowiedz6']; ?><br>
  9. Odpowiedź 7: <?php echo $_POST['odpowiedz7']; ?><br>
  10. Odpowiedź 8: <?php echo $_POST['odpowiedz8']; ?><br>
  11. Odpowiedź 9: <?php echo $_POST['odpowiedz9']; ?><br>
  12. Odpowiedź 10: <?php echo $_POST['odpowiedz10']; ?><br>
  13. </h3>
  14. <h2><a href="generator.php">Powrót</a></h2>
  15. </center>
  16. <textarea name="kod" rows="15" cols="62">
  17. if (preg_match('/<?php echo $_POST['pytanie1']; ?>/', $HTTP_RAW_POST_DATA))
  18. {
  19. $f=array(
  20. "<?php echo $_POST['odpowiedz1']; ?>",
  21. "<?php echo $_POST['odpowiedz2']; ?>",
  22. "<?php echo $_POST['odpowiedz3']; ?>",
  23. "<?php echo $_POST['odpowiedz4']; ?>",
  24. "<?php echo $_POST['odpowiedz5']; ?>",
  25. "<?php echo $_POST['odpowiedz6']; ?>",
  26. "<?php echo $_POST['odpowiedz7']; ?>",
  27. "<?php echo $_POST['odpowiedz8']; ?>",
  28. "<?php echo $_POST['odpowiedz9']; ?>",
  29. "<?php echo $_POST['odpowiedz10']; ?>");
  30. echo($f[array_rand($f)]);
  31. }
  32. </textarea>
  33. </p>


Jak zrobic aby to co jest w polu tekstowym zapisywało do pliku o nazwie pytania? Próbowałem tak:

  1. <?php
  2. $dane ='
  3. <?php
  4. if (preg_match('/<?php echo $_POST['pytanie1']; ?>/', $HTTP_RAW_POST_DATA))
  5. {
  6. $f=array(
  7. "<?php echo $_POST['odpowiedz1']; ?>",
  8. "<?php echo $_POST['odpowiedz2']; ?>",
  9. "<?php echo $_POST['odpowiedz3']; ?>",
  10. "<?php echo $_POST['odpowiedz4']; ?>",
  11. "<?php echo $_POST['odpowiedz5']; ?>",
  12. "<?php echo $_POST['odpowiedz6']; ?>",
  13. "<?php echo $_POST['odpowiedz7']; ?>",
  14. "<?php echo $_POST['odpowiedz8']; ?>",
  15. "<?php echo $_POST['odpowiedz9']; ?>",
  16. "<?php echo $_POST['odpowiedz10']; ?>");
  17. echo($f[array_rand($f)]);
  18. }
  19. ?>';
  20. $file = "<?php echo $_POST['pytanie1']; ?>";
  21. $fp = fopen($file, "w+");
  22. flock($fp, 2);
  23. fwrite($fp, $dane);
  24. flock($fp, 3);
  25. fclose($fp); ?>


Ale przy takim czyms wyskakuje od groma błędów. Chodzi mi o to aby móc zapisywać tak jakby te "pytania" w jednym katalogu i później je dołączyć do pliku głównego (pisze autoresponder i właśnie tu problem sie pojawił .. ).
Chodzi o to by skrypt który ma zostać zapisany się nie wykonywał oprócz np "<?php echo $_POST['odpowiedz10']; ?>". Chyba ze znacie na to jakies inne rozwiazanie to chetnie wysłucham biggrin.gif Z góry dzięki za pomoc wink.gif
b4rt3kk
Nie wiem czy wiesz, ale nie otwiera się tagów php wewnątrz już uprzednio otwartych tagów php...

  1. $f=array(
  2. $_POST['odpowiedz1'],
  3. $_POST['odpowiedz2'],
  4. $_POST['odpowiedz3'],
  5. $_POST['odpowiedz4'],
  6. $_POST['odpowiedz5'],
  7. $_POST['odpowiedz6'],
  8. $_POST['odpowiedz7'],
  9. $_POST['odpowiedz8'],
  10. $_POST['odpowiedz9'],
  11. $_POST['odpowiedz10']);


Textarea możesz zrobić tak:

  1. echo '<textarea>';
  2. for ($i=1; $i<=10; $i++) echo $_POST['odpowiedz'.$i] . "/n";
  3. echo '</textarea>';


lub tak:

  1. echo '<textarea>';
  2. echo implode("/n", $f);
  3. echo '</textarea>';


Co ma robić ten preg_match? jest to funkcja PHP, tak więc powinna znajdować się pomiędzy znacznikami php, a nie że przekazujesz tam nie wiadomo co?

  1. if (preg_match('/<?php echo $_POST['pytanie1']; ?>/', $HTTP_RAW_POST_DATA))
pedobearpl
Nie wiem czy mnie dobrze zrozumiałeś ale chce zrobić tak aby dało się generować plik który by wyglądał tak:
  1. <?php
  2. if (preg_match('/TRESC Z PYTANIE1/', $HTTP_RAW_POST_DATA))
  3. {
  4. $f=array(
  5. "TRESC Z ODPOWIEDZ1",
  6. "TRESC Z ODPOWIEDZ2",
  7. "TRESC Z ODPOWIEDZ3",
  8. "TRESC Z ODPOWIEDZ4",
  9. "TRESC Z ODPOWIEDZ5",
  10. "TRESC Z ODPOWIEDZ6",
  11. "TRESC Z ODPOWIEDZ7",
  12. "TRESC Z ODPOWIEDZ8",
  13. "TRESC Z ODPOWIEDZ9",
  14. "TRESC Z ODPOWIEDZ10");
  15. echo($f[array_rand($f)]);
  16. }
  17. ?>

Chodzi o bota na GG który wyłapuje słowo w tekście i losuje odpowiedź i wysyła ją do użytkownika a ten plik by był na przykład w folderze "odpowiedzi" i został dołączony do głównego pliku bota.
b4rt3kk
A to co innego. Zrób tak:

  1. $data = '<?php if (preg_match(\''.$_POST['pytanie1'].'\', $HTTP_RAW_POST_DATA)) {';
  2. $data .= '$f = array(';
  3. foreach ($_POST as $value) $data .= '"'.$value.'",';
  4. $data .= ');';
  5. $data .= 'echo($f[array_rand($f)]);';
  6. $data .= '} ?>';
  7.  
  8. file_put_contents('plik.php', $data);
pedobearpl
Cytat(b4rt3kk @ 8.01.2013, 10:07:26 ) *
A to co innego. Zrób tak:

  1. $data = '<?php if (preg_match(\''.$_POST['pytanie1'].'\', $HTTP_RAW_POST_DATA)) {';
  2. $data .= '$f = array(';
  3. foreach ($_POST as $value) $data .= '"'.$value.'",';
  4. $data .= ');';
  5. $data .= 'echo($f[array_rand($f)]);';
  6. $data .= '} ?>';
  7.  
  8. file_put_contents('plik.php', $data);


Wielkie dzięki, działa smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.