Potrzebuję skrypt logowania

0

Witam jestem początkującym programistą. Zrobiłem stronę internetową z rejestracją lecz nie potrafię zrobić logowania. Bardzo bym prosił o podesłanie, a najlepiej zamieszczenie na mojej stronie takiego skryptu zależy mi również na opcji zalogowano jako admin lub user.Będzie to polegało na tym, że w bazie danych mam utworzoną tabele upr i kiedy wpiszę wartość 1 przy danym użytkowniku to admin a 0 to user.Chciałbym aby tylko admin mógł zmieniać te wartości na panelu admina.Bardzo proszę o pomoc.


<?php
echo "
<!DOCTYPE html>
<html lang=\"pl\">
  <head>
    <title>Muzyka</title>
    <meta charset=\"UTF-8\">
<meta http-equiv=\"Content-Type\" content=\"text/html;\" />
<meta name=\"Description\" content=\"Tu wpisz opis zawartości strony\" />
<meta name=\"Keywords\" content=\"Tu wpisz wyrazy kluczowe rozdzielone przecinkami\" />
<link rel=\"stylesheet\" type=\"text/css\" href=\"style1.css\">
  </head>
  <body>
  <div id=\"top\">
  </div>
<div id=\"logowanie\">";

  
TUTAJ LOGOWANIETUTAJ LOGOWANIETUTAJ LOGOWANIETUTAJ LOGOWANIETUTAJ LOGOWANIE



echo "
  </div>
<div id=\"menu\">
<a href=\"home.php?pg=home\" class=\"home\">&nbsp;</a>

<a href=\"home.php?pg=users\" class=\"omnie\">&nbsp;</a>
<a href=\"home.php?pg=wpisy\" class=\"ksg\">&nbsp;</a>";

echo "<a href=\"home.php?pg=rejestracja\" class=\"reje\">&nbsp;</a>";

echo "
</div>
<div id=\"albumy\">
</div>
<div id=\"content\">
<g style=\"margin: 10px;\" >";



if(@$_GET['pg']=='rejestracja')
{
    
    echo '
<center><h1>Zarejestruj sie</h1></center><br>
 <hr size=2>
        <center><form action="" method="post">
            <label for="login">Login</label>
            <input type="text" name="login" required>
            <br>
            <label for="password">Hasło</label>
            <input type="password" name="password" required>
            <br>
            <label for="password2">Powtórz hasło</label>
            <input type="password" name="password2" required>
            <br>
            <label for="email">E-mail</label>
            <input type="email" name="email" required>
            <br>
 <label for="imie">Imie</label>
            <input type="imie" name="imie" required>
            <br>
 <label for="nazwisko">Nazwisko</label>
            <input type="nazwisko" name="nazwisko" required>
            <br>
            <input type="submit" name="wyslano" value="Załóż konto"/>
        </form><center>
    ';

 echo "<center>";

$db = new PDO('mysql:host=localhost;dbname=music', 'root', '', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")) or die();
         
if(isset($_POST['wyslano'])){ 
    
    $login = trim(@$_POST['login']);
    $password = trim(@$_POST['password']);
    $password2 = trim(@$_POST['password2']);
    $email = trim(@$_POST['email']);
    $imie = trim(@$_POST['imie']);
    $nazwisko = trim(@$_POST['nazwisko']);
    
     
    $errors = NULL; 
             
    
    if(strlen($login)<3) $errors .= 'Login musi zawierać co najmniej 3 znaki<br>';
    if(strlen($password)<6) $errors .= 'Hasło musi zawierać co najmniej 6 znaków<br>';
    if($password!==$password2) $errors .= 'Hasła nie są takie same<br>';
    if(!preg_match('/\@/', $email) || strlen($email)<5) $errors .= 'Podany adres e-mail jest nieprawidłowy<br>';
    if(strlen($imie)<2) $errors .= 'Wpisz imie<br>';
    if(strlen($nazwisko)<2) $errors .= 'Wpisz nazwisko<br>';
             
    
    $stmt = $db->prepare("SELECT COUNT(id) FROM users WHERE login=:login");
    $stmt->bindValue(":login", $login, PDO::PARAM_STR);
    $stmt->execute();
    $row = $stmt->fetch();
    if($row[0]>0) $errors .= 'Konto o takim loginie już istnieje<br>';
             
    
    $stmt2 = $db->prepare("SELECT COUNT(id) FROM users WHERE email=:email");
    $stmt2->bindValue(":email", $email, PDO::PARAM_STR);
    $stmt2->execute();
    $row2 = $stmt2->fetch();
    if($row2[0]>0) $errors .= 'Konto o takim adresie e-mail już istnieje<br>';
             
    if(empty($errors)){ 
        $password = sha1($password); 
        $dodaj = $db->prepare("INSERT INTO users VALUES(null, :login, :password, :email, :imie, :nazwisko, null)");
        $dodaj->bindValue(":login", $login, PDO::PARAM_STR);
        $dodaj->bindValue(":password", $password, PDO::PARAM_STR);
        $dodaj->bindValue(":email", $email, PDO::PARAM_STR);
        $dodaj->bindValue(":imie", $imie, PDO::PARAM_STR);
        $dodaj->bindValue(":nazwisko", $nazwisko, PDO::PARAM_STR);
        $dodaj->execute();
        echo "Zarejestrowałeś się. Możesz się teraz <a href=\"login.php\">zalogować</a>";
    }
    else{
        echo '<div style="color:red">'.$errors.'</div>';
       
    }
}
}
 echo "<center>";









if(@$_GET['pg']=='home' & @$_GET['']=='' )
{
echo "dadsdasdsddsasa";
}

if(@$_GET['pg']=='zarejestrowano')
{
echo "



 <center><h1>Zarejestrowano</h1></center><br>
 <hr size=1>

 ";
}

   
 if(@$_GET['pg']=='wpisy')
{     



      if(isSet($_POST['osoba']) && isSet($_POST['wpis'])){ 
        $osoba = nl2br(htmlspecialchars ($_POST['osoba'])); 
        $wpis = nl2br(htmlspecialchars ($_POST['wpis'])); 
      } 
      else{ 
        $osoba = ''; 
        $wpis = ''; 
      } 

      if ($osoba && $wpis) { 

         
        $ksiega[0] = "<dl><dt>".$wpis."</dt><dd><b>".$osoba.",</b> <i>". 
                      date("d.m.Y")."</i></dd></dl>\r\n"; 

        if (file_exists("ksiegagosci.txt")) { 
          $i = 1; 
          $plik = fopen ("ksiegagosci.txt", "r+"); 
          flock ($plik, 2); 
          while (!(feof($plik))) { 
            $ksiega[$i++] = fgets ($plik, 2048); 
          } 
          fseek ($plik, 0);          
          for ($j=0; $j<$i; $j++) {  
            fputs ($plik, "$ksiega[$j]"); 
          } 
          flock ($plik, 3); 
          fclose ($plik); 
        } else {                     
          $plik = fopen ("ksiegagosci.txt", "w+"); 
          flock ($plik, 2); 
          fputs ($plik, "$ksiega[0]"); 
          flock ($plik, 3); 
          fclose ($plik); 
        } 
      }



if(@$_SESSION['admin']=='tak' && @$_GET['pg']=="wpisy")
        {  
echo "<a href=\"home.php?pg=usun\" class=\"usun\" >Usuń</a>";
       }
      if (file_exists("ksiegagosci.txt")) {  
        $plik = fopen ("ksiegagosci.txt", "r"); 
        while (!(feof($plik))) { 
          print (fgets ($plik, 2048)); 
        } 
        print "<hr />"; 
      } 
     
   echo "
    <form method=\"post\" action=\"home.php?pg=wpisy\"><div> 
      <table> 
        <tr><td>Osoba:</td><td><input type=\"text\" name=\"osoba\" /></td></tr> 
        <tr><td>Wpis:</td><td> 
           <textarea name=\"wpis\" cols=\"45\" rows=\"4\"></textarea> 
        </td></tr> 
      </table> 
      <input type=\"submit\" value=\"Wyślij\" /> 
    </div></form>";

}

if(@$_GET['pg']=='usun')
    {
    
  echo "<br>";  
unlink('ksiegagosci.txt');

     
    }

if(@$_GET['pg']=='users')
{

$baza= mysql_connect("localhost","root","", "users") or die('Brak po?czenia z serwerem MySQL'); 
$db = mysql_select_db('music', $baza) or die('Nie mog? po?czy? si? z baz? danych');
$wypisz = mysql_query("SELECT `id`,`login`, `imie`, `nazwisko` FROM `users`");
echo "<table align=center>
<tr><td>ID</td><td>Imie</td><td>Nazwisko</td><td>Usun</td>";
while ($row = mysql_fetch_array($wypisz)) {
  $id = @$row['id'];
  @$imie = @$row['imie'];
  @$nazwisko = @$row['nazwisko'];


echo "<tr>
<td>".$id."</td><td>".$imie."</td><td>".$nazwisko."</td><td><a href=home.php?pg=delete&id=".$id.">Usun</a></td></tr>";
}
echo "</table>";
     mysql_close($baza); 
 }
 

if(@$_GET['pg']=="delete");
{
$baza= mysql_connect("localhost","root","", "users") or die('Brak po?czenia z serwerem MySQL'); 
$db = mysql_select_db('music', $baza) or die('Nie mog? po?czy? si? z baz? danych');
@$usun = mysql_query("DELETE FROM `music`.`users` WHERE `users`.`id` = ".$_GET['id']."");
mysql_close($baza); 
}







echo"
</g>
</div>
<div id=\"stopka\">
stopka
</div>  
  </body>
</html>";





?>










1

A z czym konkretnie masz problem?
Ifów nie umiesz stawiać czy wybrać opcji z bazy danych? Czy zapisać danych do bazy? Czy co?

Bo na gotowe chyba nie liczysz?

edit: Tryb PHP możesz zamykać, zamiast łamać kod HTML co chwila backslashem po prostu zamknij tryb PHP:

<?php
costam();
if (1==2) costam2();
?>
<html>
<head>
....
<body>
<?php
if ($costam===666) {
?>
costam jest 666 wiec tabelka:
<table>...</table>
<?php
}
?>
</body>
</html>
0

Problem jest z sesją oraz z wybieraniem opcji z bazy.

Mam skrypt logowania i wszystko fajnie działa tylko jest problem z formularzem do logowania chcę aby po zalogowaniu zamiast formularza wyświetlały się jakieś linki.

<?php
function form(){
if(!isset($_SESSION['logged'])){   /*<--- Próbowałem w ten sposób ale nie działa  */
echo '
        <form action="home.php?pg=home" method="post">
            <label for="login">Login</label>
            <input type="text" name="login" required>
            
            <label for="password">Hasło</label>
            <input type="password" name="password" required>
            
            <input type="submit" name="wyslano" value="Zaloguj się"/>
        </form>';
}
}
$db = new PDO('mysql:host=localhost;dbname=music', 'root', '', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")) or die();
         
if(isset($_POST['wyslano'])){ 
    
    $login = trim($_POST['login']);
    $password = trim($_POST['password']);
 
   
    $password = sha1($password);
 
 
    
    $stmt = $db->prepare("SELECT * FROM users WHERE login=:login AND password=:password");
    $stmt->bindValue(":login", $login, PDO::PARAM_STR);
    $stmt->bindValue(":password", $password, PDO::PARAM_STR);
    $stmt->execute();
    $row = $stmt->fetch(PDO::FETCH_ASSOC);
    if($stmt->rowCount()!=0){
        echo "Zalogowałeś się!";
   header('Location: home.php?pg=home');

session_start();
        $_SESSION['logged'] = 1;
        $_SESSION['user_id'] = $row['imie'];
 
    }
    else{
        echo '<div style="color:red">Login i/lub hasło są nieprawidłowe</div>';
        form();
    }
}
else form();
?>

<?php
session_start();
if(isset($_SESSION['logged'])){
    echo "Cześć: ".$_SESSION['user_id'];

echo "  <a href=\"home.php?pg=wyloguj\">Wyloguj</a>";
}


?>
<?php
 if (@$_GET['pg']=='wyloguj')
                                       {
                                      
session_destroy();
$_SESSION['logged'] = false;
$_SESSION['user_id'] = -1;
 header('Location: home.php?pg=home');

Okej jakoś się uporałem z tą sesją :D

Chciałbym zrobić system uprawnień admin=1 i user=0 mam utworzoną tabele w bazie danych i teraz nie wiem jak zrobić żeby po ustawieniu 1 przy danym użytkowniku był on adminem :D Proszę o pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1