ďťż

[php] dane w plikach - usuwanie i aktualizowanie danych + niedziałające wykrywanie zajętej nazwy użytkownika

       

Podstrony


telcocafe

1. jeżeli mam dane w pliku przedstawione np w taki sposób:

user1[,]haslouser1[,]imieusera1[|]user2[,]haslouser2[,]imieusera2[|].....
to jak za pomocą formularza można zmieniać/usuwac pojedyncze elementy?
(np kiedy user2 chce zmienić swoje hasło)

2. mam taki skrypt do rejestracji jednak nie dziala wykrywanie zajętej nazwy użytkownika. Kiedyś mi działało ale teraz coś zmieniłem i nie działa :P dlatego daje cały kod bo bardzo zależy mi na tym żeby to działało

<?php
$mode = $_GET['page'];
$errors = array();
$filename = "data/users/users.php";
$open = fopen($filename, "a+");
$read = fread($open, filesize($filename));

$users = array();
$users = explode("[|]", $read);
$c_users = count($users);

function form() {
echo "<form action=\"index.php?mode=com&cid=6&page=form\" method=\"post\">
<table border=\"0\">
<tr><td>Login</td><td><input type=\"text\" name=\"login\" class=\"pole\" value=\"".$_POST['login']."\"></td></tr>
<tr><td>Hasło</td><td><input type=\"password\" name=\"pass\" class=\"pole\" value=\"".$_POST['pass']."\"></td></tr>
<tr><td>Hasło (powtórz)</td><td><input type=\"password\" class=\"pole\" name=\"pass2\" value=\"".$_POST['pass2']."\"></td></tr>
<tr><td>E-mail</td><td><input type=\"text\" class=\"pole\" name=\"email\" value=\"".$_POST['email']."\"></td></tr>
<tr><td>Imie</td><td><input type=\"text\" class=\"pole\" name=\"imie\" value=\"".$_POST['imie']."\"></td></tr>
<tr><td>GG</td><td><input type=\"text\" class=\"pole\" name=\"gg\" value=\"".$_POST['gg']."\"></td></tr>
<tr><td>Miejscowosc</td><td><input type=\"text\" class=\"pole\" name=\"home\" value=\"".$_POST['home']."\"></td></tr>
<tr><td>Ukryc gg?</td><td> <label><input type=\"radio\" name=\"hgg\" value=\"0\""; if($_POST['hgg'] == 0) { echo "checked"; } echo "> Nie</label>
<label><input type=\"radio\" name=\"hgg\" value=\"1\""; if($_POST['hgg'] == 1) { echo "checked"; } echo "> Tak</label></td></tr>
<tr><td>Ukryc miejscowosc?</td><td><label>
<input type=\"radio\" name=\"hm\" value=\"0\""; if($_POST['hm'] == 0) { echo "checked"; } echo "> Nie</label>
<label><input type=\"radio\" name=\"hm\" value=\"1\""; if($_POST['hm'] == 1) { echo "checked"; } echo "> Tak</label></td></tr>
<tr><td></td><td><input type=\"submit\" value=\"Zarejestruj\"></td></tr>
</table>
<input type=\"hidden\" name=\"form\">
</form>";
}

function display_errors() {
global $errors;
foreach ($errors as $err) {
echo "<b>$err</b><br>";
}
echo "<br>";
}

function validate_data() {

global $errors;

for ($i = 0; $i < $c_users; $i++) {
$dane = explode("[,]", $users[$i]);
if($dane[4] == $_POST['login']) { $errors[] = "Podany login jest już zajęty"; }
if($dane[6] == $_POST['email']) { $errors[] = "Podany email jest juz zapisany w naszej bazie"; }
}

if($_POST["login"] == "") { $errors[] = "Podaj login"; }
if($_POST["pass"] == "") { $errors[] = "Podaj hasło"; }
if($_POST["pass"] != "" and $_POST['pass2'] == "") { $errors[] = "Podaj powtórzenie hasła"; }
if($_POST["pass"] != "" and $_POST['pass2'] != "" and $_POST['pass'] != $_POST['pass2']) { $errors[] = "Podane hasła są różne"; }
if($_POST["email"] == "") { $errors[] = "Podaj email"; }
if($_POST["imie"] == "") { $errors[] = "Podaj imie"; }
if($_POST["hgg"] == "") { $errors[] = "Podaj czy chcesz ukrywać adres email"; }
if($_POST["hm"] == "") { $errors[] = "Podaj czy chcesz ukrywać miejsowosc"; }
if($_POST["email"] != "" and !preg_match('/@/i', $_POST['email'])) { $errors[] = "Podaj prawidłowy adres e-mail"; }
}

if($mode == "form") {

if(isset($_POST['form'])) {
validate_data();
if(count($errors) != 0) {
display_errors();
form();
}
else {
$userid = $c_users + 1;
$write_data = "[|]".$userid."[,]0[,]0[,]u[,]".$_POST['login']."[,]" .$_POST['pass']."[,]".$_POST['email']."[,]".$_POST[' imie']."[,]".$_POST['gg']."[,]".$_POST['home']." [,]".$_POST['hgg']."[,]".$_POST['hm']."[,]inbuild";
$reg = fwrite($open, $write_data);

if($reg = TRUE) {
echo "Zostałeś zarejestrowany. Oto twoje najważniejsze dane:<br><br>";
echo "<table border=\"0\">
<tr><td><b>Login:</b></td><td>".$_POST['login']. "</td></tr>
<tr><td><b>Hasło:</b></td><td>";
$znakow = strlen($_POST['pass']);
for($u = 0;$u < $znakow;$u++) { echo "*"; }
echo "</td></tr>
<tr><td><b>Email:</b></td><td>".$_POST['email']. "</td></tr>
</table><br><br><a href=\"index.php?mode=com&cid=5&current=form\">Formularz logowania</a><br><br>";
}
else {
echo "<font color=\"red\"><b>Błąd!</b></font><br>Nie można zapisać użytkownika.";
}
}
}
else {
form();
}
}
else {
form();
}
fclose($open);
?>




musisz rolozyc wszystko poprzez explode zmienic 1 tablice i zlozyc w implode ;-)


musisz rolozyc wszystko poprzez explode zmienic 1 tablice i zlozyc w implode ;-) co jest niesamowicie nieoptymalne oraz sztuczne, dlatego zachecam do zaprzestania korzystania do tego z plikow - sa przeciez konta z mysql, a nawet i oddzielne bazy mysql.


musisz rolozyc wszystko poprzez explode zmienic 1 tablice i zlozyc w implode ;-)

eee mozesz mi zapodać jakis kod? :)



http://pl.php.net/ma...ion.explode.php , http://pl.php.net/ma...ion.implode.php - masz tu mase przykladów

bedziesz musial najprawdopodobniej uzyc jeszcze array_search do szukania odpowiednich loginów - jak widze nie masz tu ID, a nie mogą to być indeksy tablicy, bo przeciez chcesz usuwac wpisy.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.