Muutama ongelma koskien php kieltä.
käyttäjä näyttää tältä $_SESSION['tun'], ja sivulta jee.php pitäisi saada lähetettyä joo.php:hen lähettäjän nimimerkki, sekä viesti.
jee.php:ssä koodi on siis tällainen:
<?php <from method="post" action="joo.php"> nimimerkki <input type="text" name="nimimerkki"><br> viesti <input type="text" name="viesti"><br> <input type="submit" value="lähetä"> ?>
joo.php joka kirjoittaa tiedoston juu.txt jee.php:ssä lähetetyt tiedot, näyttää tältä tiivistettynä:
<?php $nimimerkki = $_POST['nimimerkki']; $viesti = $_POST['viesti']; $logit = "nimimerkki $nimimerkki lähetti viestin $viesti"; $logit = str_replace("\\\"","\"",$logit); $logit = str_replace("\\'","'",$logit); $fp = fopen("juu.txt", "a+"); fwrite($fp, $logit); fclose($fp); header("location: jee.php"); ?>
eli, ongelmana on se että nimimerkkiä ($_SESSION['tun']) saa vaihdettua.
yritin laittaa joo.php:seen seuraavanlaisen muokkauksen (huonolla menestyksellä:)
<?php $nimimerkki = $_SESSION['tun']; $viesti = $_POST['viesti']; ?>
että semmosta. ja sitten toinen ongelma, liittyen muuttujien arvon lähetykseen...
eli, sivulla peli.php on rahapeli jossa rahat on muuttujana $rahat.
tavoitteena olisi saada toimiva ennätyslista rakennettua, ja ennätykset tallennetaan tiedostoon ennatys.txt tiedostosta ennatys.php.
miten $rahat muuttujan saisi lähetettyä sivulta peli.php sivulle ennatys.php sillä tavalla ettei sitä olisi mahdollista vaihtaa?
tällä hetkellä sivulla peli.php on seuraavanlainen koodi:
<?php <from method="post" action="ennatys.php"> ennätyksesi <input type="text" value="<?php echo''.$rahat'].'';?>"name="ennatys"><br> <input type="submit" value="lähetä"> ?>
eli tuota inputin namea saa vaihdettua.
suurin osa koodista on kirjoitettu päästä tähän eli virheitä on varmasti, älkää niistä kovin välittäkö..
Eikö kukaan osaa auttaa? :(
1. HTML-koodia ei kirjoiteta <?php ?>-tagien sisään.
2. Haluatko muuttaa sessionia? Ensinnäkin, tuota sessionia ei aseteta, koska session_start() funktio ei ole kutsuttu. Lisäksi sessionit eivät säily kun suljet selaimen.
3. <?php echo''.$rahat'].'';?>
? Mikäs tuo on olevinaan? Muutes, mikä idea on antaa käyttäjän laittaa oma ennätyksensä?
4. $logit muuttujissa olevat str_replace funktiot voi unohtaa, koska PHP osaa käsitellä ne itse stripslashes() funktiolla.
5. Syntaxi on kyllä aivan päin puuta. 3. kohdan koodi on esimerkiksi niin virheellinen, että sivun lataus jää jumiin tuohon kohtaan.
Esimerkit:
<?php // Aloitetaan istunto session_start(); // Otetaan tiedot muuttujiin $nimimerkki = $_POST["nimimerkki"]; $viesti = $_POST["viesti"]; // Jos ne eivät ole tyhjiä if(!empty($nimimerkki) && !empty($viesti)) { // Kirjoitetaan tiedostoon file_put_contents("tiedosto.txt", "$nimimerkki kirjoitti viestin $viesti"); // Jos sessioni on jo, tuhotaan se if(isset($_SESSION["tun"])) { unset($_SESSION["tun"]); session_destroy(); } // Asetetaan uusi sessioni $_SESSION["tun"] = $nimimerkki; // Ohjataan käyttäjä kiitos-sivulle. header("Location: kiitos.php"); } ?>
<form action="kasittely.php" method="POST"> Nimimerkki: <input type="text" name="nimimerkki"><br> Viesti: <input type="text" name="viesti"><br> <input type="submit" value="Lähetä"> </form>
Lue ainakin tämä, tämä, tämä, tämä, tämä, tämä, tämä, tämä ja tämä.
Voitko laittaa esille oikeat koodit ja tarkan selvityksen mikä ei mielestäsi toimi tai toimii virheellisesti? Tuosta on kamalan hankala setviä, kun ei tiedä edes perusongelmia. Esimerkiksi tämä on aivan varmasti väärin
Clacier kirjoitti:
<?php ennätyksesi <input type="text" value="<?php echo''.$rahat'].'';?>"name="ennatys"><br> ?>
Eli onko ongelmana syntaksi vai joku muu?
Noh...pelissäni on muuttujana $rahat. miten muuttujan rahat arvon saisi lähetettyä php:llä toiseen .php tiedostoon?
niin ja vielä se että taisin selittää avausviestissäni ongelmani turhan huonosti.
No siis vaikka näin:
<?php $rahat = 135.26; echo"<a href=\"osoite.php?rahat={$rahat}\">toiselle</a> sivulle"; ?>
Aihe on jo aika vanha, joten et voi enää vastata siihen.