PHP:hen
PHP:hen
Onko mitään mahdollisuutta suorittaa PHP scriptejä serveriltä coolbasicilla?
Mietin vaan, kun tarvitsisin tohon peliin tälläista, että voisi esim.luoda käyttäjän pelin kautta.
Päätin nyt kysäistä ennen kuin alan kokeilemaan, koska jos en se ei toimikkaan, jään yrittämään sitä moneksi viikoksi enkä koskaan luovuta.
Ei siis tietenkään coolbasicin omilla funktioilla, mutta tällä cbNetwork.dll:n funktioilla SAATTAISI saada jotenkin säädettyä.
Mutta en kyllä usko, että saa mitenkään toimimaan.
Olisi kiva jos saisin vastauksen nopeasti. Kiitos
Mietin vaan, kun tarvitsisin tohon peliin tälläista, että voisi esim.luoda käyttäjän pelin kautta.
Päätin nyt kysäistä ennen kuin alan kokeilemaan, koska jos en se ei toimikkaan, jään yrittämään sitä moneksi viikoksi enkä koskaan luovuta.
Ei siis tietenkään coolbasicin omilla funktioilla, mutta tällä cbNetwork.dll:n funktioilla SAATTAISI saada jotenkin säädettyä.
Mutta en kyllä usko, että saa mitenkään toimimaan.
Olisi kiva jos saisin vastauksen nopeasti. Kiitos
Re: PHP:hen
Luonnollisesti tiedostoon sijoitettu php-skripti suoritetaan, kun kyseistä tiedostoa haetaan serveriltä. Käsittääkseni cbNetworkilla pystyy kyllä tiedostoja lataamaan.
CoolBasic henkilökuntaa
Kehittäjä
CoolBasic Classic
Kehittäjä
CoolBasic Classic
Re: PHP:hen
Mietin vähän itsekin samaa asiaa, mutta saisiko joltain vielä vahvistuksen että näin voi tehdä.Ilmuri wrote:Luonnollisesti tiedostoon sijoitettu php-skripti suoritetaan, kun kyseistä tiedostoa haetaan serveriltä. Käsittääkseni cbNetworkilla pystyy kyllä tiedostoja lataamaan.
Kiitos
-
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 3:53 pm
- Location: Suomi, Finland
- Contact:
Re: PHP:hen
voi tehdä! tein oman irc ohjelmankin mutta lopetin kun tuli liian vaikeaksi
Re: PHP:hen
Vielä yksi kysymys.
Näin ei varmaan voi tehdä, että jos luodaan käyttäjää ohjelmalla ja tarkistetaan PHP:llä onko nimimerkki käytössä.
Jos on niin lähetetään PHP:llä tieto ohjelmalle, muuten jatketaan eteenpäin.
Siis, VOIKO PHP:LLÄ LÄHETTÄÄ TIETOA OHJELMALLE??
Näin ei varmaan voi tehdä, että jos luodaan käyttäjää ohjelmalla ja tarkistetaan PHP:llä onko nimimerkki käytössä.
Jos on niin lähetetään PHP:llä tieto ohjelmalle, muuten jatketaan eteenpäin.
Siis, VOIKO PHP:LLÄ LÄHETTÄÄ TIETOA OHJELMALLE??
Re: PHP:hen
Tuli heti mieleen, että jos PHP kirjoittaa vaikka tekstitiedoston serverille ja ohjelma lukee siitä, onko nimi käytössä.
Näin sen ainakin saisi toimimaan, mutta onko helpompia vaihtoehtoja?
Eli, luodaan uusi txt tiedosto, kirjoitetaan "true"(käytössä) tai "false" (käyttämätön), ladataan tiedosto muistiin tai tallennetaan serveriltä, luetaan se ohjelmalla ja lopuksi poistetaan tieto.
Näin sen ainakin saisi toimimaan, mutta onko helpompia vaihtoehtoja?
Eli, luodaan uusi txt tiedosto, kirjoitetaan "true"(käytössä) tai "false" (käyttämätön), ladataan tiedosto muistiin tai tallennetaan serveriltä, luetaan se ohjelmalla ja lopuksi poistetaan tieto.
Last edited by Jambo on Fri May 30, 2008 3:39 pm, edited 1 time in total.
Re: PHP:hen
Voi tehdä. Teet tuon niin että välität php-skriptille tietoa esim. GETillä ja samalla skripti echoaa josko nimimerkki on käytössä.Jambo wrote:Vielä yksi kysymys.
Näin ei varmaan voi tehdä, että jos luodaan käyttäjää ohjelmalla ja tarkistetaan PHP:llä onko nimimerkki käytössä.
Jos on niin lähetetään PHP:llä tieto ohjelmalle, muuten jatketaan eteenpäin.
Siis, VOIKO PHP:LLÄ LÄHETTÄÄ TIETOA OHJELMALLE??
Samaan sysyyn pitää skriptin kirjata eri nimimerkit, ylläpitää käytössä olevia ja poistaa vanhentuneet.
Since 24-March 05
Re: PHP:hen
...Ja ohjelma lukee PHP:stä, mitkä nimimerkit ovat käytössä?
Kyllähän se ehkä voisi toimiakin, mutta mietin, että PHP lähettäisi ohjelmalle suoraan, onko nimimerkki käytetty. ,,,,,
Ja se taas onnistuu minun kirjoittamallani tyylillä. :/
Parempia ideoita?
Kyllähän se ehkä voisi toimiakin, mutta mietin, että PHP lähettäisi ohjelmalle suoraan, onko nimimerkki käytetty. ,,,,,
Ja se taas onnistuu minun kirjoittamallani tyylillä. :/
Parempia ideoita?
Re: PHP:hen
Eli laitan vielä esimerkkikoodin tuosta selityksestä, koska ainakin itselleni se tuppaa tekemään asiat paljon helpommaksi. Huom! Alla oleva koodi ei toimi itsessään, vaan sinun tulee vaihtaa tietysti tuo osoite ainakin oikeaksi ja lisätä tarvittavat härpäkkeet koodin alkuunPie2 wrote:Voi tehdä. Teet tuon niin että välität php-skriptille tietoa esim. GETillä ja samalla skripti echoaa josko nimimerkki on käytössä.Jambo wrote:Vielä yksi kysymys.
Näin ei varmaan voi tehdä, että jos luodaan käyttäjää ohjelmalla ja tarkistetaan PHP:llä onko nimimerkki käytössä.
Jos on niin lähetetään PHP:llä tieto ohjelmalle, muuten jatketaan eteenpäin.
Siis, VOIKO PHP:LLÄ LÄHETTÄÄ TIETOA OHJELMALLE??
Samaan sysyyn pitää skriptin kirjata eri nimimerkit, ylläpitää käytössä olevia ja poistaa vanhentuneet.
Code: Select all
//Haetaan sivu ja lisätään PHP:lle tieto nimimerkistä GET parametrilla muuttujassa "nimimerkki"
tarkistus = HTTPGet("http://omadomain.com/nimimerkki.php?nimimerkki=" + nimimerkki, false)
If tarkistus <> 200 Then
//Heitetään virhe, jos HTTPGet toiminto ei onnistunut
MakeError("Nimimerkkiä ei onnistuttu tarkistamaan!" + Chr(10) + Chr(13) + GetNetErrorString( tarkistus ))
Else
//Ladataan PHP:n tulostama teksti muuttujaan "teksti"
Dim teksti As String
For i = 1 To HTTP_ContentLength
teksti = teksti + Chr( _Net_GetByte() )
Next i
If teksti = "uusi" Then
//Jos PHP palautti tiedoston, jossa luki "uusi", tehdään jotain
MakeError("Uusi käyttäjä!") 'ihan vain esimerkiksi
ElseIf teksti = "vanha" Then
//Jos taas PHP ilmoittaa että nimimerkki on jo tiedossa
//(eli tiedostossa lukee tässä tapauksessa "vanha"), tehdään jotain muuta
//Tähän voisi lisätä vaikka salasanan pyytämisen
//HUOM! Koska käytetään suojaamatonta yhteyttä, niin salasanan sieppaaminen
//osoitteesta on ulkopuolisille helppoa! Muista ainakin kryptata/hashata salasana jotenkin!
//esim. MD5 -hashaus, sopii hyvin URLin mukana kuljettamiseen
//MD5 funktion saat CB koodikirjastosta: http://cbkk.systec.fi/koodi.php?id=102
//Esim.
//HTTPGet("http://omadomain.com/nimimerkki.php?nimimerkki=" + nimimerkki + "&salasana=" + MD5(salasana))
MakeError("Nimimerkki on jo käytössä!") 'tämäkin vain esimerkiksi
Else
//Jos tiedostossa ei ollutkaan sitä, mitä odotettiin, ilmoitetaan odottamattomasta virheestä.
//Voi johtua esim. tietokantayhteyden hajoamisesta tai jostain muusta
MakeError("Palvelimella tapahtui odottamaton virhe!")
EndIf
EndIf
Sitten tästä vielä esimerkki-PHP koodi omalla palvelimellasi tiedostossa nimimerkki.php:
Code: Select all
<?php //tästä alkaa php-koodi
//Yhdistetään palvelimen tietokantaan, muista vaihtaa arvot
$mysql_con = mysql_connect("http://omadomain.com","käyttäjä","salasana");
If( !$mysql_con ) {
//jos tietokantaan yhdistäminen ei onnistunut, niin pysäytetään koodin
//suorittaminen ja annetaan virheilmoitus
die( "Virhe yhdistettäessa MySQL tietokantaan!\n" . '<br />' . mysql_error() );
}
If( $_GET['nimimerkki'] ) {
// Tässä kohtaa tarkistettaisiin tietokannasta löytyykö nimimerkkiä.
//Talletettaisiin siitä totuusarvo (true tai false) muuttujaan userExists,
//koska sitä tarvitaan seuraavissa ehtolauseissa.
//Jos nimimerkkiä ei löydy, ilmoitettaisiin että nimimerkki on uusi, eli:
If(!userExists) //jos userExists ei ole true
echo "uusi";
//koska CB-koodissa viesti "uusi" tarkoittaa uutta käyttäjää.
If( empty($_GET['salasana'] && userExists ) {
/* (kommentoinnin aloitus)
Jos URLissa ei ollut nimimerkin lisäksi salasanaa ja käyttäjä on jo olemassa, tehdään jotain.
Jos taas nimimerkki
olisi puolestaan jo käytössä, ilmoitettaisiin siitä näin:
echo "vanha";
Selitys tästä on sama kuin uuden käyttäjän kohdalla ;)
(kommentoinnin lopetus) */
} ElseIf( !empty($_GET['salasana']) && userExists ) {
//salasana on annettu ja käyttäjä löytyy tietokannasta
//tehdään jonkinlainen tarkistus, jossa katsotaan onko salasana sama kuin tietokannassa
} ElseIf( !empty($_GET['salasana']) && !userExists ) {
//Käyttäjää ei ole olemassa ja salasana on annettu.
//Luotaisiin siis uusi käyttäjä ja asetettaisiin sen
//salasanaksi tuo 'salasana' GETtiin tallennettu merkkijono
}
} Else {
//URLissa ei kerrottu nimimerkkiä
echo "Virhe!\n".'<br />';
echo "Et ilmoittanut nimimerkkiä!"
}
//lopetetaan PHP-koodi, mutta sitä ennen suljetaan MySQL yhteys
mysql_close($mysql_con);
?>
Tämänhän voisi melkein laittaa johonkin esimerkiksi, koska muillakin on varmaan samanlaisia ongelmia..
EDIT:
Lisäsin vielä tarkistuksen PHP-koodiin, jos on uusi nimimerkki ja salasana on annettu
Re: PHP:hen
Kiitos esimerkistä! Olen kiitollinen, kun jaksoit vielä kirjoittaa noin pitkän esimerkin. Siihen meni varmasti vähän aikaa..
En tiedä, oliko siitä apua minulle, mutta ainakin muille on kunhan vaan laitat sen tutoriaaleihin.
Aion nimittäin tehdä ihan saman, mutta omalla koodillani.
Tai no, voihan se olla, että kirjoitan koodin jossain vaiheessa väärin ja joudun katsomaan sinun koodistasi mallia.
En tiedä, oliko siitä apua minulle, mutta ainakin muille on kunhan vaan laitat sen tutoriaaleihin.
Aion nimittäin tehdä ihan saman, mutta omalla koodillani.
Tai no, voihan se olla, että kirjoitan koodin jossain vaiheessa väärin ja joudun katsomaan sinun koodistasi mallia.
Re: PHP:hen
Jep, hyvä että siitä on apua. Koodiin meni juu hieman aikaa, mutta oli vaan mukavaa muistella vähän, miten ne nettikomennot menivätkäänJambo wrote:Kiitos esimerkistä! Olen kiitollinen, kun jaksoit vielä kirjoittaa noin pitkän esimerkin. Siihen meni varmasti vähän aikaa..
En tiedä, oliko siitä apua minulle, mutta ainakin muille on kunhan vaan laitat sen tutoriaaleihin.
Aion nimittäin tehdä ihan saman, mutta omalla koodillani.
Tai no, voihan se olla, että kirjoitan koodin jossain vaiheessa väärin ja joudun katsomaan sinun koodistasi mallia.
Niin, ja jos jossain vaiheessa tulee sormi suuhun niin heitä ihmeessä yksityisviestiä vaan, käyn foorumeilla lähes jatkuvasti (n. 1 päivitys / 40min), että vastauskin tulee luultavasti nopeasti (ja ammattitaidolla *keh keh*)
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com