Tässä on jotain vikaa, se ei valita mitään mutta ei silti luo tiedostoa kansioon: users.
<?php $kayttajanimi = $_POST['kayttajanimi'].".txt"; $salasana1 = $_POST['salasana1']; $salasana2 = $_POST["salasana2"]; $sposti = $_POST["sposti"]; $ika = $_POST["ika"]; echo $kayttajanimi; echo $salasana1; //rivi 10 echo $salasana2; echo $sposti; echo $ika; if( ! file_exists($kayttajanimi.".txt")){ if($salasana1 == $salasana2){ $yhdistetty = md5($salasana2)."/n".$sposti."/n".$ika; touch ("users/" . $kayttajanimi); chmod ("users/" . $kayttajanimi, 0770); $tt = fopen("users/" . $kayttajanimi, "w"); fwrite($tt, $yhdistetty)or die("virhe kirjoittaessa tiedostoon");//rivi 21 fclose($tt)or die("virhe sulkiessa tiedostoa"); }}
Users kansion chmodasin 777, ja tiedot tulevat toiselta filulta postilla. Elikkä jos pistän vaikka käyttäjänimeksi 1 ja salasanaykköseksi 2 ja salasanakakkoseksi 3 ja sähköpostiosoitteeksi 4 ja iäksi 5, niin sivulle tulostuu 12345. Tiedostoa ei kuitenkaan luoda tiedostoon users. Tiedoston nimi pitäis olla tässä tapauksessa 1 ja siellä pitäisi luke 2345 tai jotain.
touch ("users/" . $kayttajanimi);
Tämä kohta on siis ongelma, tälläisenä olen sitä koittanut.
touch ("users/"$kayttajanimi);
sanoo näin: Parse error: parse error, unexpected T_VARIABLE in /mbnet/j/jonezz2/reg.php on line 18
touch (users/$kayttajanimi);
Ei sano mitään, mutta ei myöskään luo tiedostoa.
Ja siinä ne olikin, mbnetin palvelimella siis koitan.
Hmmm... Eiköhän siinä ollut kaikki, jos jäin jotain tietoa puuttumaan niin sanokaa. Eihän sitä nytkään paljon ole mutta enempää en saanut haalittua kokoon.
Ainakin antamasi esimerkin ei tulisikaan tehdä mitään koska ennen luontia tarkistetaan täsmääkö salasana1 salasana2 kanssa. Lisäksi kummastuttaa että kolmas tapa (touch(users/$kayttajanimi);) ei valita koska syntaksi on niin väärin kuin vain voi olla. Kolmas mikä arveluttaa on 770 oikeudet, näinköhän skripti saa kirjoittaa noiden oikeuksien jälkeen mitään? 664 voisi olla parempi.
Ehdottaisin että kokeilet touch("/users/{$kayttajanimi}"); Jos ei lähde pelittämään, laita skriptin alkuun vielä rivit
ini_set('error_reporting', E_ALL);
ini_set('display_errors', TRUE);
niin näet ihan kaikki virheet mitä tulee.
Aihe on jo aika vanha, joten et voi enää vastata siihen.