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 :)
Millähän tavalla se toimii ja miten sen pitäisi toimia, sen enempää koodia katsomatta :)
ZcMander kirjoitti:
Millähän tavalla se toimii ja miten sen pitäisi toimia, sen enempää koodia katsomatta :)
Muokkasin kysymystä selkeämmäksi :)
register_globals pois päältä?
Laitappas ennen arvojen tarkistusta:
$name = $_POST["name"]; $password = $_POST["password"]; ##jne... Loput muuttuujat tähen
Eli nyt kaikki arvot mitkä tarkistat ovat tyhjiä
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.