Tutorial criar uma rede social com PHP e MySql #3 – Página das publicações (cont…)




Parte 4: https://www.youtube.com/watch?v=-ToOYGUZQmY Parte 2: https://www.youtube.com/watch?v=McYj8q6z6EE * Descarrega os ficheiros deste tutorial: …

Original source


15 responses to “Tutorial criar uma rede social com PHP e MySql #3 – Página das publicações (cont…)”

  1. Alguem sabe me dizer como faz para aparecerem as mensagens na página principal? Eu só consigo ver as mensagens quando entro no meu perfil. Vou pôr o código index e o header aqui para verem oq eu errei.

    Index.php
    <?php
    include("header.php");
    $pubs = mysql_query("SELECT
    T.id,
    T.user,
    T.texto,
    T.imagem,
    T.data,
    U.de,
    U.para,
    U.aceite
    FROM pubs AS T,
    amizades AS
    U WHERE T.postador = U.de AND U.para
    = '$login_cookie' AND U.aceite='sim'
    OR T.postador = U.para AND U.de =
    '$login_cookie'
    AND U.aceite='sim' order by T.id DESC;");

    if (isset($_POST['publish'])) {
    if ($_FILES["file"]["error"] > 0) {
    $texto = $_POST["texto"];
    $hoje = date("Y-m-d");

    if ($texto == "") {
    echo "<h3>Tens de escrever alguma coisa antes de publicar!</h3>";
    }else{
    $query = "INSERT INTO pubs (postador,texto,data) VALUES ('$login_cookie','$texto','$hoje')";
    $data = mysql_query($query) or die();
    if ($data) {
    header("Location: ./");
    }else{
    echo "Alguma coisa não correu lá muito bem… Tenta outra vez mais tarde";
    }
    }
    }else{
    $n = rand(0, 1000000);
    $img = $n.$_FILES["file"]["name"];

    move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$img);

    $texto = $_POST['texto'];
    $hoje = date("Y-m-d");

    if ($texto == "") {
    echo "<h3>Tens de escrever alguma coisa antes de publicar!</h3>";
    }else{
    $query = "INSERT INTO pubs (postador,texto,imagem,data) VALUES ('$login_cookie','$texto','$img','$hoje')";
    $data = mysql_query($query) or die();
    if ($data) {
    header("Location: ./");
    }else{
    echo "Alguma coisa não correu lá muito bem… Tenta outra vez mais tarde";
    }
    }
    }
    }

    if (isset($_GET["love"])) {
    love();
    }

    function love() {
    $login_cookie = $_COOKIE['login'];
    $publicacaoid = $_GET['love'];
    $data = date("Y/m/d");

    $post = mysql_query("SELECT * FROM pubs WHERE id='$publicacaoid'");
    $postinfo = @mysql_fetch_assoc($post);
    $userinfo = $postinfo['postador'];

    $ins = "INSERT INTO loves (`postador`,`pub`,`date`) VALUES ('$login_cookie','$publicacaoid','$data')";
    $conf = mysql_query($ins) or die(mysql_error());
    if ($conf) {
    $not = mysql_query("INSERT INTO notificacoes (`postadorde`,`postadorpara`,`tipo`,`post`,`data`) VALUES ('$login_cookie','$userinfo','1','$publicacaoid','$data')");
    header("Location: index.php#".$publicacaoid);
    }else{
    echo "<h3>Erro</h3> ".mysql_error();
    }
    }

    if (isset($_GET["unlove"])) {
    unlove();
    }

    function unlove() {
    $login_cookie = $_COOKIE['login'];
    $publicacaoid = $_GET['unlove'];
    $data = date("Y/m/d");

    $del = "DELETE FROM loves WHERE `postador`='$login_cookie' AND `pub`='$publicacaoid'";
    $conf = mysql_query($del) or die(mysql_error());
    if ($conf) {
    header("Location: index.php#".$publicacaoid);
    }else{
    echo "<h3>Erro</h3> ".mysql_error();
    }
    }
    ?>
    <html>
    <header>
    <style type="text/css">
    div#publish{width: 400px; height: 210px; display: block; margin: auto; border: none; border-radius: 5px; background: #FFF; box-shadow: 0 0 6px #A1A1A1; margin-top: 30px;}
    div#publish textarea{width: 365px; height: 150px; display: block; margin: auto; border-radius: 5px; padding-left: 5px; padding-top: 5px; border-width: 1px; border-color: #A1A1A1;}
    div#publish img{margin-top: 0px; margin-left: 10px; width: 40px; cursor: pointer;}
    div#publish input[type="submit"]{width: 70px; height: 25px; border-radius: 3px; float: right; margin-right: 15px; border: none; margin-top: 5px; background: #4169E1; color: #FFF; cursor: pointer;}
    div#publish input[type="submit"]:hover{background: #001F3F;}

    div.pub{width: 400px; min-height: 70px; max-height: 1000px; display: block; margin: auto; border: none; border-radius: 5px; background-color: #FFF; box-shadow: 0 0 6px #A1A1A1; margin-top: 30px;}
    div.pub a{color: #666; text-decoration: none;}
    div.pub a:hover{color: #111; text-decoration: none;}
    div.pub p{margin-left: 10px; content: #666; padding-top: 10px;}
    div.pub span{display: block; margin: auto; width: 380px; margin-top: 10px;}
    div.pub img{display: block; margin: auto; width: 100%; margin-top: 10px; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px;}

    div#love{width: 400px; height: 30px; display: block; margin: auto; border: none; border-radius: 5px; background: #007fff; margin-top: 5px;}
    div#love p{color: #FFF; font-size: 12px; padding-top: 5px; padding-left: 5px;}
    div#love a{color: #FFF; font-size: 16px; text-decoration: none;}
    #comentar{
    float: right;
    margin-top: 15px;
    margin-right: 15px;
    cursor: pointer;
    width: 13px;
    }
    </style>
    </header>
    <body>
    <div id="publish">
    <form method="POST" enctype="multipart/form-data">
    <br />
    <textarea placeholder="Escreve uma publicacão nova" name="texto"></textarea>
    <label for="file-input">
    <img src="img/imagegrey.png" title="Inserir uma fotografia" />
    </label>
    <input type="submit" value="Publicar" name="publish" />

    <input type="file" id="file-input" name="file" hidden />
    </form>
    </div>
    <?php
    while ($pub=@mysql_fetch_assoc($pubs)) {
    $email = $pub['postador'];
    $saberr = mysql_query("SELECT * FROM usuarios WHERE email='$email'");
    $saber = @mysql_fetch_assoc($saberr);
    $nome = $saber['nome']." ".$saber['nick'];
    $id = $pub['id'];
    $saberloves = mysql_query("SELECT * FROM loves WHERE pub='$id'");
    $loves = !@mysql_num_rows($saberloves);

    if ($pub['imagem']=="") {
    echo '<div class="pub" id="'.$id.'">
    <a href="comentarios.php?id='.$id.'"><img id="comentar" src="img/chat.png" width="13" ></a>
    <p><a href="profile.php?id='.$saber['id'].'">'.$nome.'</a> – '.$pub["data"].'</p>
    <span>'.$pub['texto'].'</span><br />
    </div>
    <div id="love">';
    $email_check = mysql_query("SELECT postador FROM loves WHERE pub='$id' AND
    postador='$login_cookie'");
    $do_email_check = !@mysql_num_rows($email_check);
    if ($do_email_check >= 1) {
    $loves = $loves – 1;
    echo '<p><a href="index.php?unlove='.$id.'">Gostei</a> | Tu e mais '.$loves.' gostaram disto</p>';
    }else{
    echo '<p><a href="index.php?love='.$id.'">Gostar</a> | '.$loves.' gostaram disto</p>';
    }
    echo '</div>';
    }else{
    echo '<div class="pub" id="'.$id.'">
    <a href="comentarios.php?id='.$id.'"><img id="comentar" src="img/chat.png" width="13" ></a>
    <p><a href="profile.php?id='.$saber['id'].'">'.$nome.'</a> – '.$pub["data"].'</p>
    <span>'.$pub['texto'].'</span>
    <img src="upload/'.$pub["imagem"].'" />
    </div>
    <div id="love">';
    $email_check = mysql_query("SELECT postador FROM loves WHERE pub='$id' AND postador='$login_cookie'");
    $do_email_check = !@mysql_num_rows($email_check);
    if ($do_email_check >= 1) {
    $loves = $loves – 1;
    echo '<p><a href="index.php?unlove='.$id.'">Gostei</a> | Tu e mais '.$loves.' gostaram disto</p>';
    }else{
    echo '<p><a href="index.php?love='.$id.'">Gostar</a> | '.$loves.' gostaram disto</p>';
    }
    echo '</div>';
    }
    }
    ?>
    <br />
    <div id="footer"><p>&copy; União Hopkins,2017 – Todos os direitos reservados</p></div><br />
    <form method="POST" action="Sair.php">
    <input type="submit" value="Sair">
    </form>
    </body>
    </html>

    Header.php
    <?php
    include("db.php");

    $login_cookie = $_COOKIE['login'];
    if (!isset($login_cookie)) {
    header("Location: login.php");
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <link href='https://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet' type='text/css'>
    <style type="text/css">
    *{font-family: 'Montserrat', cursive; margin: 0;}
    body{background: #F6F6F6;}
    div#topo{width: 100%; top: 0; background: #FFF; box-shadow: 0 0 10px #000; height: 80px;}
    div#topo img[name="logo"]{float: left; margin-left: 20px; margin-top: 10px;}
    div#topo img[name="menu"]{float: right; margin-right: 25px; margin-top: -22px;}
    div#topo input[type="text"]{display: block; margin: auto; width: 300px; border: none; border-radius: 3px; background: #F6F6F6; height: 25px; padding-left: 10px; box-shadow: inset 0 0 6px #666;}
    div#topo form{width: 300px; display: block; margin: auto; padding-top: 22px;}
    div#footer{bottom: 0; text-align: center; color: #666;}
    </style>
    </head>
    <body>
    <div id="topo">
    <a href="index.php"><img src="img/logo.png" width="100" name="logo"></a>
    <form method="GET" action="pesquisar.php">
    <input type="text" placeholder="Pesquisa alguém…" name="query" autocomplete="off"><input type="submit" hidden>
    </form>
    <a href="inbox.php"><img src="img/chat.png" width="30" name="menu"></a>
    <a href="notificacoes.php"><img src="img/notificacoes.png" width="35" name="menu"></a>
    <a href="myprofile.php"><img src="img/perfil.png" width="30" name="menu"></a>
    </div>
    </body>
    </html>

  2. Por favor.
    Estou com um pequeno erro, no upload de arquivos. Não no server local, mas quando faço uma publicação com imagem, não aparece no banco de dados como no seu. só é enviada para a pasta upload..
    se puder ajudar agradeço

  3. man, tem como vc me dizer como eu colocaria no perfil do usuario caracteristicas fisicas, Bio e possivelmente buscas serem feitas a partir dessas informações, como uma redesocial deve tambem ter como as pessoas se conhecerem e namorar ou só fazer amizades, quem viu o video do criador do facebook uma das ideias dele era essa

  4. Meu código está exatamente como o seu, porém quando clico no botão de postagem, todo o elemento form some da tela e os dados não vão para o banco.
    Estou usando o WAMP, é necessária alguma configuração? Pois percebi que os meus sites ficam na pasta "www/nomedosite"
    e a pasta htdocs fica em "binapacheapache2.4.23htdocs" e os teus sites ficam no htdocs, então os caminhos são diferentes.
    Parabéns pelo canal!
    Abraço

  5. Cara, primeiramente parabéns, será que você poderia ensinar como fazer um scroll infinito, sem as publicações se repetirem, tentei fazer uma através do jquery, funcionou, mas as publicações vem repetida. Tentei melhorar isto tentando pegar a ultima id da div gerada dinamicamente, mas sem sucesso, se poder me ajudar, ficarei agradecido.

  6. Warning: move_uploaded_file(upload/84472chat.png): failed to open stream: No such file or directory in C:Program Files (x86)EasyPHP-12.1EasyPHP-12.1wwwrede_socialindex.php on line 24

    Warning: move_uploaded_file(): Unable to move 'C:Program Files (x86)EasyPHP-12.1EasyPHP-12.1tmpphp2EB7.tmp' to 'upload/84472chat.png' in C:Program Files (x86)EasyPHP-12.1EasyPHP-12.1wwwrede_socialindex.php on line 24

    o que é?
    pf
    grato fernando

Leave a Reply