Page 8 of 11

Re: PHP-ongelmat

Posted: Sun Jun 19, 2011 10:40 pm
by esa94
Feuer wrote:Muistanko aivan väärin, vai eikös korrekti osoite portissa 80 elävään palvelimeen ole localhost:80 eikä silkka localhost?
Onhan toki.

Kuten myös coolbasic.comin korrekti osoite on http://coolbasic.com:80/

Re: PHP-ongelmat

Posted: Sun Jun 19, 2011 10:46 pm
by Pettis
Feuer wrote:Muistanko aivan väärin, vai eikös korrekti osoite portissa 80 elävään palvelimeen ole localhost:80 eikä silkka localhost?
HTTP-yhteydet menevät oletuksena selaimissa porttiin 80 ellei porttia määritellä. Jos muuten localhost ei toimi, niin kannattaa kokeilla IP-osoitetta 127.0.0.1.

Noissa palvelinhommissa kannattaa huomioida, että joissain tapauksissa jotkin sovellukset käyttävät porttia 80, jolloin palvelin ei pysty siihen itseään laittamaan. Kannattaa katsoa palvelimen logeista, että mitä se sinne on käynnistyksen yhteydessä kirjoitellut, jos kaikki ei toimi ongelmitta.

Re: PHP-ongelmat

Posted: Sun Jun 19, 2011 10:50 pm
by valscion
Pettis wrote:Noissa palvelinhommissa kannattaa huomioida, että joissain tapauksissa jotkin sovellukset käyttävät porttia 80, jolloin palvelin ei pysty siihen itseään laittamaan. Kannattaa katsoa palvelimen logeista, että mitä se sinne on käynnistyksen yhteydessä kirjoitellut, jos kaikki ei toimi ongelmitta.
Itse tykkään testipalvelinta pyöritellä osoitteessa 8080 tai jossain muussa kuin oletuksessa. Tällöin ei palvelin vahingossa häiritse muita ohjelmia, joita sama 80-portti kiinnostaisi.

Re: PHP-ongelmat

Posted: Mon Jun 20, 2011 8:16 pm
by axu
Kokeilin nyt sitten laittaa Apachea uudestaan, mutta PHP vastusti kovasti :D Lopulta sain senkin toimimaan, joten nyt voin alkaa hommiin!
BTW Pettis, kannattaako viitata viestissä allekirjoitukseen, kun sen sisältö voi vaihtua, ja joillakin (esim. itselläni) on käytössä asetus joka piilottaa allekirjoitukset? Ihan pätevän oloiset sivut muuten, jos tulee jotain mieleen niin rekkaan sinne että sais vähän eloa se paikka ;)

Re: PHP-ongelmat

Posted: Mon Jun 20, 2011 10:10 pm
by Pettis
axu wrote:BTW Pettis, kannattaako viitata viestissä allekirjoitukseen, kun sen sisältö voi vaihtua, ja joillakin (esim. itselläni) on käytössä asetus joka piilottaa allekirjoitukset? Ihan pätevän oloiset sivut muuten, jos tulee jotain mieleen niin rekkaan sinne että sais vähän eloa se paikka ;)
No vaihdan allekirjoitusta varmaan kerran vuodessa. Mutta tässä vielä osoite: http://www.webmasterfoorumi.fi/

Re: PHP-ongelmat

Posted: Sat Jul 16, 2011 9:54 am
by Feuer
Miksi seuraavan funktion

Code: Select all

			private $content = array();
			
			public function addContent($some_content)
			{
				$this->$content[] = $some_content;
			}
kutsuminen seuraavasti

Code: Select all

parent::addContent("<b style=\"color: #FF0000;\">HELLO DEAR OLD WORLD</b>");
tuo seuraavan errorin:
PHP wrote:Fatal error: Cannot use [] for reading
? Jos lukisin virheilmoituksen osoittamalla rivillä, olisi ilmoituksessa jotain järkeä, mutta kun virheilmoitus osoittaa tuon addContentin ainoalle riville, jossa yritän lisätä taulukkoon dataa.
EDIT:

Terve vaan, jos osaisin syntaksin ennenkuin yritän tehdä jotain :roll: Oikea tapa viitata olion kenttiin on $this->foo eikä $this->$foo


Re: PHP-ongelmat

Posted: Sun Jul 24, 2011 7:04 pm
by DJ-Filbe
Kuinkahan mahtaisi onnistua merkkijonosta pätkän hakeminen seuraavalla tavalla:

str_parse_str("pitkä merkkijono...xx.. pitkä merkkijono", "merkkijono", "pitkä");
//palauttaa "...xx.. "

eli ensin etsitään ensimmäinen esiintymä merkkijonosta (parametri2) ja tätä seuraava esiintymä merkkijonosta (parametri3), ja palautetaan merkkijono, johon kuuluu väliin jäävä osa merkkijonosta.

Kysyn siis valmista funktiota.

Re: PHP-ongelmat

Posted: Sun Jul 24, 2011 7:32 pm
by MetalRain
DJ-Filbe wrote:Kuinkahan mahtaisi onnistua merkkijonosta pätkän hakeminen seuraavalla tavalla:
str_parse_str("pitkä merkkijono...xx.. pitkä merkkijono", "merkkijono", "pitkä");
//palauttaa "...xx.. "

eli ensin etsitään ensimmäinen esiintymä merkkijonosta (parametri2) ja tätä seuraava esiintymä merkkijonosta (parametri3), ja palautetaan merkkijono, johon kuuluu väliin jäävä osa merkkijonosta.

Kysyn siis valmista funktiota.
Php:n String funktiot auttanevat tässä. Voit vaikka käyttää explodea haluttuun merkkijonoon molempien avainsanojen suhteen.

Code: Select all

 <?php 

   function str_parse_str($txt,$start,$end) {
      $txtarr = explode($start,$txt);
      $txtarr = explode($end,$txtarr[1]);
      return $txtarr[0];
   }
   
   $testtxt = "pitkä merkkijono...xx.. pitkä merkkijono";
   
   echo str_parse_str($testtxt,"merkkijono","pitkä");
   
?> 
Tietenkin kannattaa myös miettiä haluaako jossain tapauksissa käsitellä useita tälläisiä esiintymiä tai millaista virheilmoitusta kannattaa laittaa mikäli esiintymiä ei ole. Esimerkiksi jos str_parse_str("alku a loppu alku b loppu","alku", "loppu") saatettaisiin joskus haluta saada selville myös toinen esiintymä "b".

Re: PHP-ongelmat

Posted: Sun Jul 24, 2011 7:41 pm
by DJ-Filbe
Tuota yritin ja unohdin tietysti että PHP haluaa parametreja eri järjestyksessä kuin oletin ja eräästä ohjeesta luin... :shock:
Kiitos kovasti :)

Re: PHP-ongelmat

Posted: Mon Aug 15, 2011 6:42 pm
by peehoopee
Mikähän mahtaa olla ongelma?

Code: Select all

<?php
 
$th = fopen("Visitors.txt", "r");
   $maarat = fgets($tt, 1024);
fclose($th);
 
$maara = $maarat + 1
 
$ip = $_SERVER['REMOTE_ADDR'];
$host = $_SERVER['REMOTE_HOST'];
$HUA = $_SERVER['HTTP_USER_AGENT'];
$aika = date("Y-m-d H:i:s");
 
if ($ip === " *oma ip osoitteeni* ")
  $ip = "Ylläpitäjä";
 
$tt = fopen("VisitorData.txt", "a");
    fwrite($tt, "\n ----------------------------------------");
    fwrite($tt, "\n Time: $aika");
    fwrite($tt, "\n IP: $ip");
    fwrite($tt, "\n Host: $host");
    fwrite($tt, "\n HTTP user agent: $HUA");
    fwrite($tt, "\n Visiter number: $maara");
    fwrite($tt, "\n ----------------------------------------");
fclose($tt);
 
$ts = fopen("Visitors.txt", "w");
    fwrite($ts, "$maara");
fclose($ts);
 
?>
Tämmöstä erroria heittää:
Parse error: syntax error, unexpected T_VARIABLE in /home/a8427277/public_html/index.php on line 23
Rivi 23 on siis: "$ip = $_SERVER['REMOTE_ADDR'];"
Olen siis uusi php:ssä ja en tosiaankaan tajua miksi se tuota...

Re: PHP-ongelmat

Posted: Mon Aug 15, 2011 6:45 pm
by Feuer

Code: Select all

$maara = $maarat + 1
Pitäisi rivin päässä olla ; - merkki

Re: PHP-ongelmat

Posted: Tue Sep 06, 2011 7:03 pm
by Laurenzo
Vieraskirjassa http://laurenzo.arkku.net/gosti.php Roskapostia :cry:
Kuinka vieraskirjasta voi poistaa viestejä?

Re: PHP-ongelmat

Posted: Tue Sep 06, 2011 7:05 pm
by esa94
Laurenzo wrote:Vieraskirjassa http://laurenzo.arkku.net/gosti.php Roskapostia :cry:
Kuinka vieraskirjasta voi poistaa viestejä?
Kuinka vieraskirja on toteutettu?

Re: PHP-ongelmat

Posted: Tue Sep 06, 2011 8:20 pm
by Peltsi
Laurenzo wrote:Vieraskirjassa http://laurenzo.arkku.net/gosti.php Roskapostia :cry:
Kuinka vieraskirjasta voi poistaa viestejä?
Laita vieraskirjaasi tarkistuskysymys joka estää botteja kirjoittelemasta.

Re: PHP-ongelmat

Posted: Mon Nov 14, 2011 2:27 pm
by Feuer
Miksei PHP anna kutsua julkista yläluokan konstruktoria? :roll:

Code: Select all

class DB 
{
    private $pdo = null;

    protected function getPdo()
    {
        return $this->pdo;
    }


    public function __construct() 
    {
        try
        {
            $opt = array(
                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'");

            $this->pdo = new PDO("mysql: host=localhost; dbname=tietokanta","feuer","minun_salasanani", $opt);
        }
        catch(PDOException $ex)
        {
            DIE("Tietokantayhteys epäonnistui");
        }            
    }
}
ja perivä luokka

Code: Select all


require_once "DB.php";

/**
 * Laajentaa DB:tä lautaan liittyvillä metodeilla.
 *
 * @author Feuer
 */
class Lauta extends DB
{
    public function __construct() 
    {
        parent::__construct();
    }
}
 
new Lauta() - kutsu johtaa seuraavaan erroriin: Fatal error: Cannot call constructor in _kehityspröngin_sijainti_palvelimella_/Tietokanta/Lauta.php on line 14

ja rivi neljätoista on tuo Lauta-konstruktorin parent::__construct(); - kutsu.

Re: PHP-ongelmat

Posted: Mon Nov 14, 2011 5:48 pm
by valscion
Minulla tuo kyllä toimii. Etsimäsi virhe ei ole tuossa kohtaa, tai sitten PHP-versiosi on liian vanha. Testasin ajaa tuon koodisi, lisäsin perään rivin

Code: Select all

$test = new Lauta(); 
ja PHP ilmoitti vain että Tietokantayhteys epäonnistui.

EDIT: Oiskohan mahdollista että sinulla olisi toinen DB luokka tai jotkut muut nimiavaruudet kolaroivat keskenään? Ilman täyttä koodia on mahdotonta sanoa tätä varmuudella mutta sitä ei vissiin kyllä kannata tänne laittaa.

Re: PHP-ongelmat

Posted: Fri Nov 18, 2011 8:00 pm
by Feuer
:roll:

Ongelma oli kansioihin jaetuissa kooditiedostoissa ja väärillä poluilla asetelluissa require_onceissa, jotka eivät huutaneet erroria vaikka tiedostoa ei löytynytkään.

Re: PHP-ongelmat

Posted: Fri Nov 18, 2011 8:14 pm
by valscion
Feuer wrote::roll:

Ongelma oli kansioihin jaetuissa kooditiedostoissa ja väärillä poluilla asetelluissa require_onceissa, jotka eivät huutaneet erroria vaikka tiedostoa ei löytynytkään.
Kannattaa kyllä koodatessa laittaa se virheitten raportointi päälle heti.

http://fi2.php.net/manual/en/function.e ... orting.php

Code: Select all

<?php
// Tämä kaiken koodin eteen:
error_reporting( E_ALL );
?>

Re: PHP-ongelmat

Posted: Fri Nov 18, 2011 8:20 pm
by TheFish
VesQ wrote:
Feuer wrote::roll:

Ongelma oli kansioihin jaetuissa kooditiedostoissa ja väärillä poluilla asetelluissa require_onceissa, jotka eivät huutaneet erroria vaikka tiedostoa ei löytynytkään.
Kannattaa kyllä koodatessa laittaa se virheitten raportointi päälle heti.

http://fi2.php.net/manual/en/function.e ... orting.php

Code: Select all

<?php
// Tämä kaiken koodin eteen:
error_reporting( E_ALL );
?>
Lienee parempi laittaa ne kehitysympäristössä päälle php.inin kautta.

Re: PHP-ongelmat

Posted: Fri Nov 18, 2011 9:54 pm
by Feuer
Kyllähän minulla on erään joka sivulle sisällytettävän headerin ensimmäisinä riveinä seuraava

Code: Select all

ini_set("display_errors", 1);
ini_set("error_reporting", E_ALL | E_STRICT);
 
mutta kun joku idiootti sisällytti tuossa selaimen pyytämässä sivussa, jossa ongelmaa esiintyi, ensin tietokantaluokat ja sitten vasta edellämainitun headerin, jolloin virheilmoitusten ilmestyminen on luonnollisesti vähän niin ja näin 8-) Jäi vain ihmetyttämään, että kun require_once ei tiedostoa löytänyt, se ei tappanut skriptin suoritusta, kuten [url=http://www.php.net/manual/en/function.require.php]dokumentaationurl] mukaan sen olisi ymmärtääkseni pitänyt tehdä ilman error-reporting-asetuksiakin.