Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: system rejestracji
Forum PHP.pl > Forum > Gotowe rozwiązania
mit_mis0
no więc tak...
chciałbym napisać skrypt, dzięki któremu będzie można się rejestrować, logować z poziomu strony głównej, redaktorzy będą mieli dostęp do panela administratora, ale w zależności jakie będą mieli upranienia, administrator(czyli ja:D) będzie mógł, zmieniać dane oraz usuwać userów. Narazie napsiałem tyle:

useradd.php
Kod
<?

$dane="$nickname|-|$password|-|$mail|-|$functiononsiten";

$file="data/sitedatausers.dat";

$fp=fopen("$file", "a");

flock($fp, 2); //blokujemy

fwrite($fp, $dane);

flock($fp, 3); //odblokowujemy

fclose($fp);

echo 'Zrobione!!!!!!!!!!'

?>


oraz formularz...

formaddsusr.htm
Kod
<form action="useradd.php" method="post">

<input type="hidden" name="ok" value="1"><br>

<input type="text" name="nickname" size="45"><br>

<input type="password" name="password" size="45"><br>

<input type="text" name="mail" size="45"><br>

<input type="hidden" name="functiononsite" value="User"><br>

<input type="submit" value="submit">

</form>


liczę na szybką odpowiedź...
kliszaq
racze dobrze przestudiować forum... a potem ewentualnie zadawać pytania 8)
mit_mis0
a jest już takie coś na forum??!! pliss dajcie adres...ssssss bo nie mogę znaleźć...
nobody
Cytat
a jest już takie coś na forum??!! pliss dajcie adres...ssssss bo nie mogę znaleźć...

http://forum.php.pl/search.php laugh.gif
mit_mis0
o stary, ale żeś mi adres podał!! wiem że jest takie coś i już szukałem d****u jeden, tylko znaleźć nie mogę!!
hwao
Tylko torche przerobic i bedzie Cool winksmiley.jpg
http://forum.php.pl/viewtopic.php?t=8796
mit_mis0
dzięki hwao, tylko jak zrobić do tego panel admina i żebym mógł edytować dane i usuwać user'ów i zmieniać im rangi??
hwao
[php:1:3bf254f814]<?php
include("config.php");
if ($dir =@opendir($url)) {
while ($file = readdir($dir)) {
if (is_dir($dir_name."/".$file)) {
$foldery[] = $file;
} else {
$pliki[] = $file;
}
}
closedir($dir);
}

sort($pliki);

for($i=0; count($pliki) > $i; $i++){
$dane = file("$url/$pliki[$i]");
list($nick,$haslo,$mail) = explode('|+|', $dane[0]);
echo "<a href="mailto:$mail">$nick</a><br>";
}
?>[/php:1:3bf254f814]
To pokazuje Ci wszytkich użytkowników chyba z reszta nie bedzie problemu... jak co pisz.
mit_mis0
nie umiem właśnie zrobić takiego skryptu, który by brał dane z pliku i je zmieniał... tylko nie odsyłajcie mnie do poradnika...
mit_mis0
nie wiem dlaczego, jak biorę logowanie.php, to i wyskakuje:
Cytat
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:usrkrasnalwwwrejconfig.php:73) in c:usrkrasnalwwwrejlogowanie.php on line 4

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:usrkrasnalwwwrejconfig.php:73) in c:usrkrasnalwwwrejlogowanie.php on line 4


logowanie.php
Kod
<?php

/* logowanie dla wielu uzytkowników by hwao */

include("config.php");

session_start();

if (($_SESSION['nick'] == "") && ($_SESSION['haslo'] == "")) {

  if ($_POST['form'] != "") {

   if (($_POST['nick'] != "") && ($_POST['haslo'] != "")) {

    $nick_form = $_POST['nick'];

    $haslo_form = md5($_POST['haslo']);

    $file = @file("$url/$nick_form.txt") or die("$error");

     for($i=0; count($file) > $i; $i++){

      list($nick,$haslo,$mail) = explode('|+|', $file[0]);

          if(($nick_form == "$nick") && ($haslo_form == "$haslo")) {

        $login = "yes";

         session_register(login);

         session_register(nick);

         session_register(mail);

        header ("location: $url_pass");

        exit;

       } else {

        echo $error2;

       }

     }

   } else {

    echo $form;  

   }

  } else {

   echo $form;

  }

} elseif (($_SESSION['nick'] != "") && ($_SESSION['haslo'] != "")) {

  header ("location: $url_pass");

  exit;

}

?>
dob
Dlatego ze najpierw do przeglądraki trafił jakis tekst lub coś a potem była próba wysłania nagłówków - robi esie odwrotnie - wysyłasz nagłowki wyswietlasz tekst (tekstem mogą byc znaczniki html których nie widac na stronie tylko w źródle , moze byc to też spacja...)

Jak musi być tak jak masz teraz tzn wpierw tekst potem nagłowki - to poszukaj o funkcji ob_start() i ob_end_flush
mit_mis0
nie, nie musi tak być, tylko jak to poprawić, bo ja się dopiero uczę php...
mit_mis0
chciałem zrobić tabelkę, gdzie będą wyświtleni userzy, ale mi nie wyszło, powiedzcie co jest źle:
Kod
<table border="1" width="428" height="51">

<tr>

      <td width="80" height="15">Nick</td>

      <td width="97" height="15">Mail</td>

      <td width="79" height="15">Ranga</td>

      <td width="138" height="15" colspan="2">

        <p align="center">EDYCJA</td>

    </tr>

<?php

include("config.php");

if ($dir =@opendir($url)) {

  while ($file = readdir($dir)) {

   if (is_dir($dir_name."/".$file)) {

    $foldery[] = $file;

   } else {

    $pliki[] = $file;

   }

  }  

   closedir($dir);  

}



sort($pliki);



for($i=0; count($pliki) > $i; $i++){

  $dane = file("$url/$pliki[$i]");

   list($nick,$haslo,$mail,$ranga) = explode('|+|', $dane[0]);

  print "<tr><td width=/"80/" height=/"24/">$nick</td>";

  print "<td width=/"97/" height=/"24/">$mail</td>";

  print "<td width=/"79/" height=/"24/">$ranga</td>";

  print "<td width=/"68/" height=/"24/">Edycja</td>";

  print "<td width=/"70/" height=/"24/">Usuń</td></tr>/n";

}

?>

</table>


i błąd:
Cytat
Parse error: parse error, unexpected T_LNUMBER in c:usrkrasnalwwwrejpad.php on line 27
dob
Ukośniki w drugą stronę...
[php:1:5caa620177]
<table border="1" width="428" height="51">
<tr>
<td width="80" height="15">Nick</td>
<td width="97" height="15">Mail</td>
<td width="79" height="15">Ranga</td>
<td width="138" height="15" colspan="2">
<p align="center">EDYCJA</td>
</tr>
<?php
include("config.php");
if ($dir =@opendir($url)) {
while ($file = readdir($dir)) {
if (is_dir($dir_name."/".$file)) {
$foldery[] = $file;
} else {
$pliki[] = $file;
}
}
closedir($dir);
}

sort($pliki);

for($i=0; count($pliki) > $i; $i++){
$dane = file("$url/$pliki[$i]");
list($nick,$haslo,$mail,$ranga) = explode('|+|', $dane[0]);
print "<tr><td width="80" height="24">$nick</td>";
print "<td width="97" height="24">$mail</td>";
print "<td width="79" height="24">$ranga</td>";
print "<td width="68" height="24">Edycja</td>";
print "<td width="70" height="24">Usuń</td></tr><br>";
}
?>
</table>
[/php:1:5caa620177]
mit_mis0
ok, działa:D
tylko teraz tak... jak zrobić, że jak kliknę w Edycja to się pokazuje nowa strona i tam mogę zmieniać dane, oraz zmieniać rangi, a rangi, będą przechowywane w jakimś katalogu, np. rangi/user.dat, a w pliku zapisane do czego ma dostęp użytkownik, oraz jak usuwać user'ów... proszę pomóżcie...
mit_mis0
mam taki problem :cry: zrobilem sobie plik edit.php, w którym móglbym zmienia rangi user'om, chcialbym, zeby rangi byly w katalogu data/rangi i zeby skrypt czytal nazwy plików z katalogu i wklejaB do rozwijanej listy(<select></select>, a nazwy to by byly User.txt, Site Admin.txt, Recenzent.txt itd... i mam taki kod:
[php:1:5f52a52714]
<?php
include("config.php");
if($_GET['edit'] != "") {
echo '<hr>';
$nick=$_GET['edit'];
$file= file("data/userowie/".$nick.".txt");
list($nick,$haslo,$mail,$ranga) = explode('|+|', $file[0]);
if ($dir =@opendir($url)) {
while ($file = readdir($dir)) {
if (is_dir($dir_name."/".$file)) {
$foldery[] = $file;
} else {
$pliki[] = $file;
}
}
closedir($dir);
}

echo 'Zmień dane userowi '.$nick.'.';
echo '<form method=post action=?save='.$nick.'>';
echo '<input type=hidden name=nick value='.$nick.' size=30>';
echo '<input type=hidden name=haslo value='.$haslo.' size=30>';
echo '<input type=hidden name=mail value='.$mail.' size=30>';
echo '<input type=text name=ranga value='.$ranga.' size=30>';
if($_GET['edit'] != "") {
echo '<hr>';
$ranga=$_GET['ranga'];
$file= file("$urlrang/".$ranga.".txt");
if ($dir =@opendir($urlrang)) {
while ($file = readdir($dir)) {
if (is_dir($dir_name."/".$file)) {
$foldery[] = $file;
} else {
$pliki[] = $file;
}
}
closedir($dir);
}
echo '<select size="1" name="D1" name=ranga>';
for($i=0; count($ranga) > $i; $i++){
list($wyswietl) = explode('|+|', $ranga[0]);
echo '<option>'.$wyswietl.'</option>';
}
echo '</select>';
}
echo '<input type=submit value=wyslij></form>';
}
if ($_GET['save'] != "") {
echo '<hr>';
extract( $_POST );

$dane="$nick|+|$haslo|+|$mail|+|$ranga|+|";
$file="data/userowie/$nick.txt";
$fp=fopen("$file", "w+");
flock($fp, 2);
fwrite($fp, $dane);
flock($fp, 3);
fclose($fp);
}
?>
[/php:1:5f52a52714]

tylko ze, zamiast rang widze U, pomozcie...

?>[/php]
Cudi
[php:1:9ec83cd955]for($i=0; count($ranga) > $i; $i++){
list($wyswietl) = explode('|+|', $ranga[0]);
echo '<option>'.$wyswietl.'</option>';
} [/php:1:9ec83cd955]
Ta pętla do bzdura, niedość że z każdą iteracją robi to samo, to jeszcze bierze pierwszą literke stringu i próbuje ją rozdzialać...
mit_mis0
ej, no sorry, ale moze zamiast krytykowac, moze bys mi pomogl?? ja si jeszcze nie znam... i moge popelniac takie bledy... przeiez to nie moja wina...
Cudi
Dałem Ci wskazówkę, to Twój skrypt, Ty powinieneś wiedzieć co chcesz zrobić. Wskazałem Ci błąd, spróbuj go naprawić.

Ja niebardzo rozumiem co chcesz tu osiągnąć. Chcesz trzymać nazwy rang każda jako osobny plik, czy w jedym pliku wszystkie odzielone |+| ?
mit_mis0
jako nazwy plików
Cudi
A co trzymasz w pliku $urlrang/$ranga ? Chesz wyświetlić w tej pętli jego zawartość czy nazwy plików z folderu $urlrang ?
Jeśli to pierwsze to w w.w pętli zmienną $ranga zamień zmienną $file, jeśli to drugie zamień w.w pętle na taką:
[php:1:7c0814a9de]<?php
foreach( $pliki as $ranga )
{
echo $ranga;
}
?>[/php:1:7c0814a9de]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.