Script PHP, podobné články

Květoš

  • *
  • 36
  • Umím HTML a JavaScript
    • Zobrazit profil
    • Nekecamweb
    • E-mail
Re:Script PHP, podobné články
« Odpověď #15 kdy: 05. 12. 2021, 13:01:47 »
Ještě zjednodušený text (horní řádky odstraněné):
Kód: [Vybrat]
//Kvetos, 05.12.2021 - blog.tpl.php ve footer. Ale zobrazuje se jen 1 článek, nejde link na ostatní články (limit 5)!
echo '<div class="well text-center m-t-10 m-b-0">';
{
    $locale = fusion_get_locale('', INFUSIONS.'infusions/blog/templates/locale/Czech.php');
}
openside($locale['mrb_01']);
srand(time());
$random = rand(1,3);
if ($random == 4 ) {
$result = dbquery("SELECT * FROM ".DB_BLOG." ORDER BY news_datestamp DESC LIMIT 5");
}
else {
$result = dbquery("SELECT * FROM ".DB_BLOG." ORDER BY RAND() LIMIT 5");
}
$rows = dbrows($result);
if ($rows = 5){
$data = dbarray($result) ;

echo "<a href='".INFUSIONS."blog/blog.php?blog_id=".$data['blog_id']."'>".$data ['blog_subject']."$new</div><br />\n".stripslashes($data['blog_title']);
echo "</a>";
}
closeside();
« Poslední změna: 05. 12. 2021, 13:07:20 od Květoš Vícha »
Květoš
Ahoj all! Chci rozšířit znalosti o PHP.


Květoš

  • *
  • 36
  • Umím HTML a JavaScript
    • Zobrazit profil
    • Nekecamweb
    • E-mail
Re:Script PHP, podobné články
« Odpověď #16 kdy: 05. 12. 2021, 14:36:24 »
Další oprava, odkazy, link na článek je už funkční:

Kód: [Vybrat]
echo "<a href='".INFUSIONS."blog/blog.php?readmore=".$data['blog_id']."'>"

Zbývá tudíž jen aby se vypsal link na 5x článků.
????
Zde je ukázka na výpis Související články:
https://nekecamweb.cz/blog/2816/koalice-pirstan-se-rozpadne?
« Poslední změna: 05. 12. 2021, 14:45:24 od Květoš Vícha »
Květoš
Ahoj all! Chci rozšířit znalosti o PHP.

Re:Script PHP, podobné články
« Odpověď #17 kdy: 05. 12. 2021, 14:52:29 »
ten kod z mnoha duvodu nemuze fungovat

robin martinez

  • *****
  • 1 138
  • Have you hugged your toilet today?
    • Zobrazit profil
    • Null Storage
    • E-mail
Re:Script PHP, podobné články
« Odpověď #18 kdy: 05. 12. 2021, 14:55:19 »
Kód: [Vybrat]
$rows = dbrows($result);

je snad nejaky pole z radky, takze musi fungovat neco jako

Kód: [Vybrat]
$rows = dbrows($result);

foreach($rows as $row) {
     echo "<a href=....";
}


jinak tohle je kouzelny, nechapu moc ucel :D

Kód: [Vybrat]
if ($rows = 5).....

One machine can do the work of fifty ordinary men. No machine can do the work of one extraordinary man.

I do Linux, Hardware and spaghetti code in PHP, Python and JavaScript

Re:Script PHP, podobné články
« Odpověď #19 kdy: 05. 12. 2021, 15:07:29 »
jinak tohle je kouzelny, nechapu moc ucel :D

Kód: [Vybrat]
if ($rows = 5).....


je tam toho vic

Kód: [Vybrat]
$random = rand(1,3);
if ($random == 4 ) {
« Poslední změna: 05. 12. 2021, 15:09:14 od A.P.Hacker »


robin martinez

  • *****
  • 1 138
  • Have you hugged your toilet today?
    • Zobrazit profil
    • Null Storage
    • E-mail
Re:Script PHP, podobné články
« Odpověď #20 kdy: 05. 12. 2021, 15:40:36 »
je tam toho vic

Kód: [Vybrat]
$random = rand(1,3);
if ($random == 4 ) {

toho jsem si nevsiml  :-X
One machine can do the work of fifty ordinary men. No machine can do the work of one extraordinary man.

I do Linux, Hardware and spaghetti code in PHP, Python and JavaScript

Květoš

  • *
  • 36
  • Umím HTML a JavaScript
    • Zobrazit profil
    • Nekecamweb
    • E-mail
Re:Script PHP, podobné články
« Odpověď #21 kdy: 06. 12. 2021, 06:16:30 »
Tak jsem dnes ráno ještě vylepšil kód. Odkaz již 1 link otevírá:
Kód: [Vybrat]
//Kvetos, 06.12.2021 - blog.tpl.php ve footer. Ale zobrazuje se jen 1 článek, nejde link na ostatní (LIMIT 5)!
echo '<div class="well text-center m-t-10 m-b-0">';
{
    $locale = fusion_get_locale('', INFUSIONS.'infusions/blog/templates/locale/Czech.php');
}
openside("Politika - související články");
//openside($locale['mrb_01']);
srand(time());
$random = rand(1,3);
if ($random == 5 ) {
$result = dbquery("SELECT * FROM ".DB_BLOG." ORDER BY news_datestamp DESC LIMIT 5");
}
else {
$result = dbquery("SELECT * FROM ".DB_BLOG." ORDER BY RAND() LIMIT 5");
}
$rows = dbrows($result);
if ($rows = 5){
$data = dbarray($result) ;

echo "<a href='".INFUSIONS."blog/blog.php?readmore=".$data['blog_id']."'>".$data ['blog_subject']."$new</div><br />\n".stripslashes($data['blog_title']);
echo "</a></div>";
}
closeside();

Ještě by to chtělo otevřené další 4 linky. Zatím se tohle nedaři...
Květoš
Ahoj all! Chci rozšířit znalosti o PHP.

Květoš

  • *
  • 36
  • Umím HTML a JavaScript
    • Zobrazit profil
    • Nekecamweb
    • E-mail
Re:Script PHP, podobné články
« Odpověď #22 kdy: 07. 12. 2021, 11:04:20 »
A s tímto již fungue:

Kód: [Vybrat]
<!-- Kvetos, 06.12.2021 - articles.tpl.php ve footer. -->

<div class="well text-center m-t-10 m-b-0">
<?php
openside
("Archiv - související články Politika");
//openside($locale['politika_001']);
$result dbquery("SELECT * FROM ".DB_BLOG."
   WHERE blog_id='"
.stripinput($_GET['readmore'])."'
   AND news_draft='0' LIMIT 5"
);

   
$data dbarray($result);
Květoš
Ahoj all! Chci rozšířit znalosti o PHP.

robin martinez

  • *****
  • 1 138
  • Have you hugged your toilet today?
    • Zobrazit profil
    • Null Storage
    • E-mail
Re:Script PHP, podobné články
« Odpověď #23 kdy: 07. 12. 2021, 12:59:56 »
ja nejak nechapu jestli mame reagovat nebo jestli je po nas vlastne neco pozadovano? Ptas se na pomerne zakladni veci a pokud nekomu delas webovky a tyhle veci neznas, tak nevim, jestli jsme schopni pomoci, navic vzhledem k tomu, ze celej web bude silne nachylnej na nejaky sql injection a pod. ;)
One machine can do the work of fifty ordinary men. No machine can do the work of one extraordinary man.

I do Linux, Hardware and spaghetti code in PHP, Python and JavaScript

Květoš

  • *
  • 36
  • Umím HTML a JavaScript
    • Zobrazit profil
    • Nekecamweb
    • E-mail
Re:Script PHP, podobné články
« Odpověď #24 kdy: 08. 12. 2021, 09:23:45 »
Díky za zájem a info.
Momentálně kód pro zobrazování podobných/related článků chodí mně to již dobře (viz. obrázek).
Pokud se týká xss, tak mně je jasné, že pole bych měl mít řešena tak, aby je šlo rekurzivně zentitovat přes funkci htmlspecialchars(), tedy všechny stringy v poli $data před výpisem. Standardně mám v hlavním souboru konkrétní kategorie, jako např. blog.php:
Kód: [Vybrat]
//xss
        $_GET['rowstart'] = (isset($_GET['rowstart']) && isnum..............................s hodnotou : 0;

A kódu pro přihlášení pak mám:
Kód: [Vybrat]
$username = htmlspecialchars(trim("$_POST[username]"));

$uniqueuser = $realm_db->query("SELECT `login` FROM `accounts` WHERE `login` = '$username'");

Zatím část kódu pro výpis z linků článků z databáze k souvisejícím článků je funkční:

Kód: [Vybrat]
openside("Archiv - související články Politika:");
   $data = dbarray($result);
   $related_blog = dbquery("SELECT * FROM ".DB_BLOG."
   WHERE ".groupaccess('blog_visibility')."
   AND (blog_start='0'||blog_start<=".time().")
   AND (blog_end='0'||blog_end>=".time().")
   AND blog_draft='0'
   AND blog_cat='".stripinput($data['blog_cat'])."'
   AND blog_id !='".stripinput($_GET['readmore'])."'
   ORDER BY RAND()
   DESC LIMIT 0,6");


Květoš
Ahoj all! Chci rozšířit znalosti o PHP.

Re:Script PHP, podobné články
« Odpověď #25 kdy: 08. 12. 2021, 09:57:53 »
Brrr to jsem se osypal jen jsem zahledl zneni dotazu. Tohle skonci hacknutim od nejakyho zdejsiho ctenare. A ne, nemuze za to PHP.
Děkuji za možnost editace příspěvku.

Květoš

  • *
  • 36
  • Umím HTML a JavaScript
    • Zobrazit profil
    • Nekecamweb
    • E-mail
Re:Script PHP, podobné články
« Odpověď #26 kdy: 08. 12. 2021, 10:26:14 »
No, nelekej se, ještě to není na ostrém.
A co tohle, to je také mimo mísu?
Kód: [Vybrat]
echo "<img src='".INFUSIONS."images/bullet.gif' alt='' /> <a href='infusions/articles/articles.php?article_id=".$data['article_id']."'>".$data ['article_subject']."$new</div><br />\n".stripslashes($data['article_snippet']);
echo "</a>";

nebo:
Kód: [Vybrat]
$news['news_image']."' title='".$news['news_subject']."' width='96%' height='auto' /></a><strong><a href='".BASEDIR."news.php?readmore=".$news['news_id']."'>".trimlink(strip_tags(stripslashes($news['news_subject'])), 39)."</a></strong>".trimlink(strip_tags(stripslashes($news['news_news'])), 69)."</td>\n</tr>\n";
« Poslední změna: 08. 12. 2021, 10:34:13 od Květoš Vícha »
Květoš
Ahoj all! Chci rozšířit znalosti o PHP.

robin martinez

  • *****
  • 1 138
  • Have you hugged your toilet today?
    • Zobrazit profil
    • Null Storage
    • E-mail
Re:Script PHP, podobné články
« Odpověď #27 kdy: 08. 12. 2021, 12:46:26 »
a otazka je jaka?

pro me konkretne to mimo misu je, protoze jakmile koukam do kodu dele jak 5 vterin a nechapu ho, nezajima me.
One machine can do the work of fifty ordinary men. No machine can do the work of one extraordinary man.

I do Linux, Hardware and spaghetti code in PHP, Python and JavaScript

Květoš

  • *
  • 36
  • Umím HTML a JavaScript
    • Zobrazit profil
    • Nekecamweb
    • E-mail
Re:Script PHP, podobné články
« Odpověď #28 kdy: 08. 12. 2021, 14:49:11 »
Tady je kód celý, který funguje:
Kód: [Vybrat]
//Kvetos, 06.12.2021 - news/Internet.tpl.php ve footer.
if (file_exists(INFUSIONS.'news/templates/locale/'.LANGUAGE.'.php')) {
    $locale = fusion_get_locale('', INFUSIONS.'news/templates/locale/'.LANGUAGE.'.php');
} else {
    $locale = fusion_get_locale('', INFUSIONS.'news/templates/locale/Czech.php/');
}
echo '<div class="well text-center m-t-10 m-b-0">';
openside($locale['internet_01']);
$result = dbquery("SELECT * FROM ".DB_NEWS."
   WHERE news_id='".stripinput($_GET['readmore'])."'
   AND news_draft='0' LIMIT 5");
   $data = dbarray($result);
   $related_news = dbquery("SELECT * FROM ".DB_NEWS."
   WHERE ".groupaccess('news_visibility')."
   AND (news_start='0'||news_start<=".time().")
   AND (news_end='0'||news_end>=".time().")
   AND news_draft='0'
   AND news_cat='".stripinput($data['news_cat'])."'
AND news_id !='".stripinput($_GET['readmore'])."'
   ORDER BY RAND()
   DESC LIMIT 0,6");

      echo"<div style='margin-left:auto; margin-right:auto;' class='tbl-border'>";
   if (dbrows($related_news)) {

   $i = 0;
      while ($related_news_data = dbarray($related_news)) {
      $row_color = ($i % 2 == 0 ? "tbl1" : "tbl2");
      $subject = trimlink(strip_tags(parseubb($related_news_data['news_subject'])), 35);
      echo "<div class='$row_color'><a href='".INFUSIONS."/news/news.php?readmore=".$related_news_data['news_id']."'>".$subject."</a><div  style='float: left; padding-right: 10px;'>".showdate("%d.%m.%Y %H:%M", $related_news_data['news_datestamp'])."</div>\n</div>\n";
   $i++;
      }
    }else{
      echo"<div style='text-align: center;'>Není žádný související článek Internet!</div>\n";
   }
   echo"</div>\n";
closeside();

Otázka:
Na první pohled, je ten kód nebezpečný.
Je dostačující použití stripinput nebo bych měl kromě toho použít metodu add_slashes?
Díky pouze za ANO - NE.
« Poslední změna: 08. 12. 2021, 14:58:32 od Květoš Vícha »
Květoš
Ahoj all! Chci rozšířit znalosti o PHP.

robin martinez

  • *****
  • 1 138
  • Have you hugged your toilet today?
    • Zobrazit profil
    • Null Storage
    • E-mail
Re:Script PHP, podobné články
« Odpověď #29 kdy: 09. 12. 2021, 11:34:51 »
ano
One machine can do the work of fifty ordinary men. No machine can do the work of one extraordinary man.

I do Linux, Hardware and spaghetti code in PHP, Python and JavaScript