mit_mis0
19.12.2003, 19:33:30
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
19.12.2003, 19:52:44
racze dobrze przestudiować forum... a potem ewentualnie zadawać pytania 8)
mit_mis0
19.12.2003, 20:18:43
a jest już takie coś na forum??!! pliss dajcie adres...ssssss bo nie mogę znaleźć...
nobody
19.12.2003, 20:25:05
Cytat
a jest już takie coś na forum??!! pliss dajcie adres...ssssss bo nie mogę znaleźć...
http://forum.php.pl/search.php
mit_mis0
19.12.2003, 20:28:55
o stary, ale żeś mi adres podał!! wiem że jest takie coś i już szukałem d****u jeden, tylko znaleźć nie mogę!!
hwao
19.12.2003, 22:26:22
mit_mis0
19.12.2003, 23:02:59
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
19.12.2003, 23:13:15
[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
19.12.2003, 23:22:20
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
19.12.2003, 23:24:52
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;
}
?>
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
20.12.2003, 08:18:01
nie, nie musi tak być, tylko jak to poprawić, bo ja się dopiero uczę php...
mit_mis0
20.12.2003, 09:33:45
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
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
20.12.2003, 17:01:14
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
23.12.2003, 20:33:02
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
23.12.2003, 21:13:26
[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
23.12.2003, 21:18:28
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
23.12.2003, 21:23:24
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
24.12.2003, 10:05:28
jako nazwy plików
Cudi
24.12.2003, 11:01:29
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.