Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP 5.2 ja mysql_connect

Sivun loppuun

pistemies [31.12.2006 01:41:25]

#

Mikä mahtaa olla vialla että minulla tökkää sivun tulostus siihen, kun otetaan yhteyttä mysql-palvelimeen? Ei ilmoita mitään virheitä. Käytän php5-cgi:tä, koska php5apache2.dll ei yksinkertaisesti suostunut löytymään vaikka se oli oikeassa kohtaa ja vähän muuallakin...

Niko [31.12.2006 13:53:47]

#

Laita virheet päälle. (display_errors On)

pistemies [31.12.2006 18:47:32]

#

Ilmoittaa varsin outoja virheitä: Moittii kaikkia $_GET -muuttujia. Ei tunnista ollenkaan mysql_connect-funktiota. Testi-juttu "Hello world!" toimii.

Onkohan tuo php 5.2 asentunut ihan oikein? Tarvitaanko php:n asentamiseen CGI:nä muuta kuin nämä rivit:

# For PHP 5 do something like this:
ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
# For PHP 5
Action application/x-httpd-php "/php/php-cgi.exe"

Muita minä en tuosta tutoriaalista löytänyt. Onko kukaan asentanut tätä vastaavasti (siis ei moduulina). Apache- terminaaliin ei tulostu mitään tekstiä.

Ps. phpinfo() myös toimii.

Opiskelija [31.12.2006 19:42:16]

#

Oletkos muokannut php.inistä tarvittavat jutut?
Siis ;extension=php_mysql.dll edestä ; pois ja extension_dir kohtaan polku missä nuo laajennokset on.

Apachen conffiin kannattaa myös lisätä PHPIniDir "C:/php/" tai mihkä nyt PHP:n olet asentanut ja tuo php.ini löytyy.

pistemies [31.12.2006 19:57:46]

#

Opiskelija kirjoitti:

Oletkos muokannut php.inistä tarvittavat jutut?
Siis ;extension=php_mysql.dll edestä ; pois ja extension_dir kohtaan polku missä nuo laajennokset on.

Apachen conffiin kannattaa myös lisätä PHPIniDir "C:/php/" tai mihkä nyt PHP:n olet asentanut ja tuo php.ini löytyy.

Kiitos! Tuo ensiksi mainittu minulta puuttui! Luulin sen liittyvän pelkästään kotikoneella toimivaan mysql-palvelimeen. Lisäksi kopioin tiedoston php5ts.dll windowsin system-kansioon.

Piti ottaa kovasti noita virheilmoitukisa pois käytöstä, notice, e_all jne, jotka olin laittanut päälle. Nyt ei näytä mitään virhettä, toivottavasti kuitenkin toimii..

PS. Jokin noista, kuten tämä: error_reporting = E_ALL on pakko olla päällä. Muuten jopa skripti <?php BYYYYYYYYÄÄH ?> ei ilmoita mitään virheilmoitusta. Kysymys kuuluukin: miten saan nuo $_GET ym. vastaavat muuttujat toimimaan php 5.2:ssa? Ne ilmoittaa seuraavaan tapaan:

Notice: Undefined index: id in C:\Ohjelmatiedostot\ApacheGroup\...\index.php

Tässä on kyseessä muuttuja:

$_GET['id']

Opiskelija [31.12.2006 20:38:08]

#

error_reporting = E_ALL & ~E_NOTICE
katsoppas https://www.php.net/manual/fi/ref.errorfunc.php­#e-strict niin saat nuo ilmoitukset haluamaksesi.

Tai sitten koodin vaik if(isset($_GET['id']))...

Wizard [31.12.2006 21:01:58]

#

Miksi pitää ottaa virheilmoituksia pois päältä? Juuri sen takia ne on käteviä jotta tietää koodin toimivan. Sitten ei tarvitse ihmetellä, että miksi koodi ei tee sitä mitä sen halutaan tekevän...ja lisäksi Apachessa ne virheilmoitukset kirjoitetaan error_logiin joka tapauksessa.

Olenpa tässä hiljattain taistellut suomalaisen yrityksen kanssa siitä, että heidän softatoimittajansa tekee niin ala-arvoista koodia, että virhelogi täyttää 4-5 kertaa nopeammin kuin access_log. Viimeksi tyhjensin 2 gigan virhelogin palvelimelta. :o Selityksinä sitten mitä ihmeellisimpiä tarinoita ja sitä kuinka operaattori asentaa palvelimia miten sattuu jne jne.


-W-

pistemies [31.12.2006 21:33:32]

#

Wizard kirjoitti:

Miksi pitää ottaa virheilmoituksia pois päältä? Juuri sen takia ne on käteviä jotta tietää koodin toimivan. Sitten ei tarvitse ihmetellä, että miksi koodi ei tee sitä mitä sen halutaan tekevän...ja lisäksi Apachessa ne virheilmoitukset kirjoitetaan error_logiin joka tapauksessa.

Olenpa tässä hiljattain taistellut suomalaisen yrityksen kanssa siitä, että heidän softatoimittajansa tekee niin ala-arvoista koodia, että virhelogi täyttää 4-5 kertaa nopeammin kuin access_log. Viimeksi tyhjensin 2 gigan virhelogin palvelimelta. :o Selityksinä sitten mitä ihmeellisimpiä tarinoita ja sitä kuinka operaattori asentaa palvelimia miten sattuu jne jne.


-W-

Jes. Tutkin tuossa, että tuo E_ALL täytyy olla päällä. Ja totesin, että homma tästä hoituu, kun jaksaa muutella tuon isset-funktion kaikillle globaaleille muuttujille,...

pistemies [31.12.2006 22:40:17]

#

Vähän joutuu miettimään, miten tuon eri alasivujen linkit tulostaisi...

Ps. Yksi ratkaisu on käyttää näitä.
$_SERVER['QUERY_STRING'] ja parse_str

tsuriga [01.01.2007 02:13:05]

#

Hyvä on tehdä koodista niin sujuvaa, ettei se tuota virheilmoituksia vaikka olisikin E_ALL päällä. Ja kyllä se php5apache2.dll sieltä löytyy, katso PHP:n asennusohje Apassiin Ohjelmointiputkasta, sieltä meikän kommentti, jossa puhun apachefriendsista tms. (linkki). Pitää muistaakseni kopioida vanhemman/uudemman PHP:n dll. Itse taisin vääntää yhteen kolmen eri version tiedostoja, hyvin toimi :).

pistemies [01.01.2007 22:03:52]

#

tsuriga kirjoitti:

Hyvä on tehdä koodista niin sujuvaa, ettei se tuota virheilmoituksia vaikka olisikin E_ALL päällä. Ja kyllä se php5apache2.dll sieltä löytyy, katso PHP:n asennusohje Apassiin Ohjelmointiputkasta, sieltä meikän kommentti, jossa puhun apachefriendsista tms. (linkki). Pitää muistaakseni kopioida vanhemman/uudemman PHP:n dll. Itse taisin vääntää yhteen kolmen eri version tiedostoja, hyvin toimi :).

En taida jaksaa enää ruveta tuon moduulin kanssa painia heittämään. Tällä hetkellä näyttää toimivan tämä asennus CGI:nä.
Noihin virheimoituksiin: näyttäisi vähän siltä, että monilla muuttujilla, varsinkin taulukkomuuttujilla, kuten $file[$i] pitää olla jonkilainen tarkistus(ellei laita @-merkkiä), jotta ei heitä virhettä. Onko se sitten sitä oikeaoppista php:tä? En tiedä...


Sivun alkuun

Vastaus

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

Tietoa sivustosta