Kezdőoldal » Számítástechnika » Programozás » Segítséget kérnék! PHP:...

Segítséget kérnék! PHP: valami konkatenációs hiba a value-nál? Parse és syntax errort kapok. (Az eljárások jók és működnek sima HTML-be teszteltem!)

Figyelt kérdés

$form = '<form method="post">

<label>

<span>Név: </span>

<input type="text" name="name" placeholder="Gipsz Jakab" value="'.echo getValue('name');.'">'

.echo getError('name');.

'</label>';



2021. szept. 18. 11:21
1 2
 1/13 A kérdező kommentje:

a form is le van zárva és echoval is ki van íratva:


$form .= </form>;


echo $form;

2021. szept. 18. 11:23
 2/13 anonim ***** válasza:

Én még nagyon régen PHP-ztam, de akkor úgy használtuk, hogy a html tag-eket nem idézőjel, hanem aposztróf közé tettük.

Persze nem tudom, új szabványokkal működik-e, meg jó-e.

például <form method='post'> lenne ...="post" helyett. kipróbálni érdemes lehet.

2021. szept. 18. 11:54
Hasznos számodra ez a válasz?
 3/13 anonim ***** válasza:

Nem azért, mert nincs különválasztva a php és html kód?

Én régen ugyan, de így használtam:


<input type="text" name="name" placeholder="Gipsz Jakab" value="' <?php echo getValue('name'); ?>'">'


Bár nekem elég felületes a php tudásom.

2021. szept. 18. 12:00
Hasznos számodra ez a válasz?
 4/13 anonim ***** válasza:
35%

Ha voltál annyira terhelt, hogy olyan kódot írjál, ami 2 soros és 5-10-15 percig kell bogozni egyáltalán, hogy átlásd melyik " vagy ' meddig tart, akkor legyen türelmed végignézni, és kikeresni azt, hogy hol b*sztad el.


Ki tanította neked ezt?

2021. szept. 18. 12:22
Hasznos számodra ez a válasz?
 5/13 anonim ***** válasza:
0%

Amúgy meg tessék, de ez egy okádék:


<?php

function getValue() {

return '1';

}


function getError() {

return 's';

}


$form =

'<form method="post">

<label>

<span>Név: </span>

<input type="text" name="name" placeholder="Gipsz Jakab" value="'

. getValue() . '">'. getError(). '</label>';


echo $form


?>

2021. szept. 18. 12:26
Hasznos számodra ez a válasz?
 6/13 anonim ***** válasza:

Valahogy így:

[link]

a gondot feltehetőleg az okozza, hogy a $form csak egy karakterláncot tartalmazó változó, amikor hozzáfűzöd a getValue() és getError() függvényeket, akkor nem kell eléjük echo, hisz a karakterlánchoz a függvények visszatérési értéke kerül hozzáfűzésre, az elébük rakott echo meg nem tér vissza visszatérési értékkel (lásd itt: [link] a "Return Values" fejezetet)

2021. szept. 18. 12:57
Hasznos számodra ez a válasz?
 7/13 anonim ***** válasza:
0%
A hatos milyen szépen kikommentelte az ötös kódját, ami már syntax error nélkül lefordult már amúgy is...
2021. szept. 18. 19:29
Hasznos számodra ez a válasz?
 8/13 anonim ***** válasza:

#7: Bár hasonlít, de nem az ötös kódját kommenteztem ki, a sajátomat.

Más függvénydeklarációk, ettől fogva máshogy került hozzáfűzésre a karakterláncban, a kódmegosztó oldal révén megmaradt az indentálás és lezárásra került a <form> tag.

2021. szept. 18. 19:56
Hasznos számodra ez a válasz?
 9/13 anonim ***** válasza:

Komolyan senki nem veszi észre a nyilvánvaló hibát a kódban?

Ha egy karakterláncot fűzöl össze, akkor ugye egyrészt az echo nem lesz jó, mert az az outputra adja ki a tartalmat nem pedig visszatérési értékben, másrészt összefűzésnél nem kell a pontosvessző, hiszen az a kifejezés végét jelzi, azaz utána a . már nyilván szintaktikai hiba lesz.


Helyesen tehát:

$form = '<form method="post"><label><span>Név: </span><input type="text" name="name" placeholder="Gipsz Jakab" value="'.getValue('name').'">'.getError('name').'</label>';


De még ehhez is hozzátenném, hogy PHP változókba darabonként pakolgatni a HTML tartalmat nem jó megoldás, szűretlen user inputot meg pláne nem pakolunk közvetlenül sehova.

Ha ezt JÓL akarod csinálni, akkor a PHP és HTML vegyítése helyett templateket (pl. Smarty, Blade) használsz.

2021. szept. 19. 16:30
Hasznos számodra ez a válasz?
 10/13 anonim ***** válasza:
9 nem értem miről beszélsz. Egy stringként visszatérő expression ugyan úgy lehet egy másik string része. Miért ne lehetne? A srác össze vissza pakolgatta a ', és a " karaktereket és eltévedt bennük. Ennyi történt.
2021. szept. 19. 16:32
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!