Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Php text submit

Skapad av Maackaan, 2011-11-17 17:39 i Webbutveckling & Programmering

5 654
17 inlägg
0 poäng
Maackaan
Visningsbild
P 29 Tumba Hjälte 297 inlägg
0
Hej! Nu är det så att jag fastnat lite på ett PHP script, jag skulle vilja ha en text box, som man kan skriva i text i, och när man sedan trycker på Submit, sparar den allting till ex. Reports/*.txt. Jag vill att namnet (*) ska döpas till ÅÅ-MM-DD-TT:MM.
Så om jag alltså skulle skriva i "Hej123" och trycka på submit...NU!
Så skulle det skapas en fil med innehållet

Hej123
och namnet
11-11-17-17:38.txt

Ingen status

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

Gurrewe
Visningsbild
P 30 Bromma Bästis För många inlägg
0


/party

Maackaan
Visningsbild
P 29 Tumba Hjälte 297 inlägg
Trådskapare
0

Svar till Gurrewe [Gå till post]:
Ah, tack så mycket, det där hjälper faktiskt en hel del:) Men ett litet problem fortfarande, jag vet inte hur jag får texten från rutan, att sparas ner i dokumentet, har du tips på en guide eller en liten exempel kod att skicka?=) Tack på förhand

Ingen status

Gurrewe
Visningsbild
P 30 Bromma Bästis För många inlägg
0
Svar till Maackaan [Gå till post]:
Du kan kolla på http://php.net/fwrite

/party

Maackaan
Visningsbild
P 29 Tumba Hjälte 297 inlägg
Trådskapare
0
Nu så har jag ett script som verkar bra! Nu har jag däremot stött på ett litet problem, så jag beskriver så mycket som möjligt.
Min hemsida ligger i en mapp som ligger på skrivbordet DesktopWorkspaceWeb
där i har jag bland annat index.html och lite saker som kontakt.html etc. Sedan har jag en fil där det står EXAKT såhär:
[code]
Ett stycke php-kod:
<html> 
<?php
if(isset($_POST['submit'])) { // Kolla om någon klickat på submit-knappen
$text = $_POST['text']; // Sätt $text till värdet i fältet "text"
if(!empty($text)) { // Kolla så att $text inte är tom
if(!is_dir('reports')) // Finns det någon mapp som heter "reports"?
mkdir('reports'); // Om svaret är nej så skapar vi mappen

// Skriv till fil. Finns redan en fil med samma namn så utökar vi den filen mha FILE_APPEND
file_put_contents('reports/'.date("y-m-d-H-i").'.txt', $text, FILE_APPEND);
}
}
?>

<form action="" method="POST">
<textarea name="text" rows="8" cols="40"></textarea><br />
<input type="submit" name="submit" value="Skriv till fil" />
</form>
</html>
[/code]

Och på sidan får jag upp en tom textruta, med en knapp under där det står "skriv till fil" men nu är det så att när man skriver i något och trycker, så försvinner texten, och ingen fil skapas. Tack på förhand för hjälp!

Tillägg av Maackaan 2011-11-18 06:16

Det set ut som att koden inte riktigt ser så frisk ut...
http://pastebin.com/wvT8E2bx
Där kan du också kolla

Ingen status

Maackaan
Visningsbild
P 29 Tumba Hjälte 297 inlägg
Trådskapare
0
Tänkte fråga angående en annan sak, PHP det med, och vill inte göra massa onödiga trådar, så här kommer en till fråga:
Jag vill kunna edita min sida vartsomhelst ifrån, så jag har filen Editer.php med innehållet
http://pastebin.com/HQ2z95HG

den fungerar ganska bra, de problem jag får med detta script är, 1. Den kan bara edita .txt filer, om jag ändrar '123.txt' till exempelvis 123.html, som innehåller
<html>
HEJ!
</html>

Så ser man bara "<html>" inget mer, och att jag vill kunna välja vilken fil jag ska edita, så iställer för en specifierad fil (123.txt atm) så får man upp en liten text ruta där man skriver i, eller att man skriver det i slutet av länken (hemsidan.com/editer.php?=densidanjagvilländra.html

Ingen status

Gurrewe
Visningsbild
P 30 Bromma Bästis För många inlägg
0

Svar till Maackaan [Gå till post]:
example.com/editer.php?file=fniss.txt

$myFile = $_GET['file'];

Hm, konstigt att det inte fungerar. Testa file_get_contents() och file_put_contents().

Men tänk på säkerheten!

/party

Maackaan
Visningsbild
P 29 Tumba Hjälte 297 inlägg
Trådskapare
0

Svar till Gurrewe [Gå till post]:
Nu ser det ut http://pastebin.com/wRPcWT0a sådär, tänkte att du kanske kunde hjälpa till med vart jag ska sätta in/ vad jag ska replace'a med file_get_contents och file_put_contents, ifall du har lust kan du bara lägga till det i skriptet och länka :)

Sen angående säkerheten, så har jag ett PHP login script som kommer att aktiveras till edit sidan :)



Tillägg av Maackaan 2011-11-18 23:32

Sedan för att öka säkerheten lite så vill jag använda captcha (också för att förhindra spam på en annan php sak jag har) men jag undrar hur jag gör så en knapp inte fungerar om inte capchan är rätt, men fungerar om captchan är rätt?

Använder captcha skriptet från http://www.phpcaptcha.org/



Tillägg av Maackaan 2011-11-19 08:55

Märkte att jag hade ett litet fel i scriptet!
http://pastebin.com/0npJQBB7
SÅ ser det ut!

Ingen status

hazardous
Visningsbild
P 94 Skövde Hjälte 775 inlägg
0
Nu när det finns en sån här tråd.. Jag vill lägga ut en sökbox på min hemsida där besökaren kan söka på något. Man fyller alltså i det man söker efter i ett formulär (html-fil) och så skickas man till en php-fil som ger svaret på det man sökte efter.
Har kollat på w3schools och phpportalen.net men har inte hittat mitt svar. Någon som kan hjälpa mig?

Och så trycker vi spara.

Syndafloden
Visningsbild
P 33 Karlstad Hjälte 10 705 inlägg
0

Svar till hazardous [Gå till post]:
du gör ett vanlig formulär, typ blablabla <input type="text" name="sok">
Standard fare, method="post" och action="din_php_fil.php".

Sedan ska du, i din PHP-fil:
1) Kontrollera att data skickades i POST
2) Säkra datan så att du slipper otyg i databasen
3) Konstruera en query (SELECT * FROM databas_att_söka_från, annan_databas, tredje_databas_om_du_har_en_sådan WHERE nagonting LIKE '$search_query' OR nagot_annat LIKE '$search_query', typ)
4) Presentera datan som hämtades.

I grova drag.

HEH, TIME FOR A BIT OF A ROUGH AND TUMBLE

hazardous
Visningsbild
P 94 Skövde Hjälte 775 inlägg
0
Svar till Syndafloden [Gå till post]:

Jag har försökt att göra så gott som jag kan. Så här ser html-filen inom body-taggarna:

Ett stycke html-kod:
<form id="form" name="form" method="post" action="sok.php">

Jag söker efter..
<input type="text" name="sok" />

<input type="submit" name="skicka" id="skicka" value="Sök!" />
</form>



Och php-koden inom body-taggarna:

Ett stycke php-kod:

<?php
include 'databas.inc.php';
?>

<?php
echo "Du hittade/Resultatet visar:";
echo "<br>";
?>

<?php
$mysql_query="SELECT * FROM Persons (Namn, Pnr)
VALUES
('$_POST[Namn]','$_POST[Pnr]') LIKE '$search_query'";
?>



Problemet med ovanstående kod är att den inte generar något. Det enda som syns är texten Du hittade/Resultatet visar: och inget annat. Om jag istället skriver:

Ett stycke php-kod:

<?php
$sql="SELECT * FROM Persons (Namn, Pnr)
VALUES
('$_POST[Namn]','$_POST[Pnr]') LIKE '$search_query'";
?>



Den här gången har jag bara ändrat $mysql_query till $sql. Resultatet blir som i första försöket.


Tredje gången gilt:
Ett stycke php-kod:
<?php
$con = mysql_connect("xx","yy","aa");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("yy", $con);

$sql="SELECT * FROM tabellens_namn (cell1, cell2)
VALUES
('$_POST[cell1]','$_POST[cell2]') LIKE '$search_query'";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Personen syns härunder!";

mysql_close($con);
?>





Texten Du hittade/Resultatet visar: visas fortfarande. Men under det så står det: Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(cell1, cell2) VALUES ('','') LIKE ''' at line 1.
Kanske värt att nämna att jag fortfarande har include-filen och koden som skriver ut Du hittade/Resultatet visar: i alla lägen.

Vad gör jag fel?


Och så trycker vi spara.

Syndafloden
Visningsbild
P 33 Karlstad Hjälte 10 705 inlägg
0

Svar till hazardous [Gå till post]:
Det är några fel:

$_POST['name'], inte [name]. Du glömde fnuttarna (om inte hamsterpaj filtrerat dem).

Man kör aldrig in rå inputdata i sina querys.

Queryn ska vara enligt formatet
SELECT * FROM Persons WHERE Namn LIKE '$_POST['Namn']' OR WHERE Pnr LIKE '$_POST['Pnr']'

Det ska vara fnuttar runt POSTarna för att du selectar dem som strings.
Det kan strula och då får man göra på andra sätt.
Och s kör man aldrig in POST-data i queryn : )

HEH, TIME FOR A BIT OF A ROUGH AND TUMBLE

hazardous
Visningsbild
P 94 Skövde Hjälte 775 inlägg
0
Svar till Syndafloden [Gå till post]:

Nu får jag ytterligare ett problem. Den här texten syns på skärmen när jag försöker söka efter något via html-filen, som leder till php-filen:

syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

Och det är ju den kod som du har skrivit som jag använder.



Och så trycker vi spara.

Syndafloden
Visningsbild
P 33 Karlstad Hjälte 10 705 inlägg
0

Svar till hazardous [Gå till post]:
hm. testa att ta bort fnuttarna som jag satte dit, så att du kör in $_POST[Pnr] t. ex.

HEH, TIME FOR A BIT OF A ROUGH AND TUMBLE

hazardous
Visningsbild
P 94 Skövde Hjälte 775 inlägg
0
Vad gäller fnuttarna så kan man skriva så här:
'$_POST['Namn']' OR WHERE Pnr LIKE '$_POST['Pnr']'";

Alltså innan och efter $_post och innanför hakparentesen. Vid första tillfället så tog jag bort fnuttarna inom hakparentesen och fick ut det här:

Call to undefined function sql_query()

Därefter lade jag tillbaka dem och tog bort fnuttarna inan efter $_post. Jag fick ut det här:

syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

Tredje gången så hade jag inte någon fnutt alls. Resultatet:

Call to undefined function sql_query()

Det är fortfarande något klurigt..

Och så trycker vi spara.

Syndafloden
Visningsbild
P 33 Karlstad Hjälte 10 705 inlägg
0

Svar till hazardous [Gå till post]:
Varför försöker du köra en funktion som heter "sql_query"?
mysql_query ska du köra.

HEH, TIME FOR A BIT OF A ROUGH AND TUMBLE

hazardous
Visningsbild
P 94 Skövde Hjälte 775 inlägg
0
Svar till Syndafloden [Gå till post]:

Du menar så här?
$mysql_query="SELECT * FROM Persons WHERE Namn LIKE '$_POST[Namn]'";

När jag skriver med mysql_query och alla fnuttar så får jag det här resultatet:
syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

Och med fnuttar bara inom hakparentes:
syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

Och med fnuttar utanför hakparentesen men inte i dem:
En blank sida.

Men sedan så skrev jag in det här:
<?php
$result = mysql_query("SELECT * FROM tabell WHERE xx LIKE '$_POST[xx]' OR WHERE yy LIKE '$_POST[yy]'");
?>

Fortfarande en blank sidan.


Vad är fel nu då??


Och så trycker vi spara.


Forum » Datorer & IT » Webbutveckling & Programmering » Php text submit

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons