Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Rekisteröitymisessä vikaa

ZeBe [19.10.2006 20:53:12]

#

Hei!
Ois tälläinen pieni ongelma... Mistä mahtaa johtua, että tämä ei toimi?

Edit:
Eli siis http://terraariot.arkku.net/ (Kyseisellä sivulla)
Rekisteröitymis lomake (Alla) ei toimi. Kyseisen lomakkeen pitäisi tallentaa tiedostoon users.php uuden käyttäjän tiedot. Jonka jälkeen ohjaa kirjautumis sivulle. Mutta jostain syystä tämä ei toimi vaan tallentaminen ei onnistu jostain syystä ikinä vaan aina avautuu uudestaan rekisteröitymislomake.

Kyseessä on kuitenkin joku yksinkertainen moka, jota en ole vain itse tajunnut tai huomannut. Kiitos.

register.php

<?php
if(isset($sendRegister))
{
	if(!isset($name) || $name == "")
		die("$lan[0]");
	if(!isset($password) || $password == "")
		die("$lan[1]");
	if(!isset($realname) || $realname == "")
		$realname = " ";
	if(!isset($email) || $email == "")
		$email = " ";
	if(!isset($age) || $age == "")
		$age = " ";
	if(!isset($usertext) || $usertext == "")
		$usertext = " ";
	if(!isset($signature) || $signature == "")
		$signature = " ";

	if($password != $password2)
		die("$lan[64]");

	$password = md5($password);

	$name = htmlspecialchars($name);
	$realname = htmlspecialchars($realname);
	$email = htmlspecialchars($email);
	$usertext = htmlspecialchars($usertext);
	$signature = htmlspecialchars($signature);
	$signature = str_replace("\n", "<br>", $signature);
	$signature = str_replace("
", " ", $signature);
	$loweredname = strtolower($name);

	$id = 0;

	$fd = fopen ("include/users/users.php", "r");
	while (!feof ($fd))
	{
		$buffer = fgets($fd, 1024);
		if($buffer != "")
		$nameCheck = explode("|||", $buffer);
		if(isset($nameCheck[1]))
		{
			if($nameCheck[0] > $id)
				$id = $nameCheck[0];
			if(strtolower($nameCheck[1]) == "$loweredname")
				die("$lan[99]");
		}
	}
	fclose ($fd);

	$id = $id + 1;

	$userFile = fopen ("include/users/users.php", "a");
	fwrite($userFile, "$id|||$name|||$password|||$realname|||$email|||$age|||$usertext|||$signature|||0|||
");
	fclose($userFile);
	print("$lan[111]");
	include("index.php?login_form");
}
else
{
	include("registration_form.php");
}
?>

registration_form.php

			<table border="0" width="95%" cellpadding="0" cellspacing="0">
				<tr>
					<td valign="top" align="left"><font size=2 face="Verdana">
						<br>
						<a href="index.php"><?php print($bbsname); ?></a> > <?php print($lan[112]); ?>
					</td>
				</tr>
			</table>

<form action="index.php?v=register" method="post">

<table width="50%" border=0>
<tr>
<td><br><font size=2 face="Verdana"><?php print($lan[160]); ?><br><br></td>
</tr>
</table>
<table width="50%" border=0>
<tr>
<td width="100" colspan="3" align="right" nowrap><font size=2 face="Verdana"><?php print($lan[87]); ?></td>
<td width="368" colspan="3" align="left">
<input name="name" type="text" maxlength="15"><br>
</td></tr>

<tr>
<td width="100" colspan="3" align="right" nowrap><font size=2 face="Verdana"><?php print($lan[88]); ?></td>
<td width="368" colspan="3" align="left">
<input name="password" type="password"><br>
</td></tr>

<tr>
<td width="100" colspan="3" align="right" nowrap><font size=2 face="Verdana"><?php print($lan[78]); ?></td>
<td width="368" colspan="3" align="left">
<input name="password2" type="password"><br>
</td></tr>
</table>
<table width="50%" border=0>
<tr>
<td><br><font size=2 face="Verdana"><?php print($lan[113]); ?><br><br></td>
</tr>
</table>
<table width="50%" border=0>
<tr>
<td width="100" colspan="3" align="right" nowrap><font size=2 face="Verdana"><?php print($lan[71]); ?></td>
<td width="368" colspan="3" align="left">
<input name="realname" type="text" maxlength="30"><br>
</td></tr>
<tr>
<tr>
<td width="100" colspan="3" align="right" nowrap><font size=2 face="Verdana"><?php print($lan[72]); ?></td>
<td width="368" colspan="3" align="left">
<input name="email" type="text" maxlength="50"><br>
</td></tr>
<tr>
<td width="100" colspan="3" align="right" nowrap><font size=2 face="Verdana"><?php print($lan[73]); ?></td>
<td width="368" colspan="3" align="left">
<input name="age" type="text" maxlength="3"><br>
</td></tr>
<tr>
<td width="100" colspan="3" align="right" nowrap><font size=2 face="Verdana"><?php print($lan[74]); ?></td>
<td width="368" colspan="3" align="left">
<input name="usertext" type="text" maxlength="30"><br>
</td></tr>
<tr>
<td width="100" colspan="3" align="right" nowrap><font size=2 face="Verdana"><?php print($lan[75]); ?></td>
<td width="368" colspan="3" align="left">
<textarea name="signature" rows="5" cols="30"></textarea><br>
</td></tr>

<tr><td width="100" colspan="3" nowrap></td><td width="368" colspan="3" align="left">
<input type="submit" name="sendRegister" value="<?php print($lan[112]); ?>">
</td></tr>
</form>
</table>

Jos huomasitte syyn, voisitteko olla kilttejä ja kertoa :)

ZcMander [19.10.2006 21:01:42]

#

Millähän tavalla se toimii ja miten sen pitäisi toimia, sen enempää koodia katsomatta :)

ZeBe [19.10.2006 21:41:17]

#

ZcMander kirjoitti:

Millähän tavalla se toimii ja miten sen pitäisi toimia, sen enempää koodia katsomatta :)

Muokkasin kysymystä selkeämmäksi :)

ajv [19.10.2006 21:44:40]

#

register_globals pois päältä?

juha127 [19.10.2006 22:02:00]

#

Laitappas ennen arvojen tarkistusta:

$name = $_POST["name"];
$password = $_POST["password"];
##jne... Loput muuttuujat tähen

Eli nyt kaikki arvot mitkä tarkistat ovat tyhjiä

Tontsa-san [20.10.2006 17:36:55]

#

Tuo users.txt kannattaisi olla semmoisessa kansiossa, mihin muut eivät pääse. esim. "../users.txt".

edit. Oho se onkin PHP tiedosto - noh, jokatapauksessa suosittelisin käyttämään jotain muuta tiedostotyyppiä. :)

    if(!isset($usertext) || $usertext == "")
        $usertext = " ";
    if(!isset($signature) || $signature == "")
        $signature = " ";
    // Jne

- Näiden rivien tarkoitusta en oikein ymmärtänyt.

Vastaus

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

Tietoa sivustosta