Skickar bla&bla i form (post)
16 svar · 509 visningar · startad av mall
Ett tips är att visa lite kod. :) Inom [php]-taggen.
<input type="hidden" name="mail_text_send" value="mail&tests">
skriver ut "mail" vid
echo $mail_text_send;
Beror nog på hur register globals är satt i php.ini
Testa detta om du skickar med GET
echo $_GET['mail_text_send'];
eller detta om du skickar med POST
echo $_POST['mail_text_send'];
Har du testat det som dectgap skrev?
value="mail&tests">
det gar ej att gora sa. Jag hanmtar string fran en DB och mailar den senare.
ARE DET INGEN SAM KAN DET???
Vet inte hur du har gjort när du har sparat till databasen, men ta en titt på htmlspecialchars och htmlentities
dectgap skrev:
Testa istället med
<input type="hidden" name="mail_text_send" value="mail&amp;tests">
Jo, jag satt och fundera på det och då kom jag på att det fortfarande finns ett &, dvs texten bryts vid mail ändå..
Det betyder också att htmlentities och htmlspecialchars skulle bara göra samma sak som att lägga &.
Jag tipsar att du ersätter & med ett annat tecken inann du skriver ut den på value, och sedan när du tar emot så ersätter du igen...
Ville bara säga att den inte bryts, utan efter &:et så tror den att tests är en ny input.... alltså om man skulle istället för POST skriva GET i formen, så skulle det se ut så här
index.php?mail_text_send=mail&tests
Vad menas med det ovan? Att mail_text_send är lika med mail och att tests är ett helt nytt värde att ta info från!
Alltså du behöver bara ersätta alla & inte dem andra tecknen!
Japp, det var i stort sätt allt jag hade att säga....
mall skrev:
ARE DET INGEN SAM KAN DET???
VARFÖR SKRIVER DU I VERSALER????? Du får gärna vänta lite mer än 29 minuter innan du bumpar tråden.
Snakes skrev:
Jo jag satt och fundera på det och då kom det så att & finns i fortfarande, dvs texten bryts vid mail ändå..
Det betyder också att htmlentities och htmlspecialchars skulle bara göra samma sak som att lägga &.
Que? Varför hålla på och krångla till det med att byta ut tecken mot andra tecken, när det finns en färdig funktion (htmlentities()) för att escapa farliga htmltecken? Dvs gör som dectgap och Pedda föreslår och kör strängen genom funktionen ovan.
Som flera påpekat är det en mycket god vana att köra htmlentities() på alla VÄRDEN man lägger in i ett formulär.
Begränsar du värdet med enkelfnuttar bör du dessutom köra htmlentities med ENT_QUOTES.
När du sedan postar formuläret kommer dina specialtecken att göras om till vanliga tecken, & kommer alltså att bli & i skriptet som tar emot formuläret.
Peeer skrev:
Snakes skrev:
Jo jag satt och fundera på det och då kom det så att & finns i fortfarande, dvs texten bryts vid mail ändå..
Det betyder också att htmlentities och htmlspecialchars skulle bara göra samma sak som att lägga &.Que? Varför hålla på och krångla till det med att byta ut tecken mot andra tecken, när det finns en färdig funktion (htmlentities()) för att escapa farliga htmltecken? Dvs gör som dectgap och Pedda föreslår och kör strängen genom funktionen ovan.
1.
Snakes skrev:
Alltså du behöver bara ersätta alla & inte dem andra tecknen!
2.
Snakes skrev:
index.php?mail_text_send=mail&tests
Peeer jag menade inte att han skuller ersätta alla tecknen utan jag menade att han skulle ersätta alla & bara. Jo, varför förklarar jag i inlägget ovan. Men som sagt: jag kan ha fel, men det förklarar åtminstone varför den bryts vid &!
Läs om vad jag skrev är du snäll!
Snakes skrev:
alltså om man skulle istället för POST skriva GET i formen, så skulle det se ut så här
index.php?mail_text_send=mail&tests
Nej, såhär såg min url ut när jag testade 'index.php?mail_text_send=mail%26tests%3Dgoff'
Dvs ampersand-tecknet har blivit urlencodat till %26
Snakes skrev:
Vad menas med det ovan? Att mail_text_send är lika med mail och att tests är ett helt nytt värde att ta info från!
Alltså du behöver bara ersätta alla & inte dem andra tecknen!
Japp, det var i stort sätt allt jag hade att säga....
Så är det inte! Prova följande kod
<form action="?" method="post">
<input type="hidden" name="mail_text_send" value="mail&tests=goff">
<input type="submit">
</form>
<?php
print_r($_POST);
?>
Som du ser kommer $_POST (efter att formuläret submittats) endast innehålla ett index, dvs 'mail_text_send' och det kommer ha värdet 'mail&tests=goff'