Jump to content


ximnes's Content

There have been 3 items by ximnes (Search limited from 28/04/2023)


Ordernar por                Order  

#1021923 PHP, um 'login' ser direcionado para uma página especifica

Posted by ximnes on 23/04/2015, 06:56 in PHP

Eaii

Olha só você tem que fazer uma consulta na tabela vendo o tipo de usuário que o login é.

E terá que adicionar ifs para redirecionar cada usuário.

Tipo esse cód aqui

<?php

$conf = $conPDO->prepare("SELECT COUNT(*) FROM usuarios WHERE login = :login AND senha = :senha");
$conf = $conPDO->execute(
array(
            ':login' => $_POST['login'],
            ':senha' => $_POST['senha']
)
);
$cont = $conf->fetchColumn();

if ( $cont == false ) {
echo "Não foi possível achar o login";
} else {
setcookie ("login", $_POST['login']);
setcookie ("senha", $_POST['senha']);
$contType = $conPDO->prepare("SELECT tipo_usuario FROM usuarios WHERE login = :login AND senha = :senha");
$contType->execute(
array(
            ':login' => $_POST['login'],
            ':senha' => $_POST['senha']
)
);
$rowcontType = $contType->fetchObject();
$row_tipo_usuario = $rowcontType->tipo_usuario;

//agora os ifs pra definir o direcionamento

if($row_tipo_usuario == "admin"){
header("Location: pagAdmin.php");//redirecionamento pra administração
}
if($row_tipo_usuario == "moderador"){
header("Location: pagMod.php");//redirecionamento pra moderação
}
if($row_tipo_usuario == "user"){
header("Location: pagUser.php");//redirecionamento pra usuário
}
}
?> 

Somente um exemplo.


Ah esqueci,

e a cada página fazer uma verificação também com if para ver se o usuário tem acesso à essa página:

ex: pagAdmin.php


<?php
$contType = $conPDO->prepare("SELECT * FROM usuarios WHERE login = :login AND senha = :senha AND tipo_usuario = 'admin'");
$contType->execute(
array(
            ':login' => $_POST['login'],
            ':senha' => $_POST['senha']
)
);
$rowcontType = $contType->fetchObject();
//agora os ifs pra definir o acesso
if($rowcontType == true){
?>
<html>
...
</html>
<?php
} else {
echo "Você não tem acesso á esta pagina";
}
?>



#1021922 Problema Paginação de Noticia

Posted by ximnes on 23/04/2015, 02:59 in PHP

Não tenho certeza meu amigo, porém esta parte aqui não era pra estar fora dos comentários "//"?

 

  1.  
  2. // Defina o n&uacute;mero de colunas que voc&ecirc; deseja exibir:
  3.  
  4. //$colunas = "3";
  5.  
  6. //$colunas = "$qts_colunas";
  7.  
  8. // Agora vamos ao "truque":
  9.  



#1021921 Ajuda com lógica.

Posted by ximnes on 23/04/2015, 01:33 in PHP

Boa madrugada a todos.

Tudo certo?

Olha só rapaziada, estou desenvolvendo o site do meu selo de gravação musical, especializado em RAP.

Estou com o layout pronto, 
Faz tempo que não programo PHP e estou me atualizando para fazer o portal direito. Sem gambiarras como costumava fazer hehe.

A questão é que estou botando no papel todas as idéias e conteúdos para desenvolver de forma organizada.

Então vou explicar melhor as minhas idéias e ficaria feliz se pudessem me dar um suporte, mandando alguns links de certos tutoriais. Eu andei procurando porém mesmo assim tenho minhas dúvidas.

 

Eu estou escrevendo as tabelas do banco de dados e estou pensando em uma forma de integrá-las de forma certa e simples.

As tabelas:

tb_artists

- artist_id (int) 5

- artist_type varchar 15 (aqui será definido se o artista é mc, beatmaker, etc)

- artist_since int 4 (desde que ano o artista faz parte do selo)

- artist_aka varchar 30 (codinome do artista)

- artist_aka_url varchar 30 (tratamento para url amigável ex: Nome do Artista -> nome-do-artista)

- artist_release longtext (release do artista)

- artist_email_login ..

- artist_password_login ...

 

tb_albums

- artist_id

- artist_aka

- artist_aka_url

- album_id (bigint) 255

- album_type (varchar) 20 (que tipo de álbum, se é um EP, uma Beat Tape, um álbum completo etc..)

- album_title (varchar) 40 

- album_title_url

....

 

tb_albums_content

- artist_id

- album_id

- album_track_id (bigint) 255

- album_track_type (varchar) 20 (se é um single, etc)

- album_track_number (número da track do cd)

- album_track_title e track_title_url

- album_track_participation_id, part_aka, part_aka_url

- album_track_producer_id, prod_aka, prod_aka_url

- album_track_link 

....

 

tb_main_content

content_id (bigint) 255

album_id

album_track_id

content_status (int) 1 (1 ativo 0 inativo)

content_highlight (int) 1 ( " )

content_type (se é notícia, novidade etc)

content_date

....

 

as dúvidas começam exatamente assim.

na página do artista quero relacionar as últimas 10 notícias relacionadas a ele, porém na tabela não relaciono o artista, seria necessário por algum campo pra relacionar? existe alguma forma de select que busque o artista em algum campo, sem precisar estar relacionado?

 

alguns produtores do selo não tem albuns próprios, porém produziram certas faixas de algum mc do selo, tem um campo na tb_albums_content que se chama album_track_producer_aka.

usaria um if para ver se o artist_type é artista e faria uma busca na tb_albums_content e não própriamente na tb_albums, porém há produtores que produziram faixas de outros cds, e que também tem cds próprios, e essa coluna(album_track_producer_aka) seria preenchida a cada track com o produtor, isso seria um problema porque listaria 2 vezes. se usasse um if para isso seria mais uma condição e mais uma nova consulta.

na página relacionada a certo produtor, quero buscar um thumb do(s) cd(s) que ele tenha produzido nem que seja uma faixa, porém ele fará a busca no conteúdo das faixas do cd e não propriamente na tb_albums, claro que tem um campo chamado album_id na tb_albums_content, porém teria que resgatar essa ID e fazer uma nova busca na tb_albums.

existe alguma outra forma de fazer essa busca?

 

eu criei um sisteminha aqui que funciona mais fica complicado e tenho certeza que dá para fazer mais simples e funcional.

 

segue o código.

 

Página artistMain.php onde se lista os artistas:

<?php $conPDO = new PDO($dsn_db, $user_db,$pass_db); ?>
<a href="<?php echo $PHP_SELF; ?>">principal</a> > artistas<br>
<ul id"" class="">
    <?php
	$sqlArtists = 'SELECT * FROM tb_artists ORDER BY artist_aka ASC LIMIT 10';
	$sqlArtistsPDO = $conPDO->query($sqlArtists);
		while($rowArtistsPDO = $sqlArtistsPDO->fetchObject()) {
			echo "<li>";
    		echo "<h3><a href=\"". $PHP_SELF ."/artist/" . $rowArtistsPDO->artist_aka_url . "/\">" . $rowArtistsPDO->artist_aka . "</a></h3>";
			echo "</li>";
		}
$conPDO = null;
?>
</ul>

pag artistContent.php

<?php $conPDO = new PDO($dsn_db, $user_db,$pass_db); ?>
<?php 
	$sqlArtistCount = $conPDO->prepare('SELECT COUNT(*) FROM tb_artists WHERE artist_aka_url = :artistAKA');
	$sqlArtistCount->execute(
   				array(
				':artistAKA' => $_REQUEST['aka_url']
				) 
					  );
	$resArtistCount = $sqlArtistCount->fetchColumn();
	if($resArtistCount == false){
					echo "Não foi possível abrir a página solicitada";
			} else {
	echo "<a href=\"". $PHP_SELF ."\"/>principal</a> > <a href=\"". $PHP_SELF ."/artists/\">artistas</a> > ";
	$sqlArtistAKA = $conPDO->prepare('SELECT artist_aka , artist_aka_url , artist_type FROM tb_artists WHERE artist_aka_url = :artistAKA');
	$sqlArtistAKA->execute(
   				array(
				':artistAKA' => $_REQUEST['aka_url']
				)
					  );
	$sqlArtistAKA = $sqlArtistAKA->fetchObject();
	$artistType = $sqlArtistAKA->artist_type;
	echo "<a href=\"". $PHP_SELF ."/artist/" . $sqlArtistAKA->artist_aka_url . "/\">" . $sqlArtistAKA->artist_aka . "</a>";
	echo " > catálogo<br>";
	?>
    <?php 
	if($artistType == "Producer"){ 
	$sqlProducerAlbumCount = $conPDO->prepare('SELECT COUNT(*) FROM tb_albums WHERE artist_aka_url = :artistAKA');
	$sqlProducerAlbumCount->execute(
   				array(
				':artistAKA' => $_REQUEST['aka_url']
				) 
					  );
	$resProducerAlbumCount = $sqlProducerAlbumCount->fetchColumn();
	if($resProducerAlbumCount == false){
	?>
    Faixas Produzidas:<br>
   	<table width="595" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td width="91">Artista</td>
    <td width="114">Título</td>
    <td width="85">Música</td>
    <td width="85">Lançado em</td>
    <td width="87">Selo</td>
    <td width="119">Registro</td>
  </tr>
    <?php
   $sqlCatalogProducerPDO = $conPDO->prepare('SELECT * FROM tb_albums_content WHERE album_track_producer_aka_url = :artistAKA ORDER BY album_id DESC LIMIT 10');
   /*$sqlCatalogArtistPDO = $conPDO->prepare('SELECT * FROM tb_albums, tb_albums_content
LEFT OUTER JOIN tb_albums_content ON (tb_albums.artist_aka = tb_albums_content.album_track_producer)');*/
   $sqlCatalogProducerPDO->execute(
   					 array(
					 ':artistAKA' => $_REQUEST['aka_url']						   
						   )
						   );
						   
while($rowCatalogProducerPDO = $sqlCatalogProducerPDO->fetchObject()) {
    echo "<tr>";
    echo "<td>" . $rowCatalogProducerPDO->artist_aka . "</td>";
    echo "<td><a href=\"". $PHP_SELF ."/artist/" . $rowCatalogProducerPDO->artist_aka_url . "/release/" . $rowCatalogProducerPDO->album_id . "/" . $rowCatalogProducerPDO->album_title_url . "/\">" . $rowCatalogProducerPDO->album_title . "</a></td>";
    echo "<td><a href=\"". $PHP_SELF ."/artist/" . $rowCatalogProducerPDO->artist_aka_url . "/release/" . $rowCatalogProducerPDO->album_id . "/" . $rowCatalogProducerPDO->album_title_url . "/" . $rowCatalogProducerPDO->album_track_title_url . "/\">" . $rowCatalogProducerPDO->album_track_title . "</td>";
    echo "<td>" . $rowCatalogProducerPDO->album_track_producer_aka . "</td>";
    echo "<td></td>";
    echo "<td></td>";
    echo "</tr>";
}
	?>
</table>    
<?php
	} else {
	?>
    Álbums:<br>
   	<table width="595" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td width="91">Artista</td>
    <td width="114">Título</td>
    <td width="85">Tipo</td>
    <td width="85">Lançado em</td>
    <td width="87">Selo</td>
    <td width="119">Registro</td>
  </tr>
    <?php
   $sqlCatalogProducerPDO = $conPDO->prepare('SELECT * FROM tb_albums WHERE artist_aka_url = :artistAKA ORDER BY album_id DESC LIMIT 10');
   /*$sqlCatalogArtistPDO = $conPDO->prepare('SELECT * FROM tb_albums, tb_albums_content
LEFT OUTER JOIN tb_albums_content ON (tb_albums.artist_aka = tb_albums_content.album_track_producer)');*/
   $sqlCatalogProducerPDO->execute(
   					 array(
					 ':artistAKA' => $_REQUEST['aka_url']						   
						   )
						   );
						   
while($rowCatalogProducerPDO = $sqlCatalogProducerPDO->fetchObject()) {
    echo "<tr>";
    echo "<td>" . $rowCatalogProducerPDO->artist_aka . "</td>";
    echo "<td><a href=\"". $PHP_SELF ."/artist/" . $rowCatalogProducerPDO->artist_aka_url . "/release/" . $rowCatalogProducerPDO->album_id . "/" . $rowCatalogProducerPDO->album_title_url . "/\">" . $rowCatalogProducerPDO->album_title . "</a></td>";
    echo "<td>" . $rowCatalogProducerPDO->album_type . "</td>";
    echo "<td>" . $rowCatalogProducerPDO->album_date . "</td>";
    echo "<td>" . $rowCatalogProducerPDO->album_label . "</td>";
    echo "<td>" . $rowCatalogProducerPDO->album_registry . "</td>";
    echo "</tr>";
	?>
<?php
	}
	?>
        </table>

    Faixas Produzidas:<br>
   	<table width="595" border="1" cellspacing="0" cellpadding="0">
  <tr align="center">
    <td width="91">Artista</td>
    <td width="114">Título</td>
    <td width="85">Música</td>
  </tr>
    <?php
   $sqlCatalogProducerPDO = $conPDO->prepare('SELECT * FROM tb_albums_content WHERE album_track_producer_aka_url = :artistAKA ORDER BY album_id DESC LIMIT 10');
   /*$sqlCatalogArtistPDO = $conPDO->prepare('SELECT * FROM tb_albums, tb_albums_content
LEFT OUTER JOIN tb_albums_content ON (tb_albums.artist_aka = tb_albums_content.album_track_producer)');*/
   $sqlCatalogProducerPDO->execute(
   					 array(
					 ':artistAKA' => $_REQUEST['aka_url']						   
						   )
						   );
						   
while($rowCatalogProducerPDO = $sqlCatalogProducerPDO->fetchObject()) {
    echo "<tr>";
    echo "<td>" . $rowCatalogProducerPDO->artist_aka . "</td>";
    echo "<td><a href=\"". $PHP_SELF ."/artist/" . $rowCatalogProducerPDO->artist_aka_url . "/release/" . $rowCatalogProducerPDO->album_id . "/" . $rowCatalogProducerPDO->album_title_url . "/\">" . $rowCatalogProducerPDO->album_title . "</a></td>";
	if($rowCatalogProducerPDO->album_track_participation_aka == null){
    echo "<td><a href=\"". $PHP_SELF ."/artist/" . $rowCatalogProducerPDO->artist_aka_url . "/release/" . $rowCatalogProducerPDO->album_id . "/" . $rowCatalogProducerPDO->album_title_url . "/" . $rowCatalogProducerPDO->album_track_title_url . "/\">" . $rowCatalogProducerPDO->album_track_title . "</td>";
	} else {
	echo "<td><a href=\"". $PHP_SELF ."/artist/" . $rowCatalogProducerPDO->artist_aka_url . "/release/" . $rowCatalogProducerPDO->album_id . "/" . $rowCatalogProducerPDO->album_title_url . "/" . $rowCatalogProducerPDO->album_track_title_url . "/\">" . $rowCatalogProducerPDO->album_track_title . " (Part. " . $rowCatalogProducerPDO->album_track_participation_aka . ")</td>";
}
    echo "</tr>";
}
	?>
</table> 
        
<?php
}
} else { ?>
    Álbums:<br>
   	<table width="595" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td width="91">Artista</td>
    <td width="114">Título</td>
    <td width="85">Tipo</td>
    <td width="85">Lançado em</td>
    <td width="87">Selo</td>
    <td width="119">Registro</td>
  </tr>
    <?php
   $sqlCatalogArtistPDO = $conPDO->prepare('SELECT * FROM tb_albums WHERE artist_aka_url = :artistAKA ORDER BY album_id DESC LIMIT 10');
   /*$sqlCatalogArtistPDO = $conPDO->prepare('SELECT * FROM tb_albums, tb_albums_content
LEFT OUTER JOIN tb_albums_content ON (tb_albums.artist_aka = tb_albums_content.album_track_producer)');*/
   $sqlCatalogArtistPDO->execute(
   					 array(
					 ':artistAKA' => $_REQUEST['aka_url']						   
						   )
						   );
						   
while($rowCatalogArtistPDO = $sqlCatalogArtistPDO->fetchObject()) {
    echo "<tr>";
    echo "<td>" . $rowCatalogArtistPDO->artist_aka . "</td>";
    echo "<td><a href=\"". $PHP_SELF ."/artist/" . $rowCatalogArtistPDO->artist_aka_url . "/release/" . $rowCatalogArtistPDO->album_id . "/" . $rowCatalogArtistPDO->album_title_url . "/\">" . $rowCatalogArtistPDO->album_title . "</a></td>";
    echo "<td>" . $rowCatalogArtistPDO->album_type . "</td>";
    echo "<td>" . $rowCatalogArtistPDO->album_date . "</td>";
    echo "<td>" . $rowCatalogArtistPDO->album_label . "</td>";
    echo "<td>" . $rowCatalogArtistPDO->album_registry . "</td>";
    echo "</tr>";
	?>
<?php
	}
	?>
        </table>
        <?php
}
}
?>

<?php
$conPDO = null;
?>

Ainda é um "Beta" pois estou tendo idéias e vendo formas de implementar.

Sei muito, muito pouco MESMO de OOP. 

Acham que precisaria saber disso pra conseguir desenvolver esse portal direito?

Algum artigo? tutorial? apostila?

Eu li bastante já, porém entendo somente as que eu vejo.

Não consigo desenvolver uma Classe nem uma Função realmente funcional para resolver meus problemas.

 

Desculpem o post gigante.

Agradeço a quem ler, e mais ainda a quem puder dar uns pitacos.





IPB Skin By Virteq