Gå til innhold

str_replace() i form. [LØST]


Anbefalte innlegg

Går det an å gjøre slik at f.eks ' automatisk blir til ´ (altså blir til WYSIWYG-formen av seg selv), mens jeg skriver i et form? Har nemmelig problem med at når jeg skriver f.eks ' i en tekst i gjestebok-scriptet mitt (eller news-scriptet for den del), så får jeg en error når innlegget skal lagres i mySQL databasen.

Endret av Tha_Zaynt
Lenke til kommentar
Videoannonse
Annonse

når jeg setter det inn slik får jeg bare feillmeldingen;

Et eller flere felt mangler nødvendig informasjon. Selv om jeg har fylt ut alle..

 

reg.php

<link rel="stylesheet" type="text/css" href="style.css">
<?php
include("config.php");

// Get data from form

if($formMethod == "post") {
$tittel = $_POST['tittel'];
$navn = $_POST['navn'];
$nyhet = $_POST['nyhet'];
$dato = date ("d/m/Y, H:i:s"); }	

else {
$tittel = $_GET['tittel'];
$navn = $_GET['navn']; 
$nyhet = $_GET['nyhet']; 
$dato = date ("d/m/Y, H:i:s"); }

$tittel = htmlspecialchars($tittel);
$tittel = str_replace("æ","æ",$tittel);
$tittel = str_replace("ø","ø",$tittel);
$tittel = str_replace("å","å",$tittel);
$tittel = str_replace("Æ","Æ",$tittel);
$tittel = str_replace("Ø","Ø",$tittel);
$tittel = str_replace("Å","Å",$tittel);
$tittel = str_replace("","<br>",$tittel);
$tittel = str_replace("\n","<br>",$tittel);
$navn = htmlspecialchars($navn);
$navn = str_replace("æ","æ",$navn);
$navn = str_replace("ø","ø",$navn);
$navn = str_replace("å","å",$navn);
$navn = str_replace("Æ","Æ",$navn);
$navn = str_replace("Ø","Ø",$navn);
$navn = str_replace("Å","Å",$navn);   
$nyhet = htmlspecialchars($comment);
$nyhet = str_replace("æ","æ",$nyhet);
$nyhet = str_replace("ø","ø",$nyhet);
$nyhet = str_replace("å","å",$nyhet);
$nyhet = str_replace("Æ","Æ",$nyhet);
$nyhet = str_replace("Ø","Ø",$nyhet);
$nyhet = str_replace("Å","Å",$nyhet);
$nyhet = str_replace("","<br>",$nyhet);
$nyhet = str_replace("\n","<br>",$nyhet);

// Remove HTML-tags and unnecessary spaces
$tittel = rtrim(ltrim(strip_tags($tittel)));
$navn = rtrim(ltrim(strip_tags($navn)));
$nyhet = rtrim(ltrim(strip_tags($nyhet)));



// Check that none of the fields are empty
if (empty($tittel) || (empty($navn) ||empty($nyhet))) {
echo "Et eller flere felt mangler nødvendig informasjon.<p><a href='news.php'>Tilbake</a></p>"; }


else {
// Connect to MySQL
mysql_connect($mySQLhost, $mySQLuser, $mySQLpass)
       or die("Could not connect: " . mysql_error());
mysql_select_db($mySQLdb);

// Insert the data into the database
if (mysql_query("INSERT INTO $mySQLtable (tittel,navn,nyhet,dato) VALUES ('$tittel','$navn','$nyhet','$dato')")) {
echo $regSuccess; }
else { 
echo $regFailed. mysql_error(); }

mysql_close(); }

?>

Lenke til kommentar

Hvis du skal lagre informasjonen i en database kan det nok være lurt å kjøre addslashes() på variablene som skal legges inn. Da escapes ' slik at databasen ikke returnerer syntaksfeil om en variabel inneholder '.

 

 

Edit: prøv denne isteden:

if (empty($tittel) || empty($navn) || empty($nyhet)) {

Endret av lokaltog
Lenke til kommentar

empty sjekkern fungerer fint den, men når jeg setter inn koden nedenfor eller før empty sjekkern, så sier den at ingen felter er fylt ut.

hvordan bruker man addslashes() i praksis?

 

$tittel = htmlspecialchars($tittel);
$tittel = str_replace("æ","æ",$tittel);
$tittel = str_replace("ø","ø",$tittel);
$tittel = str_replace("å","å",$tittel);
$tittel = str_replace("Æ","Æ",$tittel);
$tittel = str_replace("Ø","Ø",$tittel);
$tittel = str_replace("Å","Å",$tittel);
$tittel = str_replace("","<br>",$tittel);
$tittel = str_replace("\n","<br>",$tittel);
$navn = htmlspecialchars($navn);
$navn = str_replace("æ","æ",$navn);
$navn = str_replace("ø","ø",$navn);
$navn = str_replace("å","å",$navn);
$navn = str_replace("Æ","Æ",$navn);
$navn = str_replace("Ø","Ø",$navn);
$navn = str_replace("Å","Å",$navn);   
$nyhet = htmlspecialchars($comment);
$nyhet = str_replace("æ","æ",$nyhet);
$nyhet = str_replace("ø","ø",$nyhet);
$nyhet = str_replace("å","å",$nyhet);
$nyhet = str_replace("Æ","Æ",$nyhet);
$nyhet = str_replace("Ø","Ø",$nyhet);
$nyhet = str_replace("Å","Å",$nyhet);
$nyhet = str_replace("","<br>",$nyhet);
$nyhet = str_replace("\n","<br>",$nyhet);

 

EDIT: Fant buggen som gjorde at et eller flere felt mangler, og nå funker alt som det skal

Endret av Tha_Zaynt
Lenke til kommentar

btw; kan du svare meg på hva som er galt i denne formen under? får bare feilen;

 

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in c:\appserv\www\news\rediger.php on line 75

 

echo '
<form method="post" action="?action=save_changes&id=' . $id . '">
<p>Overskrift: <input type="text" name="tittel" maxlength="37" size="37" value="' . $row->tittel . '" /></p>
<p>Forfatter:  <input type="text" name="navn" maxlength="37" size="37" value="' . $row->navn . '" /></p>
<p>Nyhet:<br /><textarea name="nyhet" cols="46" rows="10">' . $row->nyhet . '</textarea></p>
--->linje 75 <a href="javascript:addsmile(' X( ')"><img src="$SmileyDir/angry.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :f ')"><img src="$SmileyDir/flirt.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :x ')"><img src="$SmileyDir/dead.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :( ')"><img src="$SmileyDir/frown.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :h ')"><img src="$SmileyDir/cool.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :i ')"><img src="$SmileyDir/idea.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :) ')"><img src="$SmileyDir/smile.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(';) ')"><img src="$SmileyDir/wink.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :l ')"><img src="$SmileyDir/hrmpf.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :o ')"><img src="$SmileyDir/redface.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :00 ')"><img src="$SmileyDir/look.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :p ')"><img src="$SmileyDir/tounge.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :q ')"><img src="$SmileyDir/quest.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :r ')"><img src="$SmileyDir/shame.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :D ')"><img src="$SmileyDir/biggrin.gif" alt="" border="0"></a>
 <a href="javascript:addsmile(' :e ')"><img src="$SmileyDir/supergrin.gif" alt="" border="0"></a>
<input type="submit" name="Lagre" value="'.$LagreVal.'" /> <input type="reset" value="Slett" />
</form>';

Lenke til kommentar

Du trenger ikke å bytte ut "Ø" med ø osv. når du har riktig tegnsett. Bare du spesifiserer tegnsettet iso-8859-1 i meta-taggene eller i HTTP-headerne går det fint.

 

 

EDIT:

 

echo '
<form method="post" action="?action=save_changes&id=' . $id . '">
<p>Overskrift: <input type="text" name="tittel" maxlength="37" size="37" value="' . $row->tittel . '" /></p>
<p>Forfatter:  <input type="text" name="navn" maxlength="37" size="37" value="' . $row->navn . '" /></p>
<p>Nyhet:<br /><textarea name="nyhet" cols="46" rows="10">' . $row->nyhet . '</textarea></p>
--->linje 75 <a href="javascript:addsmile(\' X( \')"><img src="' . $SmileyDir . '/angry.gif" alt="" border="0"></a>
<a href="javascript:addsmile(\' :f \')"><img src="' . $SmileyDir . '/flirt.gif" alt="" border="0"></a>
<a href="javascript:addsmile(\' :x \')"><img src="' . $SmileyDir . '/dead.gif" alt="" border="0"></a>
<a href="javascript:addsmile(\' :( \')"><img src="' . $SmileyDir . '/frown.gif" alt="" border="0"></a>
<a href="javascript:addsmile(\' :h \')"><img src="' . $SmileyDir . '/cool.gif" alt="" border="0"></a>
<a href="javascript:addsmile(\' :i \')"><img src="' . $SmileyDir . '/idea.gif" alt="" border="0"></a>
<a href="javascript:addsmile(\' :) \')"><img src="' . $SmileyDir . '/smile.gif" alt="" border="0"></a>
<a href="javascript:addsmile(\';) \')"><img src="' . $SmileyDir . '/wink.gif" alt="" border="0"></a>
<a href="javascript:addsmile(\' :l \')"><img src="' . $SmileyDir . '/hrmpf.gif" alt="" border="0"></a>
<a href="javascript:addsmile(\' :o \')"><img src="' . $SmileyDir . '/redface.gif" alt="" border="0"></a>
<a href="javascript:addsmile(\' :00 \')"><img src="' . $SmileyDir . '/look.gif" alt="" border="0"></a>
<a href="javascript:addsmile(\' :p \')"><img src="' . $SmileyDir . '/tounge.gif" alt="" border="0"></a>
<a href="javascript:addsmile(\' :q \')"><img src="' . $SmileyDir . '/quest.gif" alt="" border="0"></a>
<a href="javascript:addsmile(\' :r \')"><img src="' . $SmileyDir . '/shame.gif" alt="" border="0"></a>
<a href="javascript:addsmile(\' :D \')"><img src="' . $SmileyDir . '/biggrin.gif" alt="" border="0"></a>
<a href="javascript:addsmile(\' :e \')"><img src="' . $SmileyDir . '/supergrin.gif" alt="" border="0"></a>
<input type="submit" name="Lagre" value="'.$LagreVal.'" /> <input type="reset" value="Slett" />
</form>';

 

Her er koden med escaping av JS-koden, samt at $smileydir vil bli satt inn på rett sted. :)

Endret av jorgis
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...