Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Aplikacja internetowa -Arduino, Mysql, PHP, Link dynamiczny a generowanie dynamiczne treści.
sereknr1
post 22.12.2017, 22:33:13
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 24.04.2017

Ostrzeżenie: (0%)
-----


Siema, potrzebuję pomocy mam stronkę z dynamicznymi odnośnikami, chciałbym aby w podstronie archivum.php generowała się treść w zależności od klikniętego linku, jak to zrobićquestionmark.gif Dane zawarte są w tabelach mysql.

  1.  
  2. <?php
  3. $nazwa = $_POST['nazwa'];
  4. $_SESSION['nazwa'] = $nazwa;
  5.  
  6. $link = mysqli_connect("localhost", "root", "", "pomiar");
  7.  
  8. if (mysqli_connect_errno()) {
  9. printf("Connect failed: %s\n", mysqli_connect_error());
  10. exit();
  11. }
  12. else
  13. {
  14. if ($result = mysqli_query($link, "SHOW TABLES LIKE '$nazwa'")) {
  15.  
  16. $row_cnt = mysqli_num_rows($result);
  17. echo("Ilość tabeli o tej samej nazwie: ".$row_cnt);
  18. if($row_cnt > 0){
  19.  
  20. echo '<br />'.'<span style="color:red">'."Error: Wpis o podanej nazwie już istnieje. Zmień nazwę i ponów próbę.".'</span>';
  21. }
  22. else
  23. {
  24. $sql_insert = mysqli_query($link, 'CREATE TABLE '.$nazwa.' (`id` INT NOT NULL AUTO_INCREMENT,`time` timestamp,`sensor1`
  25. float,`sensor2` float,`sensor3` float,PRIMARY KEY (id))');
  26. echo '<br />'.'<span style="color:green">'."Dodano poprawnie nową tabelę o nazwie: ".$nazwa.'</span>'.'<br /><hr />';
  27. }
  28. }
  29. }
  30.  
  31. echo '<h1>'."Lista baz danych:".'</h1>';
  32. $tmp = mysqli_query($link, "SHOW TABLES from pomiar");
  33.  
  34. echo '<table border="1" cellspacing="2" cellpadding="2">';
  35. echo '<tr><td>Nazwa:</td><td>Usuń:</td><td>Akcja:</td></tr>';
  36. while($tmp1 = mysqli_fetch_row($tmp))
  37. {
  38. echo '<tr><td>'.'- '.'<b>'.($tmp1[0]).'</b></td>';
  39. echo '<td><center>'."(-)".'</center></td>';
  40. echo "<td>
  41. <a href =\"archivum.php?a=edit&amp;name={$tmp1[0]}\">Zobacz</a>
  42. </td>";
  43. echo "</tr>";
  44. }
  45. echo '</table>';
  46.  
  47. mysqli_close($link);
  48.  
  49. ?>

oraz formularz nadający nazwę nowej tabeli mysql:
  1. <html>
  2. <head>
  3. <meta charset = "UTF-8" />
  4. <title>Strona Główna</title>
  5. </head>
  6. <body>
  7. <form action="engine.php" method="post">
  8. <input type="text" name="nazwa">
  9. <input type="submit" value="send">
  10. </form>
  11. </body>
  12. </html>
  13.  

Nie patrzcie na zmienną sesyjną z pierwszego skryptu nie spełnia ona żadnej funkcji - kombinowałem. Skryptu php strony archivum nie wrzucam bo oprócz znacznika <?php ?> i zmiennej sesyjnej nic tam nie ma.

Dzięki za podsunięcie rozwiązania. Pozdro

Moi drodzy temat uważam za zamknięty podaje rozwiązanie:

skrypt: engine.php

  1. <?php
  2. $nazwa = $_POST['nazwa'];
  3. $_SESSION['nazwa'] = $nazwa;
  4.  
  5. $link = mysqli_connect("localhost", "root", "", "pomiar");
  6.  
  7. if (mysqli_connect_errno()) {
  8. printf("Connect failed: %s\n", mysqli_connect_error());
  9. exit();
  10. }
  11. else
  12. {
  13. if ($result = mysqli_query($link, "SHOW TABLES LIKE '$nazwa'")) {
  14.  
  15. $row_cnt = mysqli_num_rows($result);
  16. echo("Ilość tabeli o tej samej nazwie: ".$row_cnt);
  17. if($row_cnt > 0){
  18.  
  19. echo '<br />'.'<span style="color:red">'."Error: Wpis o podanej nazwie już istnieje. Zmień nazwę i ponów próbę.".'</span>';
  20. }
  21. else
  22. {
  23. $sql_insert = mysqli_query($link, 'CREATE TABLE '.$nazwa.' (`id` INT NOT NULL AUTO_INCREMENT,`time` timestamp,`sensor1`
  24. float,`sensor2` float,`sensor3` float,PRIMARY KEY (id))');
  25. echo '<br />'.'<span style="color:green">'."Dodano poprawnie nową tabelę o nazwie: ".$nazwa.'</span>'.'<br /><hr />';
  26. }
  27. }
  28. }
  29.  
  30. echo '<h1>'."Lista baz danych:".'</h1>';
  31. $tmp = mysqli_query($link, "SHOW TABLES from pomiar");
  32.  
  33. echo '<table border="1" cellspacing="2" cellpadding="2">';
  34. echo '<tr><td>Nazwa:</td><td>Usuń:</td><td>Akcja:</td></tr>';
  35. while($tmp1 = mysqli_fetch_row($tmp))
  36. {
  37. echo '<tr><td>'.'- '.'<b>'.($tmp1[0]).'</b></td>';
  38. echo '<td><center>'."(-)".'</center></td>';
  39. echo "<td>
  40. <a href =\"archivum.php?a=look&amp;name={$tmp1[0]}\">Zobacz</a>
  41. </td>";
  42. echo "</tr>";
  43. }
  44. echo '</table>';
  45.  
  46. mysqli_close($link);
  47.  
  48. ?>


Dla osób które lubią się bawić, a dopiero się uczą rozwiązanie znajduje się tu:
<a href =\"archivum.php?a=look&amp;name={$tmp1[0]}\">Zobacz</a>
jest to chyba 41 linia kodu, następnie w pliku archivum pobieram poleceniem $adres = $_GET['name'];

skrypt: archivum.php

  1. <?php require_once("connect.php"); ?>
  2.  
  3. <html>
  4. <head>
  5. <meta charset = "UTF-8" />
  6. <title>Archiwum</title>
  7. </head>
  8. <body>
  9.  
  10. <table width="500" border="1" cellspacing="2" cellpadding="5">
  11.  
  12. <tr>
  13. <td><b>ID</b></td>
  14. <td><b>Data i czas:</b></td>
  15. <td><b>Sensor 1</b></td>
  16. <td><b>Sensor 2</b></td>
  17. <td><b>Sensor 3</b></td>
  18. </tr>
  19.  
  20. <?php
  21. $adres = $_GET['name'];
  22. echo $adres;
  23.  
  24. $resultad = mysql_query("select * from $adres");
  25.  
  26. while($linha = mysql_fetch_array($resultad))
  27. {
  28. echo '<tr>';
  29. echo '<td>'.$linha["id"].'</td>';
  30. echo '<td>'.date('d/m/Y - H:i:s', strtotime ($linha["time"])).'</td>';
  31. echo '<td>'.$linha["sensor1"].'</td>';
  32. echo '<td>'.$linha["sensor2"]. '</td>';
  33. echo '<td>'.$linha["sensor3"].'</td>';
  34. echo '</tr>';
  35. }
  36.  
  37. ?>
  38. </table>
  39. </body>
  40. </html>
  41.  


później zrobię parę kosmetycznych zmian choćby na mysqli. Temat do zamknięcia! POZDRO!

Ten post edytował sereknr1 22.12.2017, 22:54:03
Go to the top of the page
+Quote Post
mmmmmmm
post 26.12.2017, 23:23:00
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


Złą drogą podążasz.
NIGDY, ALE TO NIGDY nie pozwalają userowi na bezpośrednią ingerencję w bazę (twozrenie tabel, kasowanie itp). To jest proszenie się oproblemy + SQL Injection.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.04.2024 - 20:44