Hirdetés

2024. május 2., csütörtök

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  PHP programozás (kiemelt téma)

Hozzászólások

(#19251) mkprog


mkprog
újonc

Akit esetleg érdekel:

PHP nyelv alapelemei

többek között lehetőség van PHP nyelv összehasonlítására további programozási nyelvekkel, hogy hol mit hogy lehet használni..
jól jöhet például ha már egy nyelven tudsz programozni és kiváncsi vagy hogy néz ki ugyanaz a parancs PHP-ban

(#19252) supercow válasza mkprog (#19251) üzenetére


supercow
őstag

ez valami önfényezés / saját oldalra link?

In nomine Pasta, et Fusilli, et Spaghetti Sancti. Ramen.

(#19253) PowerBuldog


PowerBuldog
veterán

Sziasztok!

Egy kis segítséget kérnék tőletek.
Van egy SOAP lekérdezés ami visszaad nekem egy XML-t. Ebben van a termékeknek egy olyan eleme, hogy rendelhető, vagy sem. Viszont ezt ők úgy adják át, hogy 1 - Igen, 2 - Nem, 3 – Hívjon. (<webmegjel>1</webmegjel>) Ebből szeretném a kimenetben kicserélni egy if fgvnyel az 1-et instock-ra a 2-t outofstock-ra. A WP-s woocommerce ezeket tudja csak kezelni.
Tudna esetleg valaki segíteni, hogy a következő kódot hogy módosítsam?

<?php
$time = time();
$authcode = "[I]kód[/I]";
$client = new SoapClient('[I]cím[/I]',array("trace" => 1,"exceptions" => 0,'features' => SOAP_SINGLE_ELEMENT_ARRAYS));
$result=$client->GetCikkekAuth(array('web_update'=>date("Y-m-d",strtotime(' -1 day', $time)), 'authcode'=>$authcode));
header("Content-type: text/xml");
echo '<?xml version="1.0" encoding="utf-8"?>'."\n";
echo $result->GetCikkekAuthResult->any;
?>

A SoapClientben a címet és az authkódot nem raktam bele, de a meghívás valid működő XML-t ad.

[ Szerkesztve ]

Eladó motyók: https://hardverapro.hu/aprok/hirdeto/powerbuldog/index.html

(#19254) Doink válasza PowerBuldog (#19253) üzenetére


Doink
aktív tag

Be kell tölteni az xml-t és átírni az értékeket. [példa]

[ Szerkesztve ]

(#19255) PowerBuldog válasza Doink (#19254) üzenetére


PowerBuldog
veterán

Köszönöm! Ez így működik ha <<<SOURCE -al rakom bele a tartalmat, de ha file-ból akarom akkor már sehogy se megy. :B

Eladó motyók: https://hardverapro.hu/aprok/hirdeto/powerbuldog/index.html

(#19256) Doink válasza PowerBuldog (#19255) üzenetére


Doink
aktív tag

Ja kicsit kell rajta faragnod mert a $response nálam egy string, aminek a megfelelője nálad a $result->GetCikkekAuthResult->any. Ettől függetlenül először nézd meg hogy a $result->GetCikkekAuthResult milyen formában adja vissza az eredményt és ha az valamilyen struktúrált adatszerkezetben akkor még parse-olnod sem kell hanem egyől mehetsz végig azon.

[ Szerkesztve ]

(#19257) sketchifun


sketchifun
senior tag

Sziasztok.

Adódott egy projekt, amit saját kézzel kéne megcsinálnom.
Úgy gondoltam, menni is fog, néhány perc alatt össze is dobtam egy rövid kódot.

Na, ez nem üzemel.
Ezt a hibakódot dobja a xampp:
Fatal error: Uncaught Error: Call to undefined function fejlec() in C:\xampp\htdocs\index.php:5 Stack trace: #0 {main} thrown in C:\xampp\htdocs\index.php on line 5

Az index.php:
<?php

require "system.php";

fejlec();
?>
Content
<?

lablec();

?>

A system.php:

<?php



function fejlec(){
?>
<!DOCTYPE html>
<html>
<head>
<title>Fejlec</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="menu">
<a href="#"><div class="menua">Menu 1</div></a>
<a href="#"><div class="menua">Menu 2</div></a>
<a href="#"><div class="menua">Menu 3</div></a>
<a href="#"><div class="menua">Menu 4</div></a>
<a href="#"><div class="menua">Menu 5</div></a>
<a href="#"><div class="menub">Logout</div></a>
</div>
<div class="container">
<?

}

function lablec($dbzar){

?>
</div>
</body>
</html>
<?

}
?>

Ezt miért csinálja velem?

Gyerekek! Az a lényeg, hogy van pénz lóvéra! © Jakab Zoltán

(#19258) Doink válasza sketchifun (#19257) üzenetére


Doink
aktív tag

<?php
require __DIR__."/system.php"; //ha ahhoz a fájlhoz képest keresed amibe ezt a sort beleírtad
//require "./system.php"; //ha working dir-hez képest keresed
?>

Egyébként feleslegesen bonyolítod a kódot már most, a require/include egy copy paste-et csinál.

index.php

<!DOCTYPE html>
<html>
<head>
<title>Fejlec</title>
</head>
<body>
<?php require './menu.php' ?>
<?php require './tartalom.php' ?>
<?php require './lablec.php' ?>
</body>
</html>

menu.php

<div class="menu">
<ul>
<li><a href="#">Menu 1</a></li>
<li><a href="#">Menu 2</a></li>
<?php if(isset($_SESSION['user'])) { ?>
<li><a href="#">Logout</a></li>
<?php } else { ?>
<li><a href="#">Login</a></li>
<?php } ?>
</ul>
</div>

Apró megjegyzés, hogy ha szeretnél bejelentkezést kis adatbázist akkor érdemesebb valami keretrendszert használni pl: Slim-mvc, Lumen, kicsit nagyobbhoz Laravel.

(#19259) sketchifun válasza Doink (#19258) üzenetére


sketchifun
senior tag

Szia.

Köszönöm a segítséget. Tulajdonképpen megoldottam a hibát azelőtt, hogy válaszoltál volna. Istenverte relatív hivatkozások.

Viszont a függvény, pontosabban a __DIR__ ismeretlen volt számomra, szóval köszönöm.

A keretrendszer érdekes lehet, viszont nem vagyok egy nagy guru. Valamennyire konyítok a dologhoz, de közel sem mesterszinten. Viszont egy ilyen keretrendszer érdekelne, akár a Laravel is.

Mi az ajánlott ezek közül? Van értelme egy kisebb keretrendszert tanulgatni, vagy érdemes rögtön a Laravel-be belevágni?

Értékelhető tananyagot tudsz esetleg javasolni, az alapoktól? Google-t ismerem, keresgéltem is, de említésre méltó, alapoktól kezdődő, megfelelő tematikájú how-to/tutorial/make it like me bastard tartalmat még nem igazán találtam, vagy nem sikerült ezt megállapítanom.

Gyerekek! Az a lényeg, hogy van pénz lóvéra! © Jakab Zoltán

(#19260) Doink válasza sketchifun (#19259) üzenetére


Doink
aktív tag

Framework-öt általában úgy választunk ami passzol a problémához és annak a nagyságához. Ha csak tanulni akarsz akkor nyugodtan játszhatsz a laravel-el, elég népszerű, a doksija nagyon korrekt és tele van példakóddal, szóval tutorial nagyon nem kell de a youtube tele van azzal is. Ha a php és az OOP alapjaival tisztában vagy akkor nyugodtan nekiugorhatsz, sok felesleges kört meg fog oldani helyetted és ad egy iránymutatást hogy minek hova kell kerülnie.

[ Szerkesztve ]

(#19261) sketchifun válasza Doink (#19260) üzenetére


sketchifun
senior tag

Php alapjai megvannak, OOP annyira azért nem, még az OOP elterjedése előtt foglalkoztam utoljára ezzel.

Az alapvető cél, hogy a saját kis vállalkozásunk ügyviteli szoftverét létrehozzam, azért ezen a nyelven, mert nincs mindig nálunk egy laptop, hogy azonnal bevihessünk vagy kinyerjünk egy adatot. Nyilván azt szeretnék, ha ez a rendszer megcsinálna helyettünk sok mindent.

Alapvetően megtudnám csinálni. Meg is tudom. Sok idő, de biztos hogy megy. Viszont annyi helyről hallom, hogy egy keretrendszer mennyire nagyon sok időt megspórol egy programozónak, hogy mindenképp ki szeretném próbálni. Mostmár van is min kipróbálni, illetve ha minden igaz, időm is marad rá.

Ez a kis rendszer egyébként nem bonyolult, egyszerű, két felhasználós, jogosultsági szintek sincsenek tervben. Mert egyelőre nincsen értelme. De adatbázist építeni kiváló, szóval na. Vannak érvek amellett, hogy miért ez legyen.

Olvasgattam ezt a Laravelt. A dokumentációját is, nem tűnik bonyolultnak, amit látok, akár példákon keresztül, úgy gondolom, értem. Az a baj, ezek alapján, hogy az OOP maradt ki nekem, és ahhoz ez hiányzik.

Lehetséges, hogy később is foglalkoznék a dologgal, akár a programozás, webfejlesztés, akár a mi kis rendszerünk bővítése a cél. Szóval maradnék a Laravel-nél.

Az alapokat, úgy gondolom, nem nehezebb elsajátítani, a messzemenő részleteket pedig van idő akkor magamra szedni, ha szükség is van rá.

Gyerekek! Az a lényeg, hogy van pénz lóvéra! © Jakab Zoltán

(#19262) Doink válasza sketchifun (#19261) üzenetére


Doink
aktív tag

Webalkalmazást lehet rengeteg másik prog nyelvben is készíteni (java,scala,javascript,ruby, c#....) és azokra is van sok keretrendszer. Azt kell választani ami a vállalkozás-nak megéri. A probléma ezzel csak az, hogy ez egy elég komplex kérdés amire a cégen belül kell válaszokat találni.

Abban viszont biztos vagyok, hogy ügyviteli rendszert plain php-val egyedül építeni sehogy sem éri meg, hiszen az időd nagy része arra fog elmenni, hogy olyan problémákat oldasz meg amit a framework megoldana helyetted, ráadásul azt a megoldást több(száz) (szak)ember ellenőrizte.

(#19263) Lacc válasza sketchifun (#19261) üzenetére


Lacc
aktív tag

Laravel alapú CRM. (ügyviteli szoftver), ez ingyenes, szóval nyugodtan tovább fejlesztheted magad is.

Natív PHP-ban is meglehet csinálni saját belső használatra CRM-et, ha nem értesz az OOP-hoz. Bár tényleg egyszerűbb Laravel-lel vagy másik keretrendszerrel, de az OOP kell minimum.

Laravel érdemes bele fektetni, de azért kell idő, ha nincs OOP alap, (virtuális gép, mint a Homestad, ott az ORM is, akkor ilyen csomagkezelők, mint npm, composer, bár gyorsan használható)

(#19264) sketchifun válasza Doink (#19262) üzenetére


sketchifun
senior tag

Céges szintű választ adni egy olyan feladatra, mely nem a főprofilja egy cégnek, továbbá jelenlegi ügyvitelét egy Excel ellátja, gyakorlatilag nem lehet.

Ennek a projektnek nem célja nagyra nőni, nem az SAP ellenfele lesz, nekem is csak szabadidős tevékenység, juttatás nélkül, és a végső cél az, hogy ezáltal jobbak legyünk, mint amilyenek most vagyunk. Ebbe a felépítésbe, úgy gondolom, sem szakértőket, sem egyedi ötleteket nem kell belevinni. Egyelőre elég az, ha ugyan azt tudja, amit az Excel. Na, az meg nem sok.

Lacc:

Ha ez számít, találtam egy viszonylag konyhanyelvű OOP olvasnivalót, remélem, hasznomra válik. Azt is kezdem gyanítani, hogy egy linuxra is szükségem lesz, dehát bánja fene, legyen. Linuxból esetleg ajánlás? CentOS-ra vagy Ubuntu-ra gondoltam.

Gyerekek! Az a lényeg, hogy van pénz lóvéra! © Jakab Zoltán

(#19265) Pulsar


Pulsar
veterán

sziasztok,

filetime() fügvénnyel lenne egy kis gondon.
örökké January 01 1970 01:00:00. dátumot kapom vissza.
A file létezik, mert előtte a képet megjelenítem és meg is jelenik:

<?php
echo '<img src="/img/image.jpg" height="500" width="650">';
echo "<br />";
echo filemtime("/img/image.jpg");
echo "<br />";
echo "Frissítve: ".date("F d Y H:i:s.",filemtime("/img/image.jpg"));
?>

mit rontok el?

(#19266) Pulsar válasza Pulsar (#19265) üzenetére


Pulsar
veterán

a hiba megvan. a linket nem helyesen írtam. a ./img/image.jpg formában működik

(#19267) Fundiego


Fundiego
tag

Sziasztok!

Egy dinamikus oldalt csinálok jelenleg. A lényege a sztorinak h az oldal név mögé "?ID=(szám)"-ot teszi amit végül lehívok.

A lehívásnál viszont elakadtam,mert nem írja ki az sql lekérdezésem értékét, hanem üresen hagyja. Mi lehet a hiba?

<?php $servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'wordpress';

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
mysqli_set_charset($conn,'utf8');
if(isset($_GET['ID'])){
$ID = mysqli_real_escape_string($conn,$_get['ID']);
$sql = "SELECT * from games WHERE image_ID='$ID' ";
$result = mysqli_query($conn, $sql) or die("Bad query: $sql");
$row= mysqli_fetch_array($result);
echo $row['title'];
$conn->close();
}else {echo "0 results";}?>

(#19268) DS39 válasza Fundiego (#19267) üzenetére


DS39
nagyúr

Írasd ki a $ID változó értékét.
Valóban az kerül-e bele amit szeretnél.

(#19269) Fundiego válasza DS39 (#19268) üzenetére


Fundiego
tag

echo $_GET['ID'];
mármint ezt? mert én nem ezt akarom hanem a games táblából a title oszlopban lévőt.
lehet félreértettelek, de mentségemre szóljon h hobbiprogramozó vagyok :D

(#19270) Fundiego válasza DS39 (#19268) üzenetére


Fundiego
tag

Am igen, az az érték kerül bele aminek bele kell.

(#19271) Fundiego válasza Fundiego (#19267) üzenetére


Fundiego
tag

megvan a hiba. a GET kicsivel volt írva, amint javítottam jó lett

(#19272) mobal válasza Pulsar (#19266) üzenetére


mobal
MODERÁTOR

Amúy, absolute path-t adnék minden esetben, a "/" helyett pedig DIRECTORY_SEPARATOR-t.

"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."

(#19273) Fundiego


Fundiego
tag

php-ban meglehet oldani, hogy a schortcode változó részét egy sql lekérdezésből nyerjük?

A példám amit kiszeretnék írni: [wpdatatable id=31 var1='Nagy Antal']
A 'Nagy Antal' helyére ezt a lekérdezést szeretném beírni hogy kiadja az értéket: "SELECT nev from nev WHERE ID='$ID'"

(#19274) jannid


jannid
senior tag

Sziasztok!

Akit érdekel egy könnyű pénz kereseti lehetőség dobjon nekem egy privátot, szerintem hozzá értőnek nem tarthat pár óránál tovább és jó pénzt ajánlanék érte. :R php programozásról lenne szó.

[ Szerkesztve ]

(#19275) Tapsi válasza Fundiego (#19273) üzenetére


Tapsi
addikt

(#19276) Rolly


Rolly
veterán

Van itt valaki aki amazon ses-t használt már smtp kapcsolódással? Elvileg mindent megcsináltam de smtps levélküldésnél az alábbi hibaüzenetet kapom: SMTP Error: data not accepted.

csatlakozás tuti megy mert akkor auth hiba van...

(#19277) htc07


htc07
addikt

Sziasztok!

Igazából sosem tanították nekem a PHP-t, mindig csak google alapján hánytam össze amire épp szükségem volt, de most kifogott rajtam egy dolog, remélem tudtok segíteni, hol rontom el.

Ezt kellene kiszámolni:

Egy iskolába 1000 diák jár, és 1000 szekrény van a folyosón. Az igazgató az első napon megkéri az egyik tanulót, menjen ki a folyosóra, és nyissa ki az összes szekrényt. Ezután megkér egy másik tanulót, menjen, és minden második szekrényajtót csukjon be. Majd azt kéri egy harmadik tanulótól, hogy minden harmadik ajtót csukjon be, ha nyitva van, és nyisson ki, ha zárva. A negyedik gyerek minden negyedik ajtóhoz megy oda, és így tovább, lassan mind az ezer gyerek sorra kerül. A végén hány ajtó marad nyitva?

Ezt sikerült összedobálnom (1000 helyett 50-et használtam, hogy gyorsabban lefusson amíg rájövök mi a rossz).

<?php
$i=1; //hanyadik diak
$ajtoszam=$i; // 3: minden harmadik, 8: minden nyolcadik ajtó...
$hanydiak = 50; // hány diák, hány ciklus
$ajto=array_fill(1, $hanydiak, "1"); // 1: zart, 0: nyitott



function nyitzar($ajtoszam)
{
if($ajtoszam <= $hanydiak)
{
if($ajto[$ajtoszam] == "1")
{
$ajto[$ajtoszam] = "0";
}
else
{
$ajto[$ajtoszam] = "1";
}

$ajtoszam=$ajtoszam+$ajtoszam;
nyitzar($ajtoszam);
}

}


function hanyadik($i)
{
if($i <= $hanydiak)
{
nyitzar($ajtoszam);
$i++;
hanyadik($i);
}
}

hanyadik($i);

$eredmeny = array_count_values($ajto);
echo $eredmeny['1']. " ajto marad nyitva";
?>

Tuti hogy a function-nel rontok el valamit, az ismétlődő ciklusokkal sem volt sok dolgom eddig, meg így estére már elfáradt az agyam :N :R

A megoldást tudom, azt is hogy miért annyi, (ez google), de a kiszámolás megvalósítása lenne az érdekes számomra, nem az igazgató megkérdőjelezhető hóbortja. ;]

[ Szerkesztve ]

(#19278) Doink válasza htc07 (#19277) üzenetére


Doink
aktív tag

Iteratív megoldás:

<?php
$diakokSzama = $ajtokSzama = 50;
$ajtok = array_fill(1, $ajtokSzama, false); // false: zart, true: nyitott

for($d=1; $d<=$diakokSzama; $d++) { // minden diák
echo "<br>${d}. diák ezeket érintette: ";
for($a=$d; $a<=$ajtokSzama; $a=$a+$d) { // diák ajtói
echo $a . ",";
$ajtok[$a] = !$ajtok[$a]; // kinyitja/becsukja az ajtót (negálás)
}
}
echo "<br><br>";
echo array_sum($ajtok) . " ajto marad nyitva"; // azért működik mert átkasztolja a true-t 1-re, false-t 0-ra

Rekurzív megoldás:

<?php
$diakokSzama = $ajtokSzama = 50;
$ajtok = array_fill(1, $diakokSzama, false); // false: zart, true: nyitott

function diakLepes($d, $a){ // $d: diák, $a: ajtó
global $ajtokSzama, $ajtok;

if ($a <= $ajtokSzama) { // csak akkor ha a kapott ajtószám érvényes
echo $a . ",";
$ajtok[$a] = !$ajtok[$a]; // kinyitja/becsukja az ajtót (negálás)
diakLepes($d, $d+$a); // rekurzívan meghívjuk ugyanezt a diák következő szekrényére
}
}

for($d=1; $d<=$diakokSzama; $d++) { // minden diák
echo "<br>${d}. diák ezeket érintette: ";
diakLepes($d, $d);
}
echo "<br><br>";
echo array_sum($ajtok) . " ajto marad nyitva"; // azért működik mert átkasztolja a true-t 1-re, false-t 0-ra

[ Szerkesztve ]

(#19279) szoke12


szoke12
őstag

Sziasztok!

Nem tudom, mennyire vág témába. Van egy php weboldal, ahova beágyaztam egy élő stream-et tartalmazó youtube lejátszóablakot. Ha az oldalon megadom a youtube videó (illetve akkor még stream) linkjét, akkor azt lehet nézni a weblapon. De amikor újat indítok, akkor a youtube új videót/stream-et generál, aminek a linkje is más ugye. Ezt a linket mindig ki kell keresnem és be kell illesztenem a weblapomon, hogy mindig a legfrissebb adás legyen elérhető. Hogyan lehetne azt megoldani, hogy a frissen generált linket megszerezzem mindig a youtube-tól az adás indításakor?

Tud rá valaki megoldást? Milyen irányba induljak?

"Élj úgy, hogy ha majd lepereg előtted életed filmje, érdemes legyen végignézni!"

(#19280) cidalain válasza szoke12 (#19279) üzenetére


cidalain
veterán

Hat ez necces. Az uj video link ctrl+c ctrl+v-nel nem lesz gyorsabb megoldas
Persze ha te mondjuk forraskodba irtad a linket, es utana ftp-zgeted a fle-t, az lassu. Kell csnalni egy urlapot az oldaladra, amin keresztul frissited a linket.

>> GearBest Club Veszprém << >> https://www.facebook.com/gbc.veszprem <<

(#19281) supercow válasza szoke12 (#19279) üzenetére


supercow
őstag

Esetleg a Youtube API-ból ki tudod szedni ha saját felhasználó/videóról van szó, de nem ismerem és ahhoz komolyabb ismeretek kellenek. Pl itt van róla szó.

illetve itt mondja a YT/Google alkalmazott hogy a https://youtube.com/channel/[channel_id]/live link mindig az aktuális élő adásra mutat? Ott kéne körülnézni.

[ Szerkesztve ]

In nomine Pasta, et Fusilli, et Spaghetti Sancti. Ramen.

(#19284) radi8tor


radi8tor
MODERÁTOR

Sziasztok!

Opencart webshop téma.

Vásároltam egy témát hozzá, de nem szereti a magyar nyelvet. Ha átállítom magyarra hibaüzenetek fogadnak. Hozzátenném, hogy hu-Hu.php nem hibás, alap kivitelben működik hiba nélkül. De ezzel a témával nem. Tudtok ebben segíteni?

Oldal első betöltésénél:

Warning: Cannot modify header information - headers already sent by (output started at /home/www/clients/client1649/web5653/web/catalog/language/hu-Hu/hu-Hu.php:1) in /home/www/clients/client1649/web5653/web/catalog/controller/startup/startup.php on line 157

startup.php kódrészlet (setcookie sora a 157):

// Currency
$code = '';

$this->load->model('localisation/currency');

$currencies = $this->model_localisation_currency->getCurrencies();

if (isset($this->session->data['currency'])) {
$code = $this->session->data['currency'];
}

if (isset($this->request->cookie['currency']) && !array_key_exists($code, $currencies)) {
$code = $this->request->cookie['currency'];
}

if (!array_key_exists($code, $currencies)) {
$code = $this->config->get('config_currency');
}

if (!isset($this->session->data['currency']) || $this->session->data['currency'] != $code) {
$this->session->data['currency'] = $code;
}

if (!isset($this->request->cookie['currency']) || $this->request->cookie['currency'] != $code) {
setcookie('currency', $code, time() + 60 * 60 * 24 * 30, '/', $this->request->server['HTTP_HOST']);
}

$this->registry->set('currency', new Cart\Currency($this->registry));

Aztán ha átváltom angolra, akkor meg ezt dobja:
(csak frissítés után használható az oldal)

Warning: Cannot modify header information - headers already sent by (output started at /home/www/clients/client1649/web5653/web/catalog/language/hu-Hu/hu-Hu.php:1) in /home/www/clients/client1649/web5653/web/system/library/response.php on line 36

response.php kódrészlet (header sora a 36):

public function redirect($url, $status = 302) {
header('Location: ' . str_replace(array('&', "\n", "\r"), array('&', '', ''), $url), true, $status);
exit();
}

⭐ Stella

(#19285) radi8tor válasza radi8tor (#19284) üzenetére


radi8tor
MODERÁTOR

Megoldva, UTF8 fájlkódolási hiba volt. A szerkesztő programom UTF8-BOM kódolásban mentette el a nyelvi fájlokat. Opencart meg nagyon érzékeny erre.

⭐ Stella

(#19286) Fundiego


Fundiego
tag

Hali

Szeretnék egy táblát kiíratni, viszont az alábbi kóddal nem működik, vagy ilyet egyáltalán nem lehet h html-be mysql lehívást teszünk?
echo "<table>
<tr>
<td>Teljes név</td>
<td>.$row['telj']</td>

</tr>
<tr>
<td>Foglalkozás</td>
<td>.$row['fogl']</td>
</tr>
</table>";
ha így íratom ki akkor működik a kód echo "Teljes név: " . "<b>".$row["telj"]; csak nekem 10 sorom van és fontos a tábla elrendezés

(#19287) DS39 válasza Fundiego (#19286) üzenetére


DS39
nagyúr

php-s változóba tedd be a mysql-ből kapott értéket, azt ha idézőjelen belül beleteszed a szövegbe, fogja tudni értelmezni. de én mondjuk nem szeretem használni így, inkább megtöröm a kiírandó szöveget, mert átláthatóbb, hogy a kódban hol van használva a változó.

(#19288) Doink válasza Fundiego (#19286) üzenetére


Doink
aktív tag

A kérdésedre a válasz:

<?php
$row = [];
$row['telj'] = 'asd';
$row['fogl'] = 'ert';

echo "<table>
<tr>
<td>Teljes név</td>
<td>${row['telj']}</td>

</tr>
<tr>
<td>Foglalkozás</td>
<td>${row['fogl']}</td>
</tr>
</table>";

Ahogy én csinálnám:

<?php
$row = [];
$row['telj'] = 'asd';
$row['fogl'] = 'ert';
?>

<table>
<tr>
<td>Teljes név</td>
<td><?= $row['telj'] ?></td>

</tr>
<tr>
<td>Foglalkozás</td>
<td><?= $row['telj'] ?></td>
</tr>
</table>

Azért így csinálnám mert így a html-t is kiemeli az IDE. A <?= php 5.4 után default működik.

(#19289) Fundiego


Fundiego
tag

köszönöm a segítségeket

(#19290) cidalain válasza Fundiego (#19289) üzenetére


cidalain
veterán

Meg az nem volt, hogy a peldad miert nem mukodik:
Hianyzik par idezojel, meg par pont.

echo "
<table>
<tr>
<td>Teljes név</td>
<td>".$row['telj']."</td>
</tr>
<tr>
<td>Foglalkozás</td>
<td>".$row['fogl']."</td>
</tr>
</table>";

[ Szerkesztve ]

>> GearBest Club Veszprém << >> https://www.facebook.com/gbc.veszprem <<

(#19291) ben800


ben800
aktív tag

Sziasztok, még új vagyok php-ban, és lenne egy picit számomra komplikátabb kérdés.
Lenne egy mysql adatbázis amely folyamatosan töltődik fel értékekkel.(termékekre adott %-os kedvezmény), és ehhez csinálok most egy úgynevezett stat oldal kimutatást php-ban smarty segítségével.

A stat oldal létrehozásáig eljutottam, valamint odáig is hogy smartyban dinamikusan változik a a header a % szerint.

Itt lekérem a %-okat a headerhez, és átadom egy tömbnek.

public static function getPercentage($from, $to)
{
$percentageArray = array();

if(Validate::isDate($from) && Validate::isDate($to) && ($from <= $to))
{
$query=
'
SELECT
DISTINCT(percentage)
FROM
`'._DB_PREFIX_.self::$tableStatic.'`
WHERE
`date` BETWEEN "'.pSQL($from).'" AND "'.pSQL($to).'"
order by(percentage) asc
';

$percentageArray = Db::getInstance()->ExecuteS($query);
}
return is_array($percentageArray) ? $percentageArray : array();
}

Itt lekérem az adatokat az adatbázisból 2 dátum érték között, és ezt átadom egy tömbnek.

public static function getStat($from, $to)
{
$result = array();
if(Validate::isDate($from) && Validate::isDate($to) && ($from <= $to))
{
$query = '
SELECT *

FROM
`'._DB_PREFIX_.self::$tableStatic.'`
WHERE
`date` >= "'.pSQL($from).'" AND `date` <= "'.pSQL($to).'"
Group BY percentage
ORDER BY
`date` asc,percentage';
$result = Db::getInstance()->ExecuteS($query);

}
return is_array($result) ? $result : array();
}

Itt átadom a 2 tömböt a smartynak :)

public function getHTMLPriceStat($from, $to)
{
global $smarty;
$this->loadClass('StatPricing');
$smarty->assign(array(
'data' => StatPricing::getStat($from, $to),
'percent' => StatPricing::getPercentage($from, $to),
'id_currency' => intval(Configuration::get('PS_CURRENCY_DEFAULT'))
));
return $smarty->fetch(dirname(__FILE__) . '/templates/stat/price.tpl');
}

Adatbázis
Egy napra lekért adatok
Több napra lekért adatok
Smarty kód

Nos a problémám az volna hogyha 1 napra lekérek adatokat akkor tökéletes, viszont ha több napra akkor mint a képen is látható szétcsúszik az egész.
Először csak szimplán próbáltam a smarty-ba kiírni az adatokat, és akkor az összes sorban ahol az auto_pricing volt ugyan az lett, kivéve a manual pricing az jó lett.
Mi lehet a megoldás ?? :/
Sajnos egy bármilyen %-os értéket megadhatnak és így muszáj hogy dinamikusan változzon a header.

[ Szerkesztve ]

(#19292) pelyib válasza ben800 (#19291) üzenetére


pelyib
tag

A getStat() queryjébe biztos kell az a group by?

(Minek van ott fv. elején egy $result ha utána a DB result is abba kerül majd még rá is vizsgálsz?)

(#19293) ben800 válasza pelyib (#19292) üzenetére


ben800
aktív tag

Igen kellett, szerencsére sikerült megoldani segítséggel, csak a tömböt kellett máshogyan összeállítani, és úgy továbbküldeni a smartynak :)

Hogy őszinte legyek meglévő rendszert bővítek új funkciókkal, és az előzőekben is így csinálták, így folytattam ezt én is.

(#19294) Boryszka


Boryszka
tag

Sziasztok!

Segítségeteket szeretném kérni, hogy az alábbi php miért nem fut le a honlapomon? Nethely.hu-n van tárhelyem és annyit ír ki ha rámegyek a Submit gombra, hogy nem biztonságos kapcsolat. De a php-ban lévő kód közül semmi nem jelenik meg! Mi lehet a hiba? Köszi a segítséget előre is!

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2 ">
<html>

<head>
<title>Bejelentkezés</title>

<style type = "text/css">
body {
font-family:Arial, Helvetica, sans-serif;
font-size:14px;
}
label {
font-weight:bold;
width:100px;
font-size:14px;
}
.box {
border:#666666 solid 2px;
}
</style>

</head>

<body bgcolor = "#FFFFFF">

<div align = "center">
<div style = "width:300px; border: solid 1px #333333; " align = "left">
<div style = "background-color:#333333; color:#FFFFFF; padding:3px;"><b>Bejelentkezés</b></div>

<div style = "margin:30px">

<form action = "" method = "POST">
<label>UserName :</label><input type = "text" name = "username" class = "box"/><br /><br />
<label>Password :</label><input type = "password" name = "password" class = "box" /><br/><br />
<input type = "submit" value = " Submit "/><br />
</form>

<div style = "font-size:11px; color:#cc0000; margin-top:10px"></div>

</div>

</div>

</div>
<?php
if ($con = mysqli_connect("localhost","","")){

echo "Sikeres kapcsolódás a kiszolgálóhoz!";
}
else
{
die(mysqli_error($con));
}
if ($db = mysqli_select_db($con, 'test'))
{
echo "Sikeres kapcsolódás az adatbázishoz!";
}
else echo "Minden mező kitöltése kötelező!";
$username = $_POST['username'];
$password = $_POST['password'];

if ($username and $password) {
$result = mysqli_query($con, "SELECT * FROM login WHERE username='$username' and password='$password'");
$rows = mysqli_num_rows($result);
//printf("Select returned %d rows.\n", mysqli_num_rows($result));
if ($rows == 1) {
echo "Sikeres belépés!";
}
else echo "Hibás felhasználónév vagy jelszó!";
}
else echo "Minden mező kitöltése kötelező!";
?>
</body>
</html>

BL

(#19295) cidalain válasza Boryszka (#19294) üzenetére


cidalain
veterán

<form action = "" method = "POST">

Action = semmi.
Mit csináljon, a submitra? Post fejreszben továbbítsa az adatokat a hova? Sehova. Mert nincs megadva.

oda az aktuális fájl nevét kellene megadni.
Illetve ez a fájl php kiterjesztésű ugye? Nem html, mert úgy nem jo eleve.

[ Szerkesztve ]

>> GearBest Club Veszprém << >> https://www.facebook.com/gbc.veszprem <<

(#19296) Boryszka válasza cidalain (#19295) üzenetére


Boryszka
tag

php kiterjesztésű a fájl és az egész egy fájlban van, azért nincs az action részhez írva semmi

BL

(#19297) cidalain válasza Boryszka (#19296) üzenetére


cidalain
veterán

Akkor sem hagyhatod uresen, nem szabvanyos. Lehet hogy ez egy hanyagul konfiguralt home szerveren elmegy, de normal esetben nem jo.

Ha a fajlod akarmi.php, akkor ird bele nyugodtan ugyanazt az action-hoz

En pl a $_SERVER[PHP_SELF]-et szoktam hasznalni, ami ugye az aktualisan futo fajlnevet adja vissza relativ eleresi uttal. De mivel ez php valtozo, igy html kodba (pl nalad ez a resz html kod) kozvetlenul nem irhato, csak <? ?> koze.

Kicsit tovabbnezve a kodot, jotanacsok.
Elsonek kapcsolodsz az adatbazishoz, majd vizsgalod, hogy adott e meg felhasznalot, jelszot. Eloszor ezeket vizsgalnam, ha itt nem oke, akkor felesleges kapcsolodni a bazishoz.

$username = $_POST['username'];
$password = $_POST['password'];

if ($username and $password) {

Itt az if mindig tovabbmegy true-val szerintem
igy kellene $username=="" and $password==""

if ($db = mysqli_select_db($con, 'test'))
{
echo "Sikeres kapcsolódás az adatbázishoz!";
}
else echo "Minden mező kitöltése kötelező!

Itt az else agnal megjeleno szovegnek koze sincs a feltetelhez. Ha else aghoz jut itt, akkor a "nem sikerult az adatbazishoz csatlakozni" szoveg kell.

[ Szerkesztve ]

>> GearBest Club Veszprém << >> https://www.facebook.com/gbc.veszprem <<

(#19298) zmb668 válasza cidalain (#19297) üzenetére


zmb668
újonc

A html ajánlás ezt írja:

"4.10.18.6. Form submission

The attributes for form submission that may be specified on form elements are action, enctype, method, novalidate, and target.

The action and formaction content attributes, if specified, must have a value that is a valid non-empty URL potentially surrounded by spaces.

The action of an element is the value of the element’s formaction attribute, if the element is a Submit Button and has such an attribute, or the value of its form owner’s action attribute, if it has one, or else the empty string."

Félre ne érts, nem kötözködni akarok. Kíváncsiságból megnéztem, hogy az ajánlás mit mond, és az idézett szövegek alapján nem kötelező.

(#19299) cidalain válasza zmb668 (#19298) üzenetére


cidalain
veterán

De ha t itt is az van irva hogy kotelezo :F

The action and formaction content attributes, if specified, must have a value that is a valid non-empty URL potentially surrounded by spaces.

Ha meg van adva, akkor muszaj erteket adni neki, ami egy nem ures ervenyes URL, es nem lehet benne space sem.

A kovi bekezdesben arrol van szo,hogy az action element egy submit button elementje, es ez esetleg ugyanaz mint az o owner formjanak, na akkor uresen lehet hagyni.

>> GearBest Club Veszprém << >> https://www.facebook.com/gbc.veszprem <<

(#19300) Boryszka válasza cidalain (#19297) üzenetére


Boryszka
tag

Köszi!

Kicsit kapkodva csináltam, mert idegesített hogy nem működik sehogy sem! Kicsit lenyugodva és jobban átgondolva/átnézve megtaláltam a hibát. Már fut szépen! Annyi, hogy egy másik fájlba tettem az adatbázishoz kapcsolódó kódokat!

Köszi a segítséget!

BL

Útvonal

Fórumok  »  Szoftverfejlesztés  »  PHP programozás (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.