Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: [php] /n ei toimi

Sivun loppuun

JussiR [15.06.2010 12:26:03]

#

Moi teen WordPress sivuilleni palautelomaketta. Miten saan stringiin uuden rivin? Jos laitan tekstin sekaan \n, tekstin sekaan todellakin tulee vain \n eikä uutta riviä.. ja luulen ettei tämä koko homma toimi sen takia.

Toinen outo homma on että jos mulla on asetettu arvo stringille $esim, ja laitan echo("jotain $esim"); niin se tulostaa tuon mitä on lainausmerkkien välissä eikä "jotain " ja sen perään stringin $esim tekstiä.

<-- form.php -->
<form method="POST" action="mailer.php">
Nimi<br>
   <input type="text" name="name" size="19"><br>

<br>Organisaatio<br>
   <input type="text" name="organisaatio" size="19"><br>

   <br>Osoite<br>
   <input type="text" name="osoite" size="19"><br>

   <br>Puhelinnumero<br>
   <input type="text" name="puhelinnumero" size="19"><br>

   <br>S&auml;hk&ouml;postiosoite<br>
   <input type="text" name="email" size="19"><br>

   <br>Palautteeni koskee<br>
	<select name="subject">
	  <option value="lisatieto">Lis&auml;tietoa</option>
	  <option value="ilmoittautuminen">Ilmoittautuminen</option>
	  <option value="palaute" selected="selected">Palaute</option>
	  <option value="muu">Jokin muu</option>
	</select>

   <br>Viesti<br>
   <textarea rows="9" name="message" cols="30"></textarea>
   <br>
   <br>
   <input type="submit" value="L&auml;het&auml;" name="submit">
</form>
// mailer.php
<html>
 <head><title>testi</title><META http-equiv='Page-Enter' content='revealtrans(duration=99,transition=99'>

<?php

 if(isset($_POST['submit'])) {
	$to = "munposti@gmail.com";
	$subject = "Juu: " . $_POST['subject'];
	$name_field = $_POST['name'];
	$email_field = $_POST['email'];
	$osoite = $_POST['osoite'];
	$organisaatio = $_POST['organisaatio'];
	$puhelinnumero = $_POST['puhelinnumero'];
	$osoite = stripslashes(strip_tags(trim($osoite)));
	$organisaatio = stripslashes(strip_tags(trim($organisaatio)));
	$puhelinnumero = stripslashes(strip_tags(trim($puhelinnumero)));
	$subject = stripslashes(strip_tags(trim($subject)));

	$param = "-f " . $to;

	$email_field = stripslashes(strip_tags(trim($email_field)));
	$name_field = stripslashes(strip_tags(trim($name_field)));

	$message = $name_field . "\n" . $osoite . "\n" . $organisaatio . "\n" . $puhelinnumero . "\n" . $_POST['message'];

	$message = stripslashes(strip_tags(trim($message)));



	$header='From: ' . $to . '\n'.'Reply-To: ' . $email_field . '\n'.'MIME-Version: 1.0\n'.'Content-type: text/plain; charset=\"utf-8"' . '\n'.'Content-transfer-encoding: quoted-printable\n\n';
	$header = stripslashes(strip_tags(trim($header)));

	echo $header;
	echo $subject;
	echo $message;

	$send_contact=mail($to,$subject,$message,$header,$param);


	if($send_contact){
		echo("<META HTTP-EQUIV='Refresh' CONTENT=5;URL='success.php");
	}
	else {
		echo("<META HTTP-EQUIV='Refresh' CONTENT=5;URL='fail.php");
	}


} else {
	echo("<META HTTP-EQUIV='Refresh' CONTENT=5;URL='fail.php");
}
?>
</head>
<body>
Viestiä l&auml;hetet&auml;&auml;n...
</body>
</html>

Metabolix [15.06.2010 12:31:38]

#

Rivinvaihto on kylläkin \n eikä /n.

JussiR [15.06.2010 12:32:52]

#

OK, korjasin viestin, mutta otsikkoa en pääse korjaamaan. Koodissa se on kuitenkin oikein.

Metabolix [15.06.2010 12:38:46]

#

Voisit korjata viestistäsi muutkin räikeät lainausmerkkivirheet, jotka koodin väritys paljastaa.

JussiR [15.06.2010 12:42:04]

#

Oon tässä kovasti yrittänyt löytää, mutta en löydä. Missä kohtaa?

Teuro [15.06.2010 12:43:39]

#

<?php
if($send_contact){
        echo("<META HTTP-EQUIV='Refresh' echo("<META HTTP-EQUIV='Refresh' CONTENT=5;URL='success.php");
    }
    else {
        echo("<META HTTP-EQUIV='Refresh' echo("<META HTTP-EQUIV='Refresh' CONTENT=5;URL='fail.php");
    }


} else {
    echo("<META HTTP-EQUIV='Refresh' CONTENT=5;URL='fail.php");
}
?>

ei tainnu ihan osua?

Macro [15.06.2010 12:44:46]

#

Kuten huomaat esimerkiksi rivin if($send_contact) jälkeen, jatkuu punainen väritys kohtaan echo(" asti. Lisäksi siinä on monta muutakin kohtaa (nähtävästi Teuro ennätti edelle). Kuuluuko echoa käyttä funktiotyyliin suluilla?

JussiR [15.06.2010 12:45:45]

#

Wtf. Joo vähän meni sekasin kun otin pois sivuston oikeaa osoitetta tuosta. Mulla se on koodissa kuitenkin oikein.

Korjasin sen nyt myös tuohon aloitusviestiin.

No mutta kuitenkin, luulisi että vika olisi yksinkertainen.

<?php
//Jos haluan että tämä tulostaa numerot 1 ja 2 ja kakkonen tulis omalle rivilleen, niin mikä tässä on pielessä?

echo('1\n2');
?>

Metabolix [15.06.2010 12:48:34]

#

Ja kun nyt olet vihdoin muokannut aloitusviestisi järkeväksi, päästään itse asiaan: \n ja muut vastaavat merkinnät toimivat vain lainausmerkeissä, eivät hipsuissa. (Poikkeuksina tietenkin \ ja ', jotka kirjoitetaan hipsuissakin '\\' ja '\''.) Lisäksi HTML:ssä rivinvaihto ei tarkoita rivinvaihtoa sivulla, vaan tähän pitää käyttää br-tagia (tai useimmissa tilanteissa järkevämmin kappalejakoa p-tageilla).

JussiR [15.06.2010 12:49:01]

#

Kiitos! :D

E: nyt se toimii nyt muutenkin..


Sivun alkuun

Vastaus

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

Tietoa sivustosta