Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP ongelma unexpected 'htmlspecialchars'

Sivun loppuun

Juhku [09.09.2013 07:51:22]

#

Moi!

Tiedän, että tämä on vähän vähä pätöinen kysymys, mutta apua tarvitsisin.
(ja kyllä etsin apua jo Goglesta)
Eli error on tälläinen

Parse error: syntax error, unexpected 'htmlspecialchars' (T_STRING) in *** on line 109

(tuossa *** on osoite, mutta sitähän ette tarvitse)
Koodi on tälläinen

$response = $status->getStatus('' htmlspecialchars($tulos["ip"]) '',  htmlspecialchars($tulos["portti"]) );

Tarkoitus on siis hakea sivu.php?id="id" tyylillä tuo ip ja portti. Siellä on myös paljon muuta tavaraa, jonka sain ulos, ECHOn avulla, mutta tähän status juttuun en saa millään printattua tuota iptä ja portti. Ne näkyvät tieto kanssa ja saan printattua ne ECHOn avulla.

Kiitos jo etukäteen vastauksista!

vesikuusi [09.09.2013 07:58:09]

#

Puuttu pilkku siitä edestä.

$response = $status->getStatus('', htmlspecialchars($tulos["ip"]), '',  htmlspecialchars($tulos["portti"]) );

Edit. Puuttui myös sen (htmlspecialchars) jälkeen. Olettaen, että se ja nuo tyhjät merkkijonot ovat eri parametreja eivätkä katenoitava merkkijono. Parametrit erotellaan pilkuilla, ja merkkijonot yhdistetään yhdeksi merkkijonoksi pisteoperaattorilla (.).

"Hello, " . "World!" // => "Hello, World!"

Mutta oletan, että tässä on kysymys erillisistä parametreista, koska ei olisi mitään järkeä katenoida merkkijonoa tyhjiin merkkijonoihin ja päinvastoin.

Juhku [09.09.2013 08:06:23]

#

Edistystä, nyt ei tule enää erroria, mutta se näyttää, että se on kiinni. (Vaikka ei ole)
Tässähän on tuo "alkuperäinen" koodin pätkä

$response = $status->getStatus('111.111.111.111.111', 11111);

Tietysti nuo 1 sitten vaihdetaan oikeisiin lukuihin.
Kiitos, Vesikuusi

Metabolix [09.09.2013 08:08:37]

#

Ota koko '':t pois koodista. Tuossa ei pidä käyttää myöskään htmlspecialchars-funktiota, vaan ihan pelkät muuttujat riittävät. Funktiota htmlspecialchars tarvitaan yleensä vain silloin, kun tekstiä tulostetaan sivulle (echo tms.) tai muuten vain muutetaan HTML- tai XML-koodiksi.

uta [09.09.2013 08:14:42]

#

Lataa jokin IDE jossa on error highlight (esim. Netbeans, PhpStorm), niin ei tarvitse pällistellä syntaksivirheitä tuntitolkulla ihan turhan takia.

Juhku [09.09.2013 08:21:40]

#

Minkälaista muuttuja tarkoitat Metabolix? Ja uta käytän notepad++

vesikuusi [09.09.2013 08:38:01]

#

Metabolix tarkoittaa, että muutat kohdan

htmlspecialchars($tulos["ip"])

Tällaiseksi:

$tulos["ip"]

Eli pelkkä muuttuja ilman, että sitä ajetaan minkään funktion läpi. Sama juttu portille.

Juhku [09.09.2013 08:47:57]

#

Muutin koodin tälläiseksi, mutta mitään muutosta ei tapahtunut.

$response = $status->getStatus('', $tulos["ip"], '',  $tulos["portti"] );

Kun taas laitan näin.

$response = $status->getStatus('111.111.111.111.111', 11111);

Niin se toimii.

groovyb [09.09.2013 08:56:02]

#

miksi nuo hipsut?

jos kerran seuraava toimii:

$response = $status->getStatus('111.111.111.111.111', 11111);

mutta seuraava ei:

$response = $status->getStatus('', $tulos["ip"], '',  $tulos["portti"] );

Niin eikö kannattaisi kokeilla seuraavaa?

$response = $status->getStatus($tulos["ip"],$tulos["portti"] );

The Alchemist [09.09.2013 09:14:07]

#

Ei tässä kannata kokeilla yhtään mitään, vaan istutaan sormi aukossa kunnes joku sherlokki tulee ja korjaa mun virheet.

Lebe80 [09.09.2013 10:29:26]

#

The Alchemist kirjoitti:

Ei tässä kannata kokeilla yhtään mitään, vaan istutaan sormi aukossa kunnes joku sherlokki tulee ja korjaa mun virheet.

Harvinaisen totta nykyaikana. Lopusta puuttuu vaan huudot: "Eikö kukaan osaa neuvoa? Luulis et joku Ohjelmointiputkas osais, mut näemmä tarvii pettyä teihinkin. Olis vähän kiire!"

tmub [09.09.2013 10:59:14]

#

Aika kyynistä, Late oli sittenkin oikeassa.

Lebe80 [09.09.2013 11:00:35]

#

tmub kirjoitti:

Aika kyynistä, Late oli sittenkin oikeassa.

Late arvasi oikein, tai ehkä se vaan tiesi.

Juhku [09.09.2013 18:04:18]

#

$response = $status->getStatus($tulos["ip"],$tulos["portti"] );

Ei toimi tuollakaan... Onko tosiaan näin, että tähän ei ole ratkaisua?

Macro [09.09.2013 18:10:08]

#

No nyt errori ei varmaan liity siihen funktioon, niin mikä on tulos nyt?

The Alchemist [09.09.2013 18:18:06]

#

Juhku kirjoitti:

$response = $status->getStatus($tulos["ip"],$tulos["portti"] );

Ei toimi tuollakaan... Onko tosiaan näin, että tähän ei ole ratkaisua?

Ratkaisu on se, että debuggaat itse omaa koodiasi. Pitääkö näin alkeellisista asioista oikeasti vääntää rautalankamallit? Tulosta muuttujat, katso mikä meni väärin.

P.S. '111.111.111.111.111' ei edes ole ip-osoite, joten jos tuolla toimii, niin asiat voivat olla pahemman kerran vinksallaan.

Juhku [09.09.2013 18:26:57]

#

Sain sen toimimaan tällä

$response = $status->getStatus(''. $tulos["ip"]. '',  $tulos["portti"] );

Kiitos, kumminkin kaikille, jotka yritti! :)

Metabolix [09.09.2013 18:41:03]

#

Luitko edes kunnolla? ”Ota koko '':t pois koodista.” Myös järkeä voi käyttää: nyt lisäät muuttujan alkuun ja loppuun tyhjän tekstin, mikä on ihan turhaa. Uskon, että aiemman viestisi koodi olisi toiminut mutta teit vain samalla jonkin muun virheen ja siksi luulit, ettei se toimi.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta