Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Miten korjaan?

Sivun loppuun

ZeBe [31.12.2003 12:40:53]

#

Mitä viellä säädän ja minne kohtaan, jotta saan toimimaan sen kunnolla.

online.php

<?php include("yla.html"); ?>

<CENTER>
<BR>
<h1>Apua</h1>
Jos ikkuna ei avautunut automaattisesti, paina <a href="">tästä</A><BR>
Voit kysyä apua tällä ohjelmalla ruuan laitosta ja kaikesta mikä liittyy Ruokakomeroon.<BR>
<BR>
</CENTER>
<script>
window.open("onlineapu.php", "onlineapu", "width=200,height=200,");
</script>
<?php include("ala.php"); ?>

onlineapu.php

<?php
//Kysely
?>
<CENTER>
<TABLE BORDER="0" BGCOLOR="#FFFAEF">
<TD>
<TR>
<form action="onlinekysy.php" method="post"
<B>Nimesi:</B> <INPUT type="text" name="nimi"><BR>
<B>Sähköpostisi</B> <INPUT type="text" name="sposti"><BR>
<input type="submit" value="Aloita">
</TR>
</TABLE>
</CENTER>

onlinekysy.php

<CENTER>
<TABLE BORDER="1" BGCOLOR="#FFFAEF">
<TD>
<TR height="160">
<BR>
<?php include("teksti.txt");
header("refresh: 3");
?>
</TR>
<TR height="40">
<BR>
<form action="onlinekysytarkista.php" method="post">
<B>Viesti:</B> <textarea name="kysymys">
</textarea><input type="submit" value="Lähetä">
</FORM>
</TR>
</TD>
</TABLE>
</CENTER>

onlinekysytarkista.php

<?php

//muodostetaan merkkijono $_POST-taulukon alkioista
foreach($_POST as $nimi => $arvo) {
   $palaute .= $nimi.": ".$arvo."\n";
}

//lähetetään palaute PHP:n mail-funktiolla
$k = fopen('teksti.txt','a'); fwrite($k, $sisalto); fclose($k);

//$viesti on true sähköpostin lähetyksen onnistuessa
if($viesti) {
   //jos lähetys onnistui, käyttäjä ohjataan kiitossivulle
   header("Location: onlinekysy.php");
} else {
   //muussa tapauksessa käyttäjä ohjataan virhesivulle
   header("Location: onlinekysy.php");
}
?>

Sitten on teksti.txt tiedosto, joka on aivan tyhjä.

Eli mitä viellä pitäis muuttaa ja lisää tonne, että se toimis.

ZeBe [31.12.2003 12:52:48]

#

Niin siis miten saan ton nimen vedettyä tuolta yhdestä tonne mukaan :D

tejeez [31.12.2003 12:57:14]

#

en nyt ymmärtänyt kysymystäsi.. mutta ainakin tuo headerjuttu pitäisi laittaa kai ihan alkuun :)

Meitsi [31.12.2003 13:00:30]

#

VIRHE!
Tän:
<?php
//Kysely
?>
<CENTER>
<TABLE BORDER="0" BGCOLOR="#FFFAEF">
<TD>
<TR>
<form action="onlinekysy.php" method="post"
<B>Nimesi:</B> <INPUT type="text" name="nimi"><BR>
<B>Sähköpostisi</B> <INPUT type="text" name="sposti"><BR>
<input type="submit" value="Aloita">
</TR>
</TABLE>
</CENTER>

Pitäisi olla näin:
<?php
//Kysely
?>
<CENTER>
<TABLE BORDER="0" BGCOLOR="#FFFAEF">
<TD>
<TR>
<form action="onlinekysy.php" method="post">
<B>Nimesi:</B> <INPUT type="text" name="nimi"><BR>
<B>Sähköpostisi</B> <INPUT type="text" name="sposti"><BR>
<input type="submit" value="Aloita">
</form>
</TR>
</TABLE>
</CENTER>
Tosta puuttu ">" JA </form>

sooda [31.12.2003 13:09:53]

#

Höh. Tän:
<?php
//Kysely
?>

voi korvata näin:
<?-- Kysely -->

ZeBe [31.12.2003 13:21:00]

#

Mitensiis saan tuolta onlineapu.php tiedostosta tuon nimen vedettyä tuohon onlinekysy.php :n`?

ajv [31.12.2003 13:32:07]

#

En kyllä ihan tajunnu, mutta ilmeisesti olis tarkotus siirtää nimi aluksi onlineapu.php -sivulta onlinekysy.php -sivulle ja siitä edelleen onlinekysytarkista.php -sivulle.

Tämähän onnistuu esim html:n piilokentällä:

<input type="hidden" name="nimi" value="<?php print $_POST['nimi'];?>">

Tuo siis tonne onlinekysy.php -sivun formin sisään.

edit: puolipiste unohtui ;)

ajv [31.12.2003 13:53:42]

#

Niin ja ihan noita perusjuttuja:

<TABLE>
<TD>
<TR>
<!-- sälää -->
</TR>
</TABLE>

Olis ehkä parempi:

<TABLE>
  <TR>
   <TD>
   <!-- sälää -->
   </TD>
  </TR>
</TABLE>

ZeBe [31.12.2003 14:01:55]

#

onlineapu.php on nykään:

<CENTER>
<TABLE BORDER="0" BGCOLOR="#FFFAEF">
<TD>
<TR>
<form action="onlinekysy.php" method="post">
<B>Nimesi:</B> <INPUT type="text" name="nimi"><BR>
<B>Sähköpostisi</B> <INPUT type="text" name="sposti"><BR>
<input type="submit" value="Aloita">
</form>
</TR>
</TABLE>
</CENTER>

ZeBe [31.12.2003 14:10:45]

#

onlinekysytarkista.php :ssä ja sitten onlinekysy.php:ssä on viellä jotain vikaa, mutta muissa ei pitäisi olla...

kenkku [31.12.2003 14:49:59]

#

header("refresh: 3");

Tuo pitäisi tulla ennen kuin mitään tulostetaan.
Eli siirrä toi header("Refresh: 3"); ihan alkuun.

if($viesti) {
   //jos lähetys onnistui, käyttäjä ohjataan kiitossivulle
   header("Location: onlinekysy.php");
} else {
   //muussa tapauksessa käyttäjä ohjataan virhesivulle
   header("Location: onlinekysy.php");
}

Eihän tossa mailia lähetetä? Eikä edes ole olemassa muuttujaa $viesti.

ZeBe [31.12.2003 15:09:31]

#

Okei eli alkuun... :) (Toi yksi kohta on jo muokattu se näyttää tältä:

<?php

$nimi=$_POST['nimi'];
$palaute=$_POST['kysymys'];
$k = fopen('teksti.txt','a'); fwrite($k, "$nimi $palaute\n"); fclose($k);

//lähetetään palaute PHP:n mail-funktiolla
$k = fopen('teksti.txt','a'); fwrite($k, $kysymys); fclose($k);

header("Location: onlinekysy.php");

?>

ZeBe [31.12.2003 15:14:17]

#

Tossa kun nimen on laittanut niin se sanoo:

Warning: Cannot modify header information - headers already sent by (output started at /home/ruokakom/public_html/teksti.txt:2) in /home/ruokakom/public_html/onlinekysy.php on line 2


Warning: Cannot modify header information - headers already sent by (output started at /home/ruokakom/public_html/teksti.txt:2) in /home/ruokakom/public_html/onlinekysy.php on line 9

kenkku [31.12.2003 15:25:57]

#

Voitan sä tehä ton siirtämisen vaikka javascriptillä?

ZeBe [31.12.2003 15:53:54]

#

No mites mä sen javascriptillä siirrän?

kenkku [31.12.2003 16:08:08]

#

<SCRIPT LANGUAGE="JavaScript">
window.location = "mihinsiirretään.php";
</script>

ZeBe [31.12.2003 18:00:00]

#

ja mihin kohtaan laitan ton, jotta se on oikeassa kohdassa?

Antti Laaksonen [31.12.2003 18:49:12]

#

JavaScriptiä ei kannata käyttää siirron tekemiseen, sillä täysin sama onnistuu header-funktiolla ja toimii kaikilla selaimilla. Saamasi virheilmoitus johtuu siitä, että olet tulostanut sivulle jotain muuta ennen header-funktiota.

makeuu [31.12.2003 18:53:25]

#

joka on

<?php
header("Location:mihinsiirretään.php");
exit;
?>

Blaze [31.12.2003 20:49:41]

#

lainaus:

Voitan sä tehä ton siirtämisen vaikka javascriptillä?

/me potkaisee kenkkua tuollaisen ehdottamisesta
JavaSkriptillä ei saa tehdä mitään sivun toiminnan kannalta välttämätöntä.

ZeBe [02.01.2004 10:16:58]

#

Höm... Teillä ei ole yhdenmukaista päätöstä :)

kenkku [02.01.2004 12:21:15]

#

Kuten Antti sanoi, ongelman pitäisi korjaantua kun laitat

header("Refresh: 3");

aivan sivun alkuun.

ZeBe [02.01.2004 13:18:22]

#

onlinekysytarkista.php tiedostossa on viellä vikaa :S ja vähän on vikaa myös tossa onlinekysy.php tiedostossa... :'(

T.M. [02.01.2004 17:27:26]

#

HEI! kiitti koodeista ZeBe :)
en tiennytkään että PHP:llä saa määritettyä kuinka monen sekunnin päästä sivu ladataan uudelleen :)))

Edit: tuli tässä mieleen, että voisiko headereilla lähettää POST-dataa, eli sitä mitä lomakkeet lähettävät?

ZeBe [03.01.2004 10:50:37]

#

Hei tota tajuaako kukaan, että mitä noissa koodeissa on viellä vikana, noitten korjattujen khotien lisäksi!

kenkku [03.01.2004 11:07:20]

#

No jos vaikka kertoisit, mitä virhettä tulee - jos tulee virhettä. Ja jos ei tule virhettä, niin kerro mitä se tekee ja mitä sen pitäisi tehdä.
Ehkä sitten voimme auttaa.

k-mikko [03.01.2004 17:55:59]

#

lainaus:

<?-- Kysely -->

Se on <!-- eikä <?--

ZeBe [03.01.2004 20:30:18]

#

Se sanoo tälläset virheet:

Warning: Cannot modify header information - headers already sent by (output started at /home/ruokakom/public_html/teksti.txt:2) in /home/ruokakom/public_html/onlinekysy.php on line 10

ja sit tälläsen listan:

Warning: fopen(teksti.txt): failed to open stream: Permission denied in /home/ruokakom/public_html/onlinekysytarkista.php on line 5

Warning: fwrite(): supplied argument is not a valid stream resource in /home/ruokakom/public_html/onlinekysytarkista.php on line 5

Warning: fclose(): supplied argument is not a valid stream resource in /home/ruokakom/public_html/onlinekysytarkista.php on line 5

Warning: fopen(teksti.txt): failed to open stream: Permission denied in /home/ruokakom/public_html/onlinekysytarkista.php on line 8

Warning: fwrite(): supplied argument is not a valid stream resource in /home/ruokakom/public_html/onlinekysytarkista.php on line 8

Warning: fclose(): supplied argument is not a valid stream resource in /home/ruokakom/public_html/onlinekysytarkista.php on line 8

Warning: Cannot modify header information - headers already sent by (output started at /home/ruokakom/public_html/onlinekysytarkista.php:5) in /home/ruokakom/public_html/onlinekysytarkista.php on line 10

ajv [03.01.2004 20:49:44]

#

No siinähän on suorat vastaukset sun ongelmiin! Lueppa noi virheilmotukset ajatuksella, niin luulis aukeavan!

edit: Eli: sanottu jo useamman kerran: header()-funkitiota ei voi käyttää sen jälkeen kun jotain on jo tulostettu ruudulle. Siirrät sen scriptin ylimmäks. Ja sit vaan tarkastat teksti.txt:n chmodit. Siis että kaikki oikeudet on kunnossa (777), tai vähempikin varmaan riittää.

ZeBe [03.01.2004 22:01:33]

#

jaah... no se kyllä pitäis olla niin :S


Sivun alkuun

Vastaus

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

Tietoa sivustosta