Test php
Przygotuj mini-ankietę z 3-4 pytaniami dotyczącymi zainteresowań lub preferencji wypełniającego (np. ulubiona potrawa, ulubiony aktor itp.). Jedno z pytań, musi być zadane przy pomocy listy rozwijanej z trzema narzuconymi wariantami odpowiedzi. Odpowiedzi na wszystkie pytanie wraz z identyfikatorem ankietowanego są zapisywane w jednej linii pliku tekstowego. Napisz skrypt, który sprawia, że jeżeli ankietowany próbuje ponownie wypełnić ankietę to dostaje informację, że już tu był i przypomina się mu przez wyświetlenie na ekranie jego odpowiedzi, jeżeli zaś jeszcze tu nie był to zapisuje się jego odpowiedzi udzielone w ankiecie do wspomnianego pliku.


Odpowiedź :

<?php

$filename = "ankieta.txt";

$file = fopen($filename, "r");

$lines = file($filename);

$ip = $_SERVER['REMOTE_ADDR'];

foreach($lines as $line_num => $line)

{

$line = trim($line);

$parts = explode(" ", $line);

if($parts[0] == $ip)

{

echo "Już tu byłeś!<br>";

echo "Odpowiedziałeś na pytania:<br>";

echo $parts[1]."<br>";

echo $parts[2]."<br>";

echo $parts[3]."<br>";

echo $parts[4]."<br>";

}

}

if($line_num == count($lines))

{

echo "Wypełnij ankietę:<br>";

echo "<form action='' method='post'>";

echo "Imię i nazwisko: <input type='text' name='name'><br>";

echo "Ulubiona potrawa: <input type='text' name='potrawa'><br>";

echo "Ulubiony aktor: <input type='text' name='aktor'><br>";

echo "Ulubiony kolor: <select name='kolor'>";

echo "<option value='czerwony'>czerwony</option>";

echo "<option value='zielony'>zielony</option>";

echo "<option value='niebieski'>niebieski</option>";

echo "</select><br>";

echo "<input type='submit' value='Wyślij'>";

echo "</form>";

}

if(isset($_POST['name']))

{

$name = $_POST['name'];

$potrawa = $_POST['potrawa'];

$aktor = $_POST['aktor'];

$kolor = $_POST['kolor'];

$file = fopen($filename, "a");

fwrite($file, "$ip $name $potrawa $aktor $kolor

");

fclose($file);

echo "Zapisano!<br>";

}

?>