rikardo Skrevet 30. mars 2006 Del Skrevet 30. mars 2006 (endret) Hei, nå er jeg fri for ideér. Skal ha en liten form som skal lagre no data i en mysql-database. Men får ikke PHP_SELF til å kjøre på samma sia. Har funnet flere forskjellige action-verdier men ingen fungerer, så lurer på om jeg mangler noe vesentlig andre steder? Kan noen hjelpe? <html><?php $ip = $_SERVER['HTTP_CLIENT_IP']; $date = "D j M y, H:i:s"; if (!isset($_POST['submit'])) { mysql_connect("localhost","bruker","pass") or die ('kan ikke koble til'); mysql_select_db("database") or die ('kunne ikke velge db'); mysql_query("INSERT INTO nyheter (DATE, IP, TITLE, TEXT) VALUES('$date','$ip','$title','$text') or die ('hmm into'); echo ='Data lagt inn'; } else { ?> <form method="post" action="<?=$_SERVER[php_SELF];?>"> Tittel: <input type="text" name="tittel"><br> Text: <textarea name="text"></textarea><br> <input type="submit" name="submit" value="submit"> </form> <? } ?> </html> Endret 1. april 2006 av rikardo Lenke til kommentar
Navido Skrevet 30. mars 2006 Del Skrevet 30. mars 2006 Hei, nå er jeg fri for ideér. Skal ha en liten form som skal lagre no data i en mysql-database. Men får ikke PHP_SELF til å kjøre på samma sia. Har funnet flere forskjellige action-verdier men ingen fungerer, så lurer på om jeg mangler noe vesentlig andre steder? Kan noen hjelpe? <html><?php $ip = $_SERVER['HTTP_CLIENT_IP']; $date = "D j M y, H:i:s"; if (!isset($_POST['submit'])) { mysql_connect("localhost","bruker","pass") or die ('kan ikke koble til'); mysql_select_db("database") or die ('kunne ikke velge db'); mysql_query("INSERT INTO nyheter (DATE, IP, TITLE, TEXT) VALUES('$date','$ip','$title','$text') or die ('hmm into'); echo ='Data lagt inn'; } else { ?> <form method="post" action="<?=$_SERVER[php_SELF];?>"> Tittel: <input type="text" name="tittel"><br> Text: <textarea name="text"></textarea><br> <input type="submit" name="submit" value="submit"> </form> <? } ?> </html> 5841741[/snapback] Hvis det er bare til samme side du skal refere så trenger du ha en tom action tag: action="" Se om det funker Lenke til kommentar
rikardo Skrevet 30. mars 2006 Forfatter Del Skrevet 30. mars 2006 Takk for svar, men det virket ikke.. "The requested method POST is not allowed for the URL /~rikardo/admin/allown.htm" Lenke til kommentar
trondes Skrevet 30. mars 2006 Del Skrevet 30. mars 2006 (endret) bruk <?php ?> i stede for <? ?> Filen må også slutte på .php ellers vil det i det fleste tilfeller ikke virke. EDIT: prøv også slik <?php print $_SERVER['PHP_SELF']; ?> Endret 30. mars 2006 av trondes Lenke til kommentar
stian90_2 Skrevet 30. mars 2006 Del Skrevet 30. mars 2006 (endret) EHH ? allown.htm Må den ikke hete allown.php for at php skal funke da ? EDIT: Ups, leste inlegget over litt dårlig.. ^^ Endret 30. mars 2006 av stianiquniez Lenke til kommentar
rikardo Skrevet 30. mars 2006 Forfatter Del Skrevet 30. mars 2006 Nå har jeg endra til fil.php og det du skrev trondes. Får ikke noen parse-feilmeldinger, men ingenting kommer opp.. Skjønner ingenting <?php $ip = $_SERVER['HTTP_CLIENT_IP']; $date = "D j M y, H:i:s"; if (!isset($_POST['submit'])) { mysql_connect("localhost","bruker","pass") or die ('kan ikke koble til'); mysql_select_db("database") or die ('kunne ikke velge db'); mysql_query("INSERT INTO nyheter (DATE, IP, TITLE, TEXT) VALUES('$date','$ip','$title','$text') or die ('hmm into'); } else { ?> <form method="post" action="<?php print $_SERVER['PHP_SELF']; ?> "> Tittel: <input type="text" name="$titel"><br> Text: <textarea name="$text"></textarea><br> <input type="submit" name="submit" value="submit"> </form> <?php } ?> Lenke til kommentar
trondes Skrevet 30. mars 2006 Del Skrevet 30. mars 2006 if (!isset($_POST['submit'])) sider du... dvs at hvis det ikke er sendt inn noe form, da skal den registere den.. if (isset($_POST['submit'])) skal det være Lenke til kommentar
rikardo Skrevet 1. april 2006 Forfatter Del Skrevet 1. april 2006 Nå har jeg fått til alt, bortsett fra at TITLE og TEXT blir ikke lagret. Og iogmed IP og Dato blir hentet fra selve skriptet og ikke HTML-formen, så jeg regner med det er noe der som er galt. Tips mottas med stor takk! <?php$date = date("D j M y, H:i:s"); if(isset($_POST['submit'])) { $host = host; $user = user; $pass = pass; $db = db; mysql_connect("$host","$user","$pass") or die ("Kunne ikke koble til"); mysql_select_db("$db") or die ('Lunne ikke velge databasen'); mysql_query("INSERT INTO nyheter (DATE,IP,TITLE,TEXT) values('$date', \"".$HTTP_SERVER_VARS['REMOTE_ADDR']."\", '$TITLE', '$TEXT')") or die ("Greide ikke lagre"); } else { print <<< html <h3>Legg til nyhet</h3> <form method="post" action="$PHP_SELF"> Title: <input type=text name="TITLE" size="20" maxlength="255"><br> News: <textarea name="TEXT" rows="10" cols="20"></textarea><br> <input type="submit" name="submit" value="Legg til nyhet"> </form> html; } ?> Lenke til kommentar
CruellaDeVille Skrevet 1. april 2006 Del Skrevet 1. april 2006 Nå har jeg fått til alt, bortsett fra at TITLE og TEXT blir ikke lagret. Og iogmed IP og Dato blir hentet fra selve skriptet og ikke HTML-formen, så jeg regner med det er noe der som er galt. Tips mottas med stor takk! <?php$date = date("D j M y, H:i:s"); if(isset($_POST['submit'])) { $host = host; $user = user; $pass = pass; $db = db; mysql_connect("$host","$user","$pass") or die ("Kunne ikke koble til"); mysql_select_db("$db") or die ('Lunne ikke velge databasen'); mysql_query("INSERT INTO nyheter (DATE,IP,TITLE,TEXT) values('$date', \"".$HTTP_SERVER_VARS['REMOTE_ADDR']."\", '$TITLE', '$TEXT')") or die ("Greide ikke lagre"); } else { print <<< html <h3>Legg til nyhet</h3> <form method="post" action="$PHP_SELF"> Title: <input type=text name="TITLE" size="20" maxlength="255"><br> News: <textarea name="TEXT" rows="10" cols="20"></textarea><br> <input type="submit" name="submit" value="Legg til nyhet"> </form> html; } ?> 5850545[/snapback] med mindre register_globals = on kan du ikke bruke variabler slik du gjør. Det er mulig du ikke har postet den delen av koden som gjør postvariabler om til annen type variabler. Men la oss si at du har postet alt, så må du konvertere variablene slik: $text = $_POST['TEXT']; $title = $_POST['TITLE']; Hvordan har du tenkt å hente ut dato og ip fra skjema? Ingen postvariabler der som jeg kan se som gjør dette mulig. Neste spm blir - hvorfor vil du hente ip og dato fra skjema? Slik du gjør det i scriptet ditt er vel okay? Og for å gjøre ting litt enklere for deg selv: $ip = $_SERVER[REMOTE_ADDR]; og da insert into [,.....] values(..., {$ip}...); så slipper du å tenke på når en streng begynner, når en variabel begynner, når skal en escape og når skal en konkatinere. og til sist: Siden du ikke har register_globals = on kan du ikke heller bruke $PHP_SELF slik du gjør Men du kan skrive $PHP_SELF = $_SERVER[PHP_SELF]; echo <<<HTML <form method="post" action="$PHP_SELF"> // alt det andre du skal ha med i skjema HTML; Lenke til kommentar
rikardo Skrevet 1. april 2006 Forfatter Del Skrevet 1. april 2006 (endret) Hjertelig takk for utfyllende svar! Er helt ny på dette, så har skrevet skriptet ut ifra hva jeg har sett andre har gjort det :-) Edit; Title og tekst vil fremdeles ikke inn (Yepp kommer etter at jeg trykker submit, og IP og Dato blir lagret) <?php$date = date("D j M y, H:i:s"); $text = $_POST['TEXT']; $title = $_POST['TITLE']; $ip = $_SERVER[REMOTE_ADDR]; if(isset($_POST['submit'])) { $host = host; $user = user; $pass = pass; $db = db; mysql_connect("$host","$user","$pass") or die ("Kunne ikke koble til"); mysql_select_db("$db") or die ('Lunne ikke velge databasen'); mysql_query("INSERT INTO nyheter (DATE,IP,TITLE,TEXT) values('$date', '$ip', '$TITLE', '$TEXT')") or die ("Greide ikke lagre"); echo "Yepp!"; } else { echo "$date"; echo "<br>"; echo "$ip"; $PHP_SELF = $_SERVER[php_SELF]; print <<< html <h3>Legg til nyhet</h3> <form method="post" action="$PHP_SELF"> Title: <input type=text name="TITLE" size="20" maxlength="255"><br> News: <textarea name="TEXT" rows="10" cols="20"></textarea><br> <input type="submit" name="submit" value="Legg til nyhet"> </form> html; } ?> Endret 2. april 2006 av rikardo Lenke til kommentar
ZoRaC Skrevet 2. april 2006 Del Skrevet 2. april 2006 Du må skille mellom store og små bokstaver. $title og $TITLE er 2 forskjellige ting. Lenke til kommentar
rikardo Skrevet 3. april 2006 Forfatter Del Skrevet 3. april 2006 Så blind kan man bli...takk! Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå