Pitäisi saada rivinvaihtonuoli Viopessa näkymään rivin jälkeen omalla rivillään, ei rivin perässä.
Voisko joku jeesiä, kiitos!
EDIT: jotenkin \r\n joko muuttujaan tallennettuna ja/tai echo tulostettuna
mutta miksi ei toimi eri testailujen mukaan (Windows-ympäristö (ja Viope) odottaa usein CRLF-rivinvaihtoa)
ps. olen tänä vuonna pikkuhiljaa tutustunut tähän PHP-kieleen - joskus tutustunut C- ja Java-kieliin mutta niistä aikaa
<?php // Määritä tiedoston nimi $tiedosto = 'asiakasrekisteri.txt'; // Lue GET-parametrit $mode = $_GET['mode'] ?? ''; $asiakasnumero = $_GET['asiakasnumero'] ?? ($_GET['asiakas'] ?? ''); $nimi = $_GET['nimi'] ?? ''; $osoite = $_GET['osoite'] ?? ''; // Jos mode on "save": lisätään asiakas if ($mode === 'save') { // Puhdista syötteet $asiakasnumero = trim(strip_tags($asiakasnumero)); $nimi = trim(strip_tags($nimi)); $osoite = trim(strip_tags($osoite)); // Jos kaikki kentät ovat ei-tyhjiä if ($asiakasnumero !== '' && $nimi !== '' && $osoite !== '') { // Muodosta rivi muodossa asiakasnumero##nimi##osoite $rivi = $asiakasnumero . "##" . $nimi . "##" . $osoite . "\n"; // Avaa tiedosto lisäystilassa ('a') $viite = fopen($tiedosto, 'a'); if ($viite) { // Kirjoita rivi tiedoston loppuun fwrite($viite, $rivi); // Sulje tiedosto fclose($viite); } } } elseif ($mode === 'delete') { // Asiakkaan poisto if ($asiakasnumero !== '' && file_exists($tiedosto)) { // Avaa tiedosto lukutilassa ('r') $viite = fopen($tiedosto, 'r'); $uudet = []; // Luo uusi lista if ($viite) { // Lue rivit yksi kerrallaan while (($rivi = fgets($viite)) !== false) { $rivi = trim($rivi); if ($rivi === '') continue; // Erottele kentät rivistä $osat = explode("##", $rivi, 3); // Jos rivin asiakasnumero ei ole sama kuin poistettava if ($osat[0] !== $asiakasnumero) { $uudet[] = $rivi; } } fclose($viite); } // Avaa tiedosto kirjoitustilassa ('w') $viite = fopen($tiedosto, 'w'); if ($viite) { // Kirjoita uudet rivit tiedostoon foreach ($uudet as $rivi) { fwrite($viite, $rivi . "\n"); } fclose($viite); } } } else { // Asiakkaan haku if ($asiakasnumero !== '' && file_exists($tiedosto)) { // Avaa tiedosto lukutilassa ('r') $viite = fopen($tiedosto, 'r'); if ($viite) { // Lue rivit yksi kerrallaan while (($rivi = fgets($viite)) !== false) { $rivi = trim($rivi); if ($rivi === '') continue; // Erottele kentät rivistä $osat = explode("##", $rivi, 3); // Jos kenttiä on kolme ja asiakasnumero täsmää if (count($osat) === 3 && $osat[0] === $asiakasnumero) { $nimi = trim($osat[1]); $osoite = trim($osat[2]); // Tulosta täsmälleen muodossa echo "Asiakas: " . $nimi . ", " . $osoite . "\n"; break; // vain yksi osuma } } fclose($viite); } } } ?>
Mahdoton sanoa tuon perusteella, mitä Viope odottaa. Lue Viopen ohjeet ja esimerkit tarkkaan, kai sieltä täytyy löytyä selitys.
Tuossa koodissa on aika vakavia ongelmia, mm. jos syöte sisältää rivinvaihdon tai merkit ##. Hauska nähdä, että Viope on tyylilleen uskollinen ja opettaa myös PHP:tä päin mäntyä 2000-luvun alun tyyliin.