Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl


gornik
Napisane: 7.10.2021, 13:28:08





Grupa: Zarejestrowani
Postów: 56
Dołączył: 28.04.2010

Ostrzeżenie: (0%)
-----

Dobra zrobiłem symulacje sobie. Problem polega na tym, że nie odświeża zawartość zipa. Trzeba przy każdej iteracji na nowo otworzyć zip. Nie wiem na ile to będzie jest wydajne w Twoim przypadku ale działa smile.gif
  1. <?php
  2.  
  3. $files = [];
  4. $files[] = ['name' => 'file1.txt', 'content' => 'main content for file 1'];
  5. $files[] = ['name' => 'file2.txt', 'content' => 'main content for file 2'];
  6. $files[] = ['name' => 'file1.txt', 'content' => 'aditional content for file 1'];
  7. $files[] = ['name' => 'file3.txt', 'content' => 'main content for file 3'];
  8.  
  9. $zip = new ZipArchive();
  10. $filename = "./pliczekzip.zip";
  11. unlink($filename);
  12.  
  13. foreach($files as $file){
  14. if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
  15. exit("cannot open <$filename>\n");
  16. }
  17. $file_input = $file['content'];
  18. $file_name = $file['name'];
  19.  
  20. if ($zip->locateName( $file_name ) !== false )
  21. {
  22.  
  23. $zip_file_input = $zip->getFromName( $file_name );
  24. $file_input = $zip_file_input . PHP_EOL . $file_input;
  25.  
  26. }
  27. $zip->addFromString($file_name,$file_input);
  28. }
  29.  
  30.  
  31. echo '<u><h2><a href="pliczekzip.zip">Pobierz plik</a></h2></u>';
  32.  
  33.  
  34. $zip->close();
  Forum: Przedszkole · Podgląd postu: #1256853 · Odpowiedzi: 6 · Wyświetleń: 438

gornik
Napisane: 7.10.2021, 12:59:33





Grupa: Zarejestrowani
Postów: 56
Dołączył: 28.04.2010

Ostrzeżenie: (0%)
-----

a cosik takiego? Sprawdź czy zadziała, bo na szybko z manuala ogarnąłem.

  1. $file_name='S'.$file_name_prefix.$file_name;
  2.  
  3. if ($zip->locateName( $filename ) !== false)
  4. {
  5. $zip_file_input = $zip->getFromName( $filename );
  6. $file_input = $zip_file_input . PHP_EOL . $file_input;
  7. }
  8.  
  9. $zip->addFromString($file_name,$file_input);
  Forum: Przedszkole · Podgląd postu: #1256851 · Odpowiedzi: 6 · Wyświetleń: 438

gornik
Napisane: 5.10.2021, 15:57:32





Grupa: Zarejestrowani
Postów: 56
Dołączył: 28.04.2010

Ostrzeżenie: (0%)
-----

Nie wiem co chcesz osiągnąć.
1. Jeśli przekierowanie na dowolną stronę podaną w parametrze po to żeby coś przefiltrować, sprawdzić i zezwolić lub zblokować jak w np. odbywa się to na facebooku:
  1. https://facebook.com/l.php?u=https://google.com

To podajesz url normalnie w GET ogarniasz filtry żeby nikt Ci tam nie wstrzyknął XSS/SQL

2. Jeśli chcesz przekierowywać tylko na wybrane domeny to możesz to zrobić przy użyciu jakiegoś hashowania czy cus smile.gif
  1. <?php
  2.  
  3. /*
  4.  te dane mozesz przerzucić do bazy
  5. */
  6. $pages = [
  7. '2ba1vm410kk3901' => [
  8. 'url' => 'https://google.pl/?urlFor=2ba1vm410kk3901',
  9. 'isActive' => true,
  10. ],
  11.  
  12. '6a3a1mr40k3m1f91' => [
  13. 'url' => 'https://google.pl/?urlFor=6a3a1mr40k3m1f91',
  14. 'isActive' => false,
  15. ],
  16. ];
  17.  
  18. /* Dostępne urle:
  19. */
  20.  
  21. $hash = isset($_GET['hash']) ? $_GET['hash'] : NULL;
  22.  
  23. if(NULL !== $hash){
  24. /* sprawdź czy hash istnieje, przekieruj or not */
  25. $page = array_key_exists($hash, $pages) ? $pages[$hash] : [];
  26.  
  27. if( !empty($page) && $page['isActive'] ){
  28. Header("Location: {$page['url']}");
  29. }
  30. }
  Forum: PHP · Podgląd postu: #1256821 · Odpowiedzi: 4 · Wyświetleń: 788

gornik
Napisane: 17.09.2021, 18:19:02





Grupa: Zarejestrowani
Postów: 56
Dołączył: 28.04.2010

Ostrzeżenie: (0%)
-----

Ewentualnie:

  1. {% if lista is defined %}
  2. {% set providedList = lista %}
  3. {% else %}
  4. {% set providedList = innaZmienna %}
  5. {% endif %}
  6.  
  7. {% include 'lista_ajax.tpl' with { 'provided_list' : providedList } %}
  Forum: PHP · Podgląd postu: #1256592 · Odpowiedzi: 5 · Wyświetleń: 1 057

gornik
Napisane: 3.09.2021, 21:24:26





Grupa: Zarejestrowani
Postów: 56
Dołączył: 28.04.2010

Ostrzeżenie: (0%)
-----

Podałe Ci example z foreach. Tutaj masz bardziej przybliżony
  1. $conn = new mysqli($servername, $username, $password, $dbname);
  2. if ($conn->connect_error) {
  3. die("Connection failed: " . $conn->connect_error);
  4. }
  5.  
  6. /* Pobierz odpowiedzi */
  7. $answers = isset($_POST['questions']) ? $_POST['questions'] : [];
  8.  
  9. /* Iteruj po odpowiedziach */
  10. foreach($answers as $answer){
  11.  
  12. /* Sprawdzanie czy pola zostały przesłanie, jesli nie to pomijamy do next */
  13. if(!array_key_exists('id', $answer) OR !array_key_exists('answer', $answer)){
  14. continue;
  15. }
  16. /* Pobranie danych odpowiedzi */
  17. $id = (int) $answer['id'];
  18. $qAnswer = $answer['answer'];
  19.  
  20. /* Tworzenie query */
  21. $query = "SELECT * FROM `pelnalistapytanx` WHERE id = '{$id}' LIMIT 1";
  22.  
  23. /* wywołaj zapytanie */
  24. $results = mapSingle( $conn->query($query) );
  25.  
  26. /* Sprawdzamy czy pytanie istnieje i jaka jest odpowiedź */
  27. if($results){
  28. if($results["correct"] == $qAnswer){
  29. // odpowiedź poprawna, wykonaj jakąś czynność...
  30. echo "Wynik dla odpowiedzi #{$id} jest poprawny <Br />";
  31. } else {
  32. // odpowiedź niepoprawna, wykonaj jakąś czynność...
  33. echo "Wynik dla odpowiedzi #{$id} jest błędny! <Br />";
  34. }
  35. }
  36.  
  37. }
  38.  
  39. /* Funkcja do mapowania wyników */
  40. function mapSingle($item){
  41. $results = [];
  42.  
  43. if($item == null OR !$item OR $item->num_rows <= 0)
  44. return $results;
  45. else
  46. return $item->fetch_assoc();
  47. }
  Forum: PHP · Podgląd postu: #1256485 · Odpowiedzi: 8 · Wyświetleń: 1 382

gornik
Napisane: 3.09.2021, 18:21:07





Grupa: Zarejestrowani
Postów: 56
Dołączył: 28.04.2010

Ostrzeżenie: (0%)
-----

Spróbuj tak:
  1. <form action="result.php" method="post" id="quiz">
  2.  
  3. <?php
  4. $servername = "localhost";
  5. $username = "user";
  6. $password = "pass";
  7. $dbname = "db";
  8.  
  9.  
  10. $x = 1;
  11. /* Ile pytań wybrać z bazy */
  12. $limit = 5;
  13. /* Przechowywanie poprawnych odp w tym pliku zapewne jest zbędne */
  14. $correctAnswers = [];
  15.  
  16.  
  17. $conn = new mysqli($servername, $username, $password, $dbname);
  18. if ($conn->connect_error) {
  19. die("Connection failed: " . $conn->connect_error);
  20. }
  21.  
  22. $sql = "SELECT * FROM pelnalistapytanx WHERE 1 ORDER BY RAND() LIMIT $limit";
  23. $result = $conn->query($sql);
  24.  
  25. if ($result->num_rows > 0) {
  26. while($row = $result->fetch_assoc()) {
  27.  
  28. echo "<h2>(#".$row["ID"].") " .$row["Pytanie"]. "</h2>";
  29.  
  30. if($row["img"]!="0") {
  31. echo "<div class='one_question_quiz--img'>";
  32. echo "<img src='/src/img/quizy/".$row["img"].".jpg'>";
  33. echo "</div>";
  34. }
  35.  
  36. echo "<div class=''>";
  37. echo "<div>";
  38. echo "<input type='radio' name='questions[{$x}][answer]' id='question-".$x."-answers-A' value='A' />";
  39. echo "<label for='question-".$x."-answers-A'><b>A. </b>".$row["odpa"]."</label>";
  40. echo "</div>";
  41.  
  42. echo "<div>";
  43. echo "<input type='radio' name='questions[{$x}][answer]' id='question-".$x."-answers-B' value='B' />";
  44. echo "<label for='question-".$x."-answers-B'><b>B. </b>".$row["odpb"]."</label>";
  45. echo "</div>";
  46.  
  47. echo "<div>";
  48. echo "<input type='radio' name='questions[{$x}][answer]' id='question-".$x."-answers-C' value='C' />";
  49. echo "<label for='question-".$x."-answers-C'><b>C. </b>".$row["odpc"]."</label>";
  50. echo "</div>";
  51.  
  52. echo "<div>";
  53. echo "<input type='radio' name='questions[{$x}][answer]' id='question-".$x."-answers-D' value='D' />";
  54. echo "<label for='question-".$x."-answers-D'><b>D. </b>".$row["odpd"]."</label>";
  55. echo "</div>";
  56. echo "<input type='hidden' name='questions[{$x}][id]' value='{$row['id']}'>";
  57.  
  58. echo "</div>";
  59. $x++;
  60. }
  61. }
  62. $conn->close();
  63.  
  64.  
  65. ?>
  66.  
  67. <input type="submit" value="Submit" class="submitbtn" />
  68.  
  69. </form>


result.php
  1. <?php
  2.  
  3. echo "<PRE>";
  4. print_r($_POST);
  5. echo "</PRE>";
  6.  
  7. /* Możesz to zapętlić */
  8. $answers = isset($_POST['questions']) ? $_POST['questions'] : [];
  9.  
  10. foreach($answers as $answer){
  11.  
  12. // jakaś czynność np. wybranie z bazy pytania itd.
  13.  
  14. }
  15.  
  16. ?>


Rozumiem, że chcesz po wypełnieniu quizu sprawdzić czy odpowiedź jest poprawna więc musisz połączyć w results.php na nowo z bazą i porównać przesłane wyniki.
  Forum: PHP · Podgląd postu: #1256482 · Odpowiedzi: 8 · Wyświetleń: 1 382

gornik
Napisane: 3.09.2021, 17:04:32





Grupa: Zarejestrowani
Postów: 56
Dołączył: 28.04.2010

Ostrzeżenie: (0%)
-----

  1. <?php
  2.  
  3. for($i=1; $i<=2; $i++){
  4.  
  5. ${'zmienna' . $i} = 'jakas nowa wartość <br />';
  6.  
  7. }
  8.  
  9.  
  10. for($i=1; $i<=2; $i++){
  11.  
  12. echo ${'zmienna' . $i}
  13.  
  14. }

Więc podobnie, pytanie skąd pomysł na taki zabieg? Nie lepiej to wrzucać w tablice?
  Forum: PHP · Podgląd postu: #1256480 · Odpowiedzi: 8 · Wyświetleń: 1 382

gornik
Napisane: 3.09.2021, 16:49:24





Grupa: Zarejestrowani
Postów: 56
Dołączył: 28.04.2010

Ostrzeżenie: (0%)
-----

O to chodzi?
  1. <?php
  2.  
  3. $zmienna1 = 'To jest zmienna 1 <Br />';
  4.  
  5. $zmienna2 = 'To jest zmienna 2 <br />';
  6.  
  7.  
  8.  
  9. for($i=1; $i<=2; $i++){
  10.  
  11. echo ${'zmienna' . $i};
  12.  
  13. }
  Forum: PHP · Podgląd postu: #1256478 · Odpowiedzi: 8 · Wyświetleń: 1 382

gornik
Napisane: 31.03.2013, 18:40:26





Grupa: Zarejestrowani
Postów: 56
Dołączył: 28.04.2010

Ostrzeżenie: (0%)
-----

Wydaje mi się, że lepiej tutaj użyć IF zamiast SWITCH
  1. <a href="index.php?page=link1">Kontakt</a>
  2. <a href="index.php?page=link2">Kontakt</a>
  3. <?php
  4.  
  5.  
  6. if($_GET['page'] == 'link1')
  7. echo "Dziala";
  8. if($_GET['page'] == 'link2')
  9. include('page2.html');
  10. ?>
  Forum: Przedszkole · Podgląd postu: #1036111 · Odpowiedzi: 5 · Wyświetleń: 971


New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 12:18