Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: En osaa tehdä uploadia

Sivun loppuun

Horny The Horrible [06.02.2010 16:44:56]

#

Ajattelin tässä tehdä silleen kun nyt atk:ssa tehdään html sivuja, että jotkut meidän(kin) luokasta varmaan haluaa tekeleensä näkyville. Olempa siis kiltti ja teen seuraavat jutut:
Imageupload
CSSupload
HTMLupload

Ongelmana on se etten saa muokattua koodeja toimivikis, niin että imageupload päästäisi html sivut lläpi. CSS juttua en edes ole ehtinyt kokeilla. Ideana olisi siis että index.php sivulla olisi linkit sivuille imageupload, css upload, htmlupload ja ohje. CSS sivu tallentaa tiedostot kansioon CSS, HTML kansioon sivut ja kuvat kansioon Kuvat. Lataussivut olisivat kaikki kansiossa nettisivut, joka on pääkansiossa. Kuvalataus on jo. Hieman epäselvää mutta pistän havainnollistavan kuvan: http://sammakkopedia.jouluserver.com/index.php?title=Sammakkopedia:Upload Sori mut en jaksanu laittaa pelkkää kuvalinkkiä.

Horny The Horrible [06.02.2010 18:18:59]

#

Kukaan ei varmaan huomannut viestiä, joten laitan "ilmoituksen". Voitte katsoa tilanteen osoitteeessa http://villejuhanigo.jouluserver.com/nettisivut/dir.php

Edit: ImageUpload on se kuvanlataus sivu

Metabolix [06.02.2010 18:25:57]

#

Viestistäsi ei käynyt mitenkään ilmi, mikä siinä muokkaamisessa on ongelmana. Jos et pysty osoittamaan selvää, yksittäistä ongelmaa, sinulle ei voi oikein antaa kuin yleisiä neuvoja: lue PHP-opassarjaa, jotta opit PHP:tä, koodivinkkejä (upload-aiheisia), jotta opit upload-hommat, ja tämä keskustelu, jotta opit, millaisia virheitä järjestelmään voi tulla, millaista tuhoa niillä saa aikaan ja miten ne voisi välttää.

Horny The Horrible [06.02.2010 18:45:50]

#

Minulla on kansio www. siellä on kansio nettisivut. sinne pitäisi saada sivut Pageupload, jolla voi ladata html sivuja, jotka menee Sivut kansioon. Sinne pitäisi myös saada CssUpload joka lataa CSS sivuja CSS kansioon. UploadImage sivu on jo. En tajua yhtään noita uploadjuttuja. Yhenkin hyän uplooadkuvajutun muutin hyväksymään html sivuja muuttamalla kuvapäätteet html päätteeksi ja tarkistin monta kertaa.

Juhko [06.02.2010 18:52:41]

#

Uploadauksen perusteet: Upload-formiin attribuutti enctype='multipart/form-data', ja input, jonka "type"-attribuutti on "file", ja "name" vaikkapa "tiedosto". Sen jälkeen saat tiedoston sisällön funktiolla file_get_contents($_FILES['tiedosto']['tmp_name­']); ja nimen muuttujasta $_FILES['tiedosto']['name'];. Tiedostonimestä voit sitten tarkistaa päätteen, ja jos se on väärä, ohjaat käyttäjän komennolla header("Location: virhe.php"); haluamallesi virheilmoitussivulle.

Voit halutessasi joko copypastettaa koodit useammalle sivulle eri tiedostotyyppejä varten, ja tehdä tarvittavat pikkumuutokset.

Horny The Horrible [06.02.2010 19:26:29]

#

luin tuon aika monta kertaa. Tajusin kohdat "Uploadauksen perusteet:". Siihen loppui se. Sitten tajusin tuon "Voit halutessasi joko copypastettaa koodit useammalle sivulle eri tiedostotyyppejä varten, ja tehdä tarvittavat pikkumuutokset.". Tajusin myös joitan pieniä osia, mutten yhtään koodia...

Juhko [06.02.2010 19:27:43]

#

Otapa Googlella ensi töiksesi selville, mitä tarkoittavat HTML:ssä termit "attrubuutti" ja "tagi". Ja sen jälkeen, mitä tarkoittaa PHP:ssä termi "funktio".

Horny The Horrible [06.02.2010 19:30:17]

#

tagi: <b>, <i>, <font color="red">...
attribuutti: <a href="..." abb="VilleJuhaniGO">VJGO (Vaatii css näpräilyä.)

Juhko [06.02.2010 19:32:43]

#

Sitten teet HTML-koodin, jossa on form-tagi, jolla on attribuutti enctype='multipart/form-data'. Sen sisään input-tagi, jossa on attribuutti type='file'. Mikä jäi epäselväksi?

Juhko [06.02.2010 19:32:44]

#

Sitten teet HTML-koodin, jossa on form-tagi, jolla on attribuutti enctype='multipart/form-data'. Sen sisään input-tagi, jossa on attribuutti type='file'. Mikä jäi epäselväksi?

Horny The Horrible [06.02.2010 19:41:16]

#

hetkinen...

<form action="xxx ku tuo yks häirittee.php" method="get" abbr="enctype='multipart/form-data'"><input type="file" value="Lähetä tuo häiritsijä xxx!!!!!!!!">

Noinko...?

Mod. huom: Älä kiroile.

Macro [06.02.2010 19:45:38]

#

<form action="?" method="POST" enctype="multipart/form-data">

Horny The Horrible [06.02.2010 19:52:57]

#

Mikä toi "?" on?

Juhko [06.02.2010 19:58:31]

#

Uploadauksen käsittelevä PHP-tiedosto. Ja sit tosta puuttuu vielä submit-nappula

Macro [06.02.2010 20:02:34]

#

Sivu jolle tiedot lähetetään? Tuossa tapauksessa se on sivu jolla ollaan + kysymysmerkki (Esim. tiedosto.php?)

Tein sinulle hyvää hyvyyttäni esimerkin tiedostojen lataamisesta. Teet esimerkiksi kansion upload, johon alihakemiston uploads. Koodi luo jokaiselle käyttäjälle oman hakemiston uploads kansioon, johon hän voi laittaa tiedostoja tai poistaa niitä.

index.php

<?php
error_reporting(E_ALL | E_NOTICE);
session_start();
ob_start();

if(isset($_SESSION["user"])) {
	$mkoko = 5000000; // Max koko
	$hakemisto = "uploads/{$_SESSION["user"]}";
	$sallitut = array("html", "php", "css", "jpg", "jpeg", "bmp", "gif", "htm"); // Sallitut tiedostopäätteet

	if(!is_dir($hakemisto))
		mkdir($hakemisto);

	if(isset($_FILES["file"])) {
		global $hakemisto, $mkoko;

		$file_size = $_FILES["file"]["size"];
		$file_name = $_FILES["file"]["name"];
		$file_tmp_name = $_FILES["file"]["tmp_name"];
		$file_type = $_FILES["file"]["type"];

		if(file_exists($hakemisto . $file_name))
			die("Samanniminen tiedosto on jo olemassa!");

		if((int)$file_size > (int)$mkoko)
			die("Liian suuri tiedosto. Suurin sallittu koko on {$mkoko}Kb.");

		$pilkotut = explode(".", $file_name);
		if(!in_array($pilkotut[1], $sallitut))
			die("Ei sallittu tiedosto!");

		// Siirretään tiedosto kansioon
		move_uploaded_file($file_tmp_name, "$hakemisto/$file_name");
		header("Location: index.php?onnistui");
	}

	if(isset($_POST["poista"])) {
		if(file_exists($hakemisto . "/" . $_POST["poista"])) {
			unlink($hakemisto . "/" . $_POST["poista"]);
			header("Location: index.php");
			die;
		} else
			die("Tiedostoa ei löytynyt!");
	}
	?>

	<form action="?" method="POST" enctype="multipart/form-data">
		<input type="file" name="file"> <br>
		<input type="submit" value="Lataa">
	</form>
	<form action="?" method="POST">
		Poista tiedosto: <input type="text" name="poista"> <input type="submit" value="POISTA">
	</form>

	<b>Tiedostot:</b>
	<ul>
		<?php
		$hakemisto = opendir("$hakemisto/"); $i = 1;
		while($tiedosto = readdir($hakemisto)) {
			if($tiedosto == "." || $tiedosto == "..") continue;
			echo "<li><a href=\"$hakemisto/$tiedosto\">$tiedosto</a></li>";
			$i++;
		}
		?>
	</ul>
<?php } else header("Location: kirjaudu.php"); ?>

kirjaudu.php

<?php
session_start();
ob_start();

if(isset( $_POST["tunnus"]) && isset($_POST["salasana"])) {
	$tiedosto = explode("\r\n", file_get_contents("kayttajat.txt"));
	$salasana = $_POST["salasana"];
	$tunnus = $_POST["tunnus"];

	for($i = 0; $i < sizeof($tiedosto); $i++) {
		$tjs = explode(":", $tiedosto[$i]);

		if($tunnus == $tjs[0] && md5($salasana) == $tjs[1]) {
			$_SESSION["user"] = $tunnus;
			header("Location: index.php");
			die;
		}
	}

	die("Tunnus ja/tai salasana oli väärin!");
}
?>
<table>
	<form action="?" method="POST">
		<tr><td>Tunnus:</td><td><input type="text" name="tunnus"></td></tr>
		<tr><td>Salasana:</td><td><input type="password" name="salasana"></td></tr>
		<tr><td><input type="submit" value="Lähetä"></td></tr>
	</form>
</table>

kayttajat.txt

Macro:e7e941b1f09f266540c6780db51d5f58

Horny The Horrible [06.02.2010 20:05:38]

#

<html>
  <head>
    <title>Lataa sivu</title>
  </head>
  <body>
    <form action="?" method="POST" enctype="multipart/form-data">
    <input type="file" value="tiedosto">
    <input type="submit" value="Senddaa sivu">

Näinkö?

Mod. korjasi kooditagit

Macro [06.02.2010 20:06:46]

#

Muuten oikein, mutta ei kannata antaa file-inputille namen sijasta valueta. Lue esimerkkini ylhäältä.

Heh, en tiennytkään että is_dir() palauttaa falsen jos kansiota ei löytynyt. Oletin, että antaisi jonkin noticen.

Muuten, vilkaisin tuota etusivua nettisivuiltasi, ei ole hyvä idea laittaa jokaista lataussysteemiä erikseen!

Horny The Horrible [06.02.2010 20:14:54]

#

Ok. Tuo kommentti valmiin koodin jälkeen (siis missä oli virhe) niin en huomannut että laitoit koodin koska kirjoitin tuota "koodia" silloin. Kiitos.

Edit: Ei toimi

Macro [06.02.2010 20:21:46]

#

Tuo esimerkkini ei toimi? Taisit tehdä jotain väärin.

Horny The Horrible [06.02.2010 20:24:35]

#

http://villejuhanigo.jouluserver.com/upload/index.php

Macro [06.02.2010 20:25:31]

#

Mitäköhän onnistuit änkemään sinne tiedostoon? Näyttäisitkös...

Horny The Horrible [06.02.2010 20:27:25]

#

Nyt toimii. Mites teen tunnuksen'? Entä kävijät?

Macro [06.02.2010 20:31:01]

#

Kirjoitat kayttajat.txt tiedostoon tunnus per rivi tyyliin

Minä:md5 hashattu salasana
Sinä:md5 hashattu salasana
Hän:md5 hashattu salasana

Horny The Horrible [06.02.2010 20:34:47]

#

Entä jos joku haluaa tehdä tunnuksen? Helpotetaan (virtuaali)elämää ja tehdään/etsitään/mennään sivulle, sossa tehdään hashattuja salasanoja ja sitten ne on hashattu (Ei hele mikä nimi XDD)

Juhko [06.02.2010 20:36:09]

#

Eiks tossa Macron koodissa mene läpi kans sellaiset tiedostot, kuin dfgdssda.html.php, joka ajettais PHP-tulkin läpi?

horny the horrible kirjoitti:

Entä jos joku haluaa tehdä tunnuksen? Helpotetaan (virtuaali)elämää ja tehdään/etsitään/mennään sivulle, sossa tehdään hashattuja salasanoja ja sitten ne on hashattu (Ei hele mikä nimi XDD)

Teet erillisen tunnustenluontilomakkeen, joka lisää tiedostoon uuden tunnuksen. Salasanan md5-hashaus onnistuu funktiolla md5($teksti).

Macro [06.02.2010 20:37:35]

#

<?php
if(isset($_POST["tunnus"]) && isset($_POST["salasana"])) {
	file_put_contents("kayttajat.txt", file_get_contents("kayttajat.txt") . "\r\n" . $tunnus . ":" . $salasana);
	header("Location: index.php");
	die;
}
?>
<table>
    <form action="?" method="POST">
        <tr><td>Tunnus:</td><td><input type="text" name="tunnus"></td></tr>
        <tr><td>Salasana:</td><td><input type="password" name="salasana"></td></tr>
        <tr><td><input type="submit" value="Lähetä"></td></tr>
    </form>
</table>

Juhko kirjoitti:

Eiks tossa Macron koodissa mene läpi kans sellaiset tiedostot, kuin dfgdssda.html.php, joka ajettais PHP-tulkin läpi?

Entä sitten?

Juhko [06.02.2010 20:40:20]

#

Macro kirjoitti:

Entä sitten?

Tiedoston tyypin tarkistuksesta ei ole hyötyä, jos sitä on noin helppo kiertää.

Horny The Horrible [06.02.2010 20:45:38]

#

Juhko kirjoitti:

Teet erillisen tunnustenluontilomakkeen, joka lisää tiedostoon uuden tunnuksen. Salasanan md5-hashaus onnistuu funktiolla md5($teksti).

Opettelen vasta php:tä. Kuinka teen tämän? Jos en pitäisi ohjelmoinnista, kone olisi tuolla lumihangessa kuin koulussa kaikki kirjani lattialla...

RQ [06.02.2010 20:47:07]

#

Horny The Horrible kirjoitti:

Juhko kirjoitti:

Teet erillisen tunnustenluontilomakkeen, joka lisää tiedostoon uuden tunnuksen. Salasanan md5-hashaus onnistuu funktiolla md5($teksti).

Opettelen vasta php:tä. Kuinka teen tämän? Jos en pitäisi ohjelmoinnista, kone olisi tuolla lumihangessa kuin koulussa kaikki kirjani lattialla...

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=phpj5
Vähän hei oma-aloitteisuutta..?

Macro [06.02.2010 20:47:35]

#

Juhko kirjoitti:

Macro kirjoitti:

Entä sitten?

Tiedoston tyypin tarkistuksesta ei ole hyötyä, jos sitä on noin helppo kiertää.

Ei se ole kiertämistä. Jos laitat esimerkiksi tiedoston video.mpeg sinne nimellä video.mpeg.php, niin se tulkattaisiin PHP:nä eikä minään muuna.

Horny The Horrible [06.02.2010 20:50:56]

#

RQ kirjoitti:

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=phpj5
Vähän hei oma-aloitteisuutta..?

En tajua miten tuo auttaa ongelmassani.

Juhko [06.02.2010 20:51:00]

#

Tarkoitin sitä, että jos .php-tiedostoja ei ole sallittu, niin koodia voi huijata kirjoittamalla nimeksi "dsfsd.html.php", jolloin se on palvelimen mielestä .php, mutta koodin mielestä .html. Pitäis siis lisätä vielä se kolmas parametri explode-funktiolle, vai mitenkäs se nyt menikään...

Horny The Horrible kirjoitti:

En tajua miten tuo auttaa ongelmassani.

Siten, että sen luettuasi osaat käsitellä tiedostoja ja koodata rekisteröitymislomakkeen ilman apua.

Macro [06.02.2010 20:54:07]

#

Juhko kirjoitti:

Tarkoitin sitä, että jos .php-tiedostoja ei ole sallittu, niin koodia voi huijata kirjoittamalla nimeksi "dsfsd.html.php", jolloin se on palvelimen mielestä .php, mutta koodin mielestä .html. Pitäis siis lisätä vielä se kolmas parametri explode-funktiolle, vai mitenkäs se nyt menikään...

Et taida ymmärtää nyt. Jos PHP tiedostot eivät ole sallittuja, niin ne eivät mene latauksesta läpi. Voi HTML-koodia kirjoittaa PHP tiedostoon, mutta se ajetaan kuitenkin PHP tulkin läpi. Toisinpäin se ei toimi.

Horny The Horrible [06.02.2010 20:56:41]

#

Ainoa minkä haluan tietää on se, että kuinka saan tehtyä lomakkeen jolle syötetään salasana ja vastauksena on md5 hashattu salasana. Ja sen kuinka saan index.php:n näyttämään muutakin kuin virheilmoituksen kun sille menee ilman kirjautumista.

Macro [06.02.2010 20:57:40]

#

Enkös minä antanut esimerkin rekisteröitymisestä?

Juhko [06.02.2010 20:58:29]

#

Macro > http://jjp.jouluserver.com/test.php?file_name­=fasd.html.exe

RQ [06.02.2010 21:02:51]

#

Horny The Horrible kirjoitti:

Ainoa minkä haluan tietää on se, että kuinka saan tehtyä lomakkeen jolle syötetään salasana ja vastauksena on md5 hashattu salasana.

Teet lomakkeen, jonka syötteen muutat hashiksi MD5:llä. Jos et oikeasti sitäkään osaa kaiken tämän jälkeen, niin lue nyt ihmeessä se koko PHP-opas ajatuksella alusta loppuun. Turha vaivata muita näinkin typerillä kysymyksillä. Jos et PHP-opassarjankaan jälkeen osaa sitä tehdä, on varmaan parempi oottaa pari vuotta ennen kuin yrität opetella ohjelmointia, ei millään pahalla <_<. Copy-pasteaminen kun ei ole ohjelmointia.

Horny The Horrible kirjoitti:

Ja sen kuinka saan index.php:n näyttämään muutakin kuin virheilmoituksen kun sille menee ilman kirjautumista.

Siis mitä....?

Horny The Horrible [06.02.2010 21:03:16]

#

http://villejuhanigo.jouluserver.com/upload/uploads/Froghman/lataa.php <-- hehe

Juhko [06.02.2010 21:05:20]

#

Ööh?

Macro [06.02.2010 21:26:02]

#

Aa, tarkoitit tuota. Anteeksi vain, ajattelin eritavalla. Ei kuitenkaan kannata laittaa lisää tarkistuksia, sillä niitä voi olla loputtomasti (Jos nyt tajusinkaan viestiäsi oikein).

Jos sen in_array tarkistusrivin korvaa tällä if(!in_array($pilkotut[sizeof($pilkotut) - 1], $sallitut)), niin silloin pitäisi toimia.

Metabolix [06.02.2010 21:32:28]

#

Macro: Juhko on aivan oikeassa. Tarkistat vain $pilkotut-taulukon toisen elementin, eli a.b.c:stä tulee tarkistettua b. (Edit: hidas.) Oikea tarkistettava olisi end($pilkotut).

Lisäksi tuo explode-viritys file_get_contentsin kanssa on huono, koska Unixissa rivinvaihto on pelkkä \n ja (vanhassa) Macissa pelkkä \r. Parempi tapa olisi file("tiedostonimi", FILE_IGNORE_NEW_LINES). Toisaalta tuollaisessa tiedostomuodossa tulee myös ongelmia, jos esimerkiksi käyttäjänimi sisältää pystyviivan, joten kannattaisi ehkä harkita jonkinlaista enkoodausta. Esimerkiksi rawurlencode on helppo.

Horny The Horrible [06.02.2010 21:32:31]

#

Siis häh?

Juhko [06.02.2010 21:32:34]

#

Helpompi olis laittaa kolmas parametri explode:lle.

Macro [06.02.2010 21:34:12]

#

Molemmat tavat toimivat.

RQ [06.02.2010 21:34:32]

#

Macro kirjoitti:

Aa, tarkoitit tuota. Anteeksi vain, ajattelin eritavalla. Ei kuitenkaan kannata laittaa lisää tarkistuksia, sillä niitä voi olla loputtomasti (Jos nyt tajusinkaan viestiäsi oikein).

Ei niin, vaan kannattaa vaihtaa tarkistustapaa. Eli tarkistat vain tiedostonimen viimeiset merkit.

Juhko [06.02.2010 21:35:23]

#

Horny The Horrible kirjoitti:

Siis häh?

Macron koodissa oli pikkubugi, jonka korjaamisesta keskustelimme.

Metabolix [06.02.2010 21:36:27]

#

Juhko: exploden kolmas parametri ei minusta ratkaise ongelmaa kovin hyvin, koska viimeinen pala sisältäisi loput tekstistä, jolloin a.php.html:stä tarkistettaisiin php.html ja tiedosto virheellisesti hylättäisiin.

Macro: in_array on yllä mainitusta syystä myöskin huono: eihän ole mitään syytä hylätä tiedostoa php.html.

Horny The Horrible [06.02.2010 21:37:16]

#

Miten kirjaudun tuolta ulos? siis siltä latausjutulta

Juhko [06.02.2010 21:38:25]

#

Metabolix > Korjaantuu, kun sijoittaa count-jutun if-lauseeseen.

Horny The Horrible kirjoitti:

Miten kirjaudun tuolta ulos? siis siltä latausjutulta

<?php
$_SESSION['user']='';

Metabolix [06.02.2010 21:43:37]

#

Joo, enpä huomannut sizeoffia. Mutta siinähän on nyt bugi: taulukon viimeinen on sizeof($t)-1, ei suinkaan sizeof($t). (Jos joku ei tiedä, niin sizeof tekee saman kuin count.) Ehdottamani end($t) olisi joka tapauksessa lyhyempi ja selkeämpi.

Macro [06.02.2010 21:43:56]

#

Juhko kirjoitti:

Horny The Horrible kirjoitti:

Miten kirjaudun tuolta ulos? siis siltä latausjutulta

<?php
$_SESSION['user']='';

Eipä taida toimia

<?php
unset($_SESSION["user"]);
session_destroy();

Juhko [06.02.2010 21:46:31]

#

Joo hups. Unohdin sanoa että tarkistukseen pitäis liittää kans tarkistus siitä onko tyhjä. Paras tapahan olis tehdä kummatkin. ;)

Horny The Horrible [06.02.2010 21:57:42]

#

Kiitos. Vaikkakin monta ongelmaa on ratkaisematta... Muuten... Tuonnehan voi ladata käytännssä mitä lystää. Nytki minä lataan tuota koodia muutettuna niin, että se sallii zip ja txt tiedostot. Sinnehän voi ladata mitä vaan XD

reca [07.02.2010 22:37:03]

#

Aivan mahtavaa keskustelua! Hyvää viihdettä jokaisena iltana :>

Itse toteutan tiedostojen tarkistamisen niin, että katson viimeisen pisteen, jonka jälkeen tulee tunniste. Ongelmallista esimerkiksi mäkkiympäristössä ovat tiedostot, joilla ei ole päätettä. Itse jätän kyseiset tiedostot suoraan ulkopuolelle.

Mielestäni PHP myös tukee komentoa (joku versio), joka kertoo tiedoston päätteen suoraan tai millainen tiedosto se on. Tosin siinä oli viimeksi jotakin ongelmallista, joten jätin käyttämättä. En valitettavasti muista kyseistä komentoa.

temu92 [08.02.2010 01:10:27]

#

reca kirjoitti:

Aivan mahtavaa keskustelua! Hyvää viihdettä jokaisena iltana :>

Lisää viihdettä löytyy wikipediasta. Sanoisinko että typerää tuollainen.

Ja tiedostopäätteen saa php:n funktiolla pathinfo. Sama funktio osaa selvittää muutakin kivaa tietoa (saa kattoa php.netistä).

<?php
    $info = pathinfo("hakemisto/jatiedostonimi.php");
    echo "Tiedostotyyppi: ".$info['extension'].".<br />";
    echo "Polku: ".$info['dirname'].".<br />";
?>

vehkis91 [08.02.2010 01:30:53]

#

temu92, oli tosiaan ihan mukavaa viihdettä. :):)

nozies [08.02.2010 07:08:44]

#

myös strrchr:llä onnistuu:

<?php

$allowed_ext = array('jpg', 'png');
$extension = strrchr($tarkistettavatiedosto, '.');

if (in_array($extension, $allowed_ext)) {

// jos arrayssa

}

...jossa siis $tarkistettavatiedosto on se filu mitä sinne koitat sendaa

Horny The Horrible [10.02.2010 08:17:40]

#

Löysin "bugin" koodista. Kun siitä linkistä painaa, jonka pitäisi mennä sille ladatulle sivulle, niin se vie jollekki veirdo sivulle.

Horny The Horrible [10.02.2010 18:54:49]

#

Macro! Miksi minun salasana on sinun tiedostossasi? Vastaa! Sivusto on sekaisin sen latauksesi jäljiltä! Oon sitäpaitti nyt aika kiireinen joten selitä!
(Mod. korjasi viestin ulkoasun.)

Metabolix [10.02.2010 19:15:30]

#

Horny The Horrible: Käyttäydy kunnolla nyt. Älä HUUDA äläkä käytä useampaa kuin yhtä huutomerkkiä. Voit myös lähettää yksityiset viestit sähköpostilla suoraan asianomaiselle henkilölle, ei tarvitse kierrättää kaikkea foorumin kautta.

Olit näköjään tarpeeksi ymmärtämätön laittaaksesi salasanat tiedostoon kayttajat.txt, jonka kuka tahansa voi ladata. Ei pidä tehdä niin vaikeita asioita, ettei edes ymmärrä mahdollisia riskejä.

Joku voi ladata tuon salasanatiedoston ja arvaamalla kokeilla, tuottaisiko md5("salasana") oikean tuloksen. (Tuloksia on myös listattu valmiiksi joillekin sivustoille.) Tämän takia MD5-funktiota ei koskaan pidä käyttää ilman "suolaa" eli salasanaan lisättävää salaista tekstiä, jonka vain ylläpitäjä tietää. Kun salasanaan lisätään tuntematon osa, md5("salasana") antaa väärän tuloksen, koska tiedostossa lukeekin tarkiste md5("salasanaSALAINEN").

Edit: Juhko: käyttäydy sinäkin! Poistin jo neljä viestiäsi, enkä epäröi poistaa useampaakin, jos laatu ei parane. Isolla kirjoittaminen ja törkypuheet eivät ole asiallista käytöstä.

Metabolix [10.02.2010 19:51:46]

#

Keskustelu lukittu riehumisen vuoksi.


Sivun alkuun

Vastaus

Aihe on lukittu, joten siihen ei voi vastata.

Tietoa sivustosta