Kolorowy tekst na stronie www


(Darom82) #1

Chciałem na mojej stronce zrobić kolorowe napisy typu "Zostałeś wylogowany" albo "Nie jesteś zalogowany" i zrobiłem to w ten sposób:

Zostałeś wylogowany.

albo

Nie jesteś zalogowany.

Natomiast w pliku wygląda to tak :

<?php

session_start();

if(!isset($_SESSION['login'])){

   echo '

Nie jesteś zalogowany.'; }else{ unset($_SESSION['login']); echo '

Zostałeś wylogowany.'; } ?>

Moim problemem jest to, że tekst na stronie się nie koloruje tylko jest bez koloru. Dlaczego i co tu jest nie tak ?

Może ktoś mi pomóc w tym ?


(scripter1) #2

Poprawka, nie przyjrzałem się uważnie tym urywkom.

Pominięcie znaczników

oraz może być mylące i różne przeglądarki mogą różnie interpretować otrzymany kod, choć na mojej przeglądarce to działa...

Polecam korzystać z validatora: http://validator.w3.org/


(Damgora) #3

do

do

używaj Firebuga albo podobnego narzędzia do rozwiązywania problemów ze stylami (ale na podstawie tych fragmentów kodu (poza powyższym) nie widzę błędów)

ps. zignoruj scripter1'a, nie wiem o co mu chodzi :?


(kubut) #4

To co nam pokazałeś, to nie ten sam plik który masz odpowiedzialny za wylogowanie na serwerze. Albo zdublowałeś funkcję wylogowania i odwołujesz się do niezmienionej, albo po prostu zapomniałeś podmienić pliku na serwerze. Specjalnie się zarejestrowałem na Twojej stronie żeby to zobaczyć-przy wylogowaniu wyświetla się napis z wykrzyknikiem, w kodzie który nam dałeś ten napis ma na końcu kropkę.


(Darom82) #5

kubut masz racje. Znalazłem te funkcje odpowiedzialne za wyświetlanie tego napisu z wykrzyknikiem w tym pliku:

users.php

<?php

defined('IN_APP') or die();


function login_form () {

?>

Login: Hasło:
<?php } function registration_form ($validation_errors = array()) { ?> <?php echo isset($validation_errors[0]) ? '' . $validation_errors[0] . '' : ''; ?>

Nazwa użytkownika:
' . $validation_errors['nazwa'] . '' : ''; ?> Adres e-mail: <?php echo isset($validation_errors['mail']) ? '' . $validation_errors['mail'] . '' : ''; ?> Hasło: <?php echo isset($validation_errors['haslo']) ? '' . $validation_errors['haslo'] . '' : ''; ?> Numer Gadu-Gadu: <?php echo isset($validation_errors['gg']) ? '' . $validation_errors['gg'] . '' : ''; ?> Skąd: <?php echo isset($validation_errors['skad']) ? '' . $validation_errors['skad'] . '' : ''; ?> <?php } switch ($page) { case 'register': if (is_logged_in()) { redir('/'); } else if ($_SERVER['REQUEST_METHOD'] === 'POST') { $e = array(); if(empty($_POST['nazwa']) or empty($_POST['haslo']) or empty($_POST['mail']) or empty($_POST['gg']) or empty($_POST['skad'])) { $e[]='

Niewypełniłeś wszystkich pól formularza.'; } else { $dir = md5($_POST['nazwa']); if(file_exists("db/$dir.php")){ $e['nazwa'] = '

Podana nazwa użytkownika jest już zajęta.'; }elseif(strlen($_POST['nazwa'])<3 or strlen($_POST['nazwa'])>20){ $e['nazwa']='

Długość nazwy użytkownika od 3 do 20 znaków.'; } if(!preg_match("/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$/", $_POST['mail'])){ $e['mail']='

Adres e-mail jest niepoprawny.'; } if(empty($_POST['haslo'])){ $e['haslo']='

Hasło nie może być puste.'; }elseif(strlen($_POST['haslo'])<6 or strlen($_POST['haslo'])>100){ $e['haslo']='

Długość hasła musi mieć od 6 do 100 znaków.'; } if(!is_numeric($_POST['gg'])){ $e['gg']='

Numer Gadu-Gadu jest niepoprawny.'; } } if (empty($e)) { $nazwa = $_POST['nazwa']; $haslo = md5($_POST['haslo']); $mail = $_POST['mail']; $gg = intval($_POST['gg']); $skad = $_POST['skad']; $czas = time(); if (!get_magic_quotes_gpc()) { $nazwa = addslashes($_POST['nazwa']); $mail = addslashes($mail); $skad = addslashes($skad); } file_put_contents("db/$dir.php", "<?php \$user['$nazwa']=array('password'=>'$haslo','mail'=>'$mail','gg'=>'$gg','skad'=>'$skad','registration_date'=>$czas); ?>"); $_SESSION['login']=$_POST['nazwa']; ?>

Zostałeś zarejestrowany i automatycznie zalogowany jako <?php echo $_POST['nazwa']; ?><?php } else { registration_form($e); } } else { registration_form(); } break; case 'login': if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (!empty($_POST['nazwa']) and !empty($_POST['haslo'])) { $login = $_POST['nazwa']; $user_file = 'db/' . md5($login) . '.php'; if (file_exists($user_file)) { include $user_file; } if (!isset($user[$login]) or $user[$login]['password'] != md5($_POST['haslo'])) { ?> Użytkownik o podanym loginie nie istnieje lub podano niepoprawne hasło<?php login_form(); } else { $_SESSION['login'] = $login; ?> Zalogowany jako <?php echo $login; ?><?php } } else { ?> Brak loginu lub hasła!<?php login_form(); } } else { login_form(); } break; case 'logout': ?><?php if (is_logged_in()) { unset($_SESSION['login']); ?> Zostałeś wylogowany!<?php } break; case 'users': $user = array(); $user_files = glob('db/*.php'); if (!is_array($user_files)) { $user_files = array(); } foreach($user_files as $user_file) { include($user_file); } function cmp ($a, $b) { return $a['registration_date'] - $b['registration_date']; } uasort($user, 'cmp'); echo "

| Lp. | Nazwa Użytkownika | Email | gg | Miejscowość |
| $licznik | $name | \"\" | "; if($data['gg']){ echo "\"\" | "; } if($data['skad']){ echo "$data[skad]"; } echo " |\n"; break; } ?[/code] Dokładnie to sa te linijki kodu:
[code]case 'logout': ??php if (is_logged_in()) { unset($_SESSION['login']); ? Zostałeś wylogowany!

Teraz pytanie jak to poprawić, żeby było dobrze ? tzn chodzi mi o to, żeby w dwoch plikach nie było tego samego ale żeby mi to działało dobrze. Możecie mi w tym pomóc ?


(kubut) #6

Nie rozumiem problemu? W 1 poście miałeś dobre ostylowanie, wystarczy przekopiować. Nie znam genezy tego "niepotrzebnego" pliku z wylogowaniem-jeśli rzeczywiście z niego nie korzystasz to go usuń i po sprawie :wink: Musisz popatrzeć z których funkcji, w którym pliku korzystasz :slight_smile:


(Darom82) #7

kubut moim problemem jest to, że we wszystkich plikach jakie tu pokazałem czyli w logaut.php i w users.pho znajduje się prawie to samo. W Users.php jest tylko inaczej to ujęte za pomocą case.

Natomiast jeśli usune plik logaut.php to wtedy nie będzie mi działać wylogowanie ponieważ w pliku users.php jest coś takiego:

case 'logout':

Więc nie wiem jak sobie z tym poradzić :frowning: Bo to nie jest tylko kwestia samego ostylowania napisu. Pewnie coś tam w kodzie trzeba przerobić. Może mi ktoś pomóc w tym ?


(kubut) #8

Nie mogę znaleźć (brakuje na forum kolorowania składni) gdzie definiujesz wartość zmiennej $page, ale wątpię, żeby była ona uzależniona od pliku logaut.php czy jakiegokolwiek innego. Tak więc, zmienna kontrolująca switch nie ma nic do pliku.

Temat jest o kolorowaniu napisu, w pierwszym pliku (którego nie używasz) masz ostylowanie, w drugim (używanym) nie masz ostylowania, a twierdzisz, ze pliki są prawie takie same :wink: Dodaj do pliku z case ostylowanie i będzie dobrze, a jak nie to wtedy będziemy kombinować dalej :stuck_out_tongue: