Folosirea unei pagini php intr-un site html


(Dorin Lapadat) #1

Salutare,

Am creat un site html cu ajutorul Dreamweaver CS3. Pe langa chestiile de CSS m-am gandit sa fac si o pagina php, index.php. Zis si facut, am creat baza de date in localhost, ma conectez la ea cu ajutorul wamp-ului si adaug noi inregistrari din pagina mea php.Tot in pagina mea php imi afisez ultimele 5 cele mai recente inregistrari adaugate in baza de date. Toate bune si frumoase, functioneaza foarte bine, dar doar din localhost!!! De ceva timp ma chinui sa conectez asa-zisul chestionar, la paginile mele html.
Ce am incercat pana acum a fost sa modific fisierul .htaccess, adaugand AddType application/x-httpd-php .html .htm, dar in zadar pentru ca nu reusesc sa includ fisieul php in cel html, si implicit sa intru in chestionar din site-ul html.
Imi lipseste ceva ? Pot sa adaug cumva un form in pagina mea de html, iar in form sa incarc fisierul meu php ? Sau sa fac legatura cumva din html in php si pe urma invers ? Orice idee este bine venita.
Iata si ceva cod din php-ul meu :

<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  $theValue = function_exists("mysqli_real_escape_string") ? mysqli_real_escape_string(dbconnect(), $theValue) : mysqli_escape_string(dbconnect(), $theValue);
  switch ($theType) {
    case "text":
  $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  break;   
    case "long":
    case "int":
  $theValue = ($theValue != "") ? intval($theValue) : "NULL";
  break;
    case "double":
  $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
  break;
    case "date":
  $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  break;
    case "defined":
  $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
  break;
  }
  return $theValue;
}
}
$maxRows_Comments = 5;
$pageNum_Comments = 0;
if (isset($_GET['pageNum_Comments'])) {
  $pageNum_Comments = $_GET['pageNum_Comments'];
}
$startRow_Comments = $pageNum_Comments * $maxRows_Comments;
mysqli_select_db($localhost, $database_localhost);
$query_Comments = "SELECT * FROM mytable1 ORDER BY DateCreated DESC";
$query_limit_Comments = sprintf("%s LIMIT %d, %d", $query_Comments, $startRow_Comments, $maxRows_Comments);
$Comments = mysqli_query($localhost, $query_limit_Comments) or die(mysqli_error($localhost));
$row_Comments = mysqli_fetch_assoc($Comments);
if (isset($_GET['totalRows_Comments'])) {
  $totalRows_Comments = $_GET['totalRows_Comments'];
} else {
  $all_Comments = mysqli_query($localhost,$query_Comments);
  $totalRows_Comments = mysqli_num_rows($all_Comments);
}
$totalPages_Comments = ceil($totalRows_Comments/$maxRows_Comments)-1;

Multumesc anticipat!


(Andrei Neamțu) #2

Nu am inteles concret ce vrei sa faci.

Ai mai multe optiuni:

  1. Faci si pagina .html ca .php ca tot aia e, chiar daca nu ai php care sa fie citit
  2. Daca ai un form poti avea htmlul in fisierul .html si la action in tagul de form sa pui link catre php pentru a face ce vrei tu sa faci prin php.
  3. Poti include cu un iframe fisierul .php.
  4. Poti face din htaccess sa parseze si fisierele cu extensia html ca php

Recomand varianta 1 sau 2 dar in principiu 1. Restul sunt doar posibilitati, nu inseamna ca ar trebui sa le faci.


(Dorin Lapadat) #3

Salut,
Ideea e urmatoarea. Am un site html si o pagina php in care am un formular(nume, email si comentariu) din care pot sa adaug inregistrari in baza de date de pe localhost/phpmyadmin. Separat pot sa deschid formularul si sa adaug inregistrari, dar eu vreau sa ajung in formular din site.
Am incercat ce sugerezi prin prima optiune, dar imi dispare meniul si nu pot sa mai navighez catre celelalte pagini din site.

Poti te rog sa detaliezi punctul 2 ? E ceea ce vreau sa fac cred. Sa vad in prima pagina(index.html) formularul php, si de aici sa navighez in restul site-ului. Se poate sa adaug inregistrari in formularul php daca e includ in pagina html ?

Am adaugat la mesaj cum arata formularul meu.


Multumesc anticipat!


(Florin Frătică) #4

Pare că te-ai complicat foarte mult. Din câte înțeleg eu, paginile .html au un meniu cu ajutorul căruia poți naviga pe site, iar în pagina cu formularul cu comentarii nu ai inclus acest meniu. Poți accesa această pagină și este funcționabilă, însă doar dacă îi știi URL-ul.

Ne poți arăta sursa unei pagini care conține meniul și sursa completă a paginii cu formularul cu comentarii? Poți eventual să le pui într-un gist ca să fie mai ușor de urmărit.


(István F.) #5

ATENTIE:
1. De unde inveti php ? Trebuie sa iti aduc la cunostinta ca absolut tot ce ai scris si ce folosesti este intr-un stil foarte vechi si nu e o idee deloc buna sa incepi asa in 2017.

Daca e cumva vreo carte din care inveti arde-o :slight_smile: In primul rand get_magic_quotes_gpc() nu se mai foloseste, un tutorial semi-decent din 2010 incoace ar folosi PDO din start, deci presupun ca urmezi vreun tutorial pre-2010.

Vezi http://www.phptherightway.com

  1. Te rog eu frumos sa nu folosesti Dreamweaver 2013, ai nevoie doar de Google Chrome, un editor de text (recomand Visual Studio Code), un server php (integrat in php7) si sa inveti sa folosesti Developer Tools din Chrome.

  2. Sincer nici nu ti-as recomanda sa inveti PHP in 2017 dar e offtopic, raspunsul la intrebarea ta e urmatoarea :
    Pur si simplu pui <?php ?> oriunde intr-o pagina html si salvezi pagina html ca .php. Cand intrii pe index.php iti va incarca pagina. Poti folosi mai multe <?php ?> intre html. Pe o pagina php vei avea aceeasi variabile indiferent in care <?php ?> esti.

  3. Inainte sa iti explic cum ar trebui sa inveti si sa scrii PHP iti voi atrage atentia ca multe proiecte scrise in PHP sunt pe moarte, cu exceptia Wordpress, Laravel, Symfony, Phalcon, Piwik si inca cateva care sunt la limita. Ai putea pur si simplu sa sari pe un tutorial de Wordpress A-Z sau Laravel sau Symfony sau Phalcon in loc sa inveti PHP.
    Deci te redirectionez usor spre https://laracasts.com daca chiar PHP vrei sa inveti, altfel iti recomand cu drag sa incepi sa inveti frumos de pe http://freecodecamp.com Javascript. (complet gratuit, super bine structurat si un canal de gitter super activ cu oameni care te ajuta aproape instant)

  4. OOP-ul este foarte important si acest video explica extrem de bine totul :
    https://youtu.be/w3XUG6oyINI

  5. Chiar daca un proiect in PHP nu e pe moarte, daca te uiti la structura oricaruia nu va semana cu nici o instructie din vreo carte sau tutorial. Aplicatiile PHP in ziua de azi arata mai mult ca niste aplicatii in JS, RoR, Java sau .Net cu clase, functii, obiecte si dependinte.
    Exemple :
    https://github.com/mautic/mautic
    https://github.com/piwik/piwik
    https://github.com/phpbb/phpbb

Un shopping cart in Laravel, aici vezi cum se foloseste PHP azi. (instalezi composer si iti iei librariile cu el, separi functiile programului)


Merită să înveți PHP în 2017?
(Beniamin Gheorghita) #7

@15dorin89, ai putea face in principiu asa:

<form action="trimitereFormular.php">
<continut_formular_cu_ce_inputuri_ai_nevoie>
<input type="submit" value="trimis">
</form>

Acest html il poti avea intr-un fisier html insa va trebui ca sa ai in acelasi director si fisierul de procesare a formularului numit trimitereFormular.php.

Nu e deloc recomandat ca sa tii totul intr-un fisier html pentru ca vei avea nevoie si de o confirmare ca s-a trimis formularul. Iti poti trimite din trimitereFormular.php inapoi la pagina care contine html-ul anumiti parametrii care sa-ti confirme ca formularul a fost trimis cu succes si sa afisezi si un mesaj in acest sens insa preluarea parametrilor va trebui facuta tot intr-un fisier de tip php, nu html.

Ca sa-ti faci o idee despre cat de usoara ti-ar fi interactiunea cu baza de date folosind PDO (PHP DATA OBJECTS), imagineaza-ti ca in loc de mysqli poti face doar atat:

$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8mb4', 'username', 'password');
$stmt = $db->query("SELECT * FROM table | ce query ai nevoie");
return $stmt->fetchAll(PDO::FETCH_ASSOC);

(Sapioit) #8

Scuze de offtopic, dar consider ca o paranteza ar fi necesara…

Pai nu asa obtinem developeri slabi?
Parca s-a mai discutat de cateva ori, pe forum. E ca si cum ai incerca sa inveti sa construiesti cladiri care sa fie folosite de oameni, lucrand doar cu lego… posibil, dar deloc practic. Plus de-asta, imi pare ca este incepator (posibil sa nu fie), iar tu vrei sa treaca direct la middle-level, asa, prin magie…


(István F.) #9

Depinde de la caz la caz. Dacă cineva dorește să învețe poate învața 10 ani php fără să facă ceva decent, dacă dorește să facă ceva (și să învețe) un framework și documentația lui e soluția. Limbajul îl înveți când nu înțelegi ceva, dacă tu ai învățat php dintr-o carte și după ai scris mici programe e diferit.