Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tiedoston luonti ei onnistu

jonez [29.06.2004 04:25:28]

#

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.

leftover [29.06.2004 08:31:00]

#

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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta