Varför inte bara vänta på svar på det forumet?
Är det något som kan hjälpa mig med detta?
Kolla på denna länk: http://www.phpsidan.nu/?page=read&id=4849
Tack på förhand!
18 svar · 613 visningar · startad av septor
Är det något som kan hjälpa mig med detta?
Kolla på denna länk: http://www.phpsidan.nu/?page=read&id=4849
Tack på förhand!
Varför inte bara vänta på svar på det forumet?
Posta koden så kanske vi kan hjälpa dig.
borde du inte action="index.php" i koden för formuläret?
Detta är koden i index.php
<link href="style.css" rel="stylesheet" type="text/css">
<?
include("variablar.php");
$conn = mysql_connect("$server", "$user", "$pass");
mysql_select_db($databas);
if (isset($_GET['post'])) {
$tebaka = "<a href=\"javascript:history.back()\">Tillbaka</a>";
$datum = date("Y-m-d H:i");
if(empty($namn)) {
echo"<b>Var vänlig skriv i ditt namn.</b><br><br>$tebaka";
} elseif(empty($epost)) {
echo"<b>Var vänlig skriv din e-post adress.</b><br><br>$tebaka";
} elseif(empty($text)) {
echo"<b>Var vänlig skriv ett meddelande.</b><br><br>$tebaka";
} else {
mysql_query("INSERT INTO meddelande (datum,namn,epost,hemsida,text)
VALUES('$datum', '$namn', '$epost', '$hemsida', '$text')") or exit(mysql_error());
echo "Tack för meddelandet, invänta nu svar från webmastern!<br><a href=\"index.php\">Tillbaka</a>";
}
} else {
echo "Alla fält som är markerade med en <font color=\"red\">*</font> måste fyllas i!";
echo "<form name=\"mess\" action=\"./?post=now\" method=\"post\">";
echo "Namn: <font color=\"red\">*</font><br><input name=\"namn\" type=\"text\"><br>";
echo "Epost: <font color=\"red\">*</font><br><input name=\"epost\" type=\"text\"><br>";
echo "Hemsida:<br><input name=\"hemsida\" type=\"text\"><br>";
echo "Text: <font color=\"red\">*</font><br><textarea name=\"text\" rows=\"10\" cols=\"40\"></textarea><br>";
echo "<input type=\"submit\" value=\"Skicka\"></form>";
}
mysql_close($conn);
?>
Har nu skrivit action="index.php"
Men det fungerar fortfarande inte.
Den går visserligen till en sida, men där står det "Skriv ditt Namn" och en länk tillbaka.
Det är precis det som ska hända om du inte har skrivit i ditt namn. Har du register_globals satt till off?
Då får du lägga till följande kod i början av sidan
<?
$namn = $_POST['namn'];
$epost = $_POST["epost"];
$text = $_POST["text"];
$hemsida = $_POST["hemsida"];
?>
septor skrev:
Om register_globals satt till off, ingen aning!
Skapa en ny fil med enbart koden
<?php
phpinfo();
?>
ladda upp den på servern och gå till den med din webbläsare. Då ser du all information om inställningarna på servern.
Leta upp Register_globals under Configuration, där ser du om det är On eller Off.
Den var satt till off!
Då måste du göra som Gislaved.net skrev.
Kom ihåg i andra skript som du skriver/laddar ner att variablarna måste vara $_GET['värde'] och $_POST['värde'] för att det ska fungera.
Ser inget fel, men du kan ju testa att ändra
if(empty($namn)) {
till
if (empty($_POST['namn'])) {
o.s.v bara för att testa.
[r]
Skippar ändringarna och skickar med hela istället.
Detta fungerar på min server
<?php
include("variablar.php");
$conn = mysql_connect("$server", "$user", "$pass");
mysql_select_db($databas);
if (isset($_POST['post']) AND $_POST['post'] == 'now') {
$tebaka = "<a href=\"javascript:history.back()\">Tillbaka</a>";
$datum = date("Y-m-d H:i");
if (empty($_POST['namn'])) {
echo "<b>Var vänlig skriv i ditt namn.</b><br><br>$tebaka";
} elseif (empty($_POST['epost'])) {
echo "<b>Var vänlig skriv din e-post adress.</b><br><br>$tebaka";
} elseif (empty($_POST['text'])) {
echo "<b>Var vänlig skriv ett meddelande.</b><br><br>$tebaka";
} else {
mysql_query("INSERT INTO meddelande
(datum,namn,epost,hemsida,text)
VALUES
('$datum','" . addslashes($_POST['namn']) . "','" . addslashes($_POST['epost']) . "','" . addslashes($_POST['hemsida']) . "','" . addslashes($_POST['text']) . "')") or exit(mysql_error());
echo "Tack för meddelandet, invänta nu svar från webmastern!<br><a href=\"" . $_SERVER['PHP_SELF'] . "\">Tillbaka</a>";
}
} else {
echo "Alla fält som är markerade med en <font color=\"red\">*</font> måste fyllas i!";
echo "<form name=\"mess\" action=\"" . $_SERVER['PHP_SELF'] . "\" method=\"post\">";
echo "<input name=\"post\" type=\"hidden\" value=\"now\">";
echo "Namn: <font color=\"red\">*</font><br><input name=\"namn\" type=\"text\"><br>";
echo "Epost: <font color=\"red\">*</font><br><input name=\"epost\" type=\"text\"><br>";
echo "Hemsida:<br><input name=\"hemsida\" type=\"text\"><br>";
echo "Text: <font color=\"red\">*</font><br><textarea name=\"text\" rows=\"10\" cols=\"40\"></textarea><br>";
echo "<input type=\"submit\" value=\"Skicka\"></form>";
}
mysql_close($conn);
?>
Glöm inte tabort mellanslaget i javascript på raden
$tebaka = "<a href=\"javascript:history.back()\">Tillbaka</a>";
kjell: Tack! Det fungerade perfekt.
Nu så återstår bara ett problem, när jag skickar formuläret så fungerar det inte i pagingen.
Vad ska jag skriva till?
Här så kommer koden på index.php i rooten:
<html>
<head>
<title>Testsida</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#CCCCCC" background="/bakgrund.gif">
<div align="center">
<p><br>
</p>
<p> </p>
<p> </p>
</div>
<table width="645" border="1" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<!--DWLayoutTable-->
<tr>
<td width="645" height="35" valign="top"><table width="645" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr>
<td height="73" colspan="2" valign="top"><a href="index.php"><img src="/mia/logo.gif" width="645" height="73" border="0"></a></td>
</tr>
<tr bordercolor="#CCCCCC" bgcolor="#990000">
<td height="24" colspan="2" valign="top"><!--DWLayoutEmptyCell--> </td>
</tr>
<tr>
<td width="118" height="129" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr bgcolor="#CC0000">
<td height="19" colspan="2" valign="top" nowrap bordercolor="#CCCCCC"><font face="Haettenschweiler"> </font><font color="#FFFFFF" size="1" face="Haettenschweiler">
<?PHP
$dagen = array('Söndag', 'Måndag', 'Tisdag', 'Onsdag', 'Torsdag',
'Fredag', 'Lördag');
$dagens_datum = date("w"); //Dagen
$datum = date("d/M-y"); //Datumet
$time = date ("H:i:s"); //Klockan
echo "$dagen[$dagens_datum] $datum Klockan $time"; //Skriver ut Dag, Datum, Tid.
?>
</font></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="10" rowspan="5" valign="top"><!--DWLayoutEmptyCell--> </td>
<td width="108" height="18" valign="top"><font size="2" face="Haettenschweiler">>><strong>MENY</strong></font></td>
</tr>
<tr>
<td height="20" valign="top" bgcolor="#FFFFFF"><font color="#6699CC" size="2" face="Haettenschweiler">
>><a href="index.php?page=info">Info</a></font></td>
</tr>
<tr>
<td height="17" valign="top" bgcolor="#FFFFFF"><font color="#6699CC" size="2" face="Haettenschweiler">
>><a href="index.php?page=#">Galleri</a></font></td>
</tr>
<tr>
<td height="17" valign="top" bgcolor="#FFFFFF"><font color="#6699CC" size="2" face="Haettenschweiler">
><a href="index.php?page=kontakt">>Kontakt</a></font></td>
</tr>
<tr>
<td height="19" valign="top" bgcolor="#FFFFFF"><font color="#6699CC" size="2" face="Haettenschweiler">
>><a href="index.php?page=gastbok">Gästbok</a></font></td>
</tr>
<tr bgcolor="#FFFFFF">
<td height="19" nowrap></td>
<td></td>
</tr>
</table></td>
<td width="527" rowspan="2" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr bordercolor="#CCCCCC" bgcolor="#CC0000">
<td width="9" height="19" valign="top"><!--DWLayoutEmptyCell--> </td>
<td width="502" valign="top" bgcolor="#CC0000"><!--DWLayoutEmptyCell--> </td>
<td colspan="2" valign="top"><!--DWLayoutEmptyCell--> </td>
</tr>
<tr bordercolor="#CCCCCC" bgcolor="#FFFFFF">
<td height="351" valign="top"><!--DWLayoutEmptyCell--> </td>
<td valign="top">
<?PHP
if ((isset($_GET['page']) && ($_GET['page'])=="info")) {
include ('pages/info.php');
}
elseif ((isset($_GET['page']) && ($_GET['page'])=="galleri")) {
include ('pages/galleri.php');
}
elseif ((isset($_GET['page']) && ($_GET['page'])=="kontakt")) {
include ('pages/kontakt.php');
}
elseif ((isset($_GET['page']) && ($_GET['page'])=="gastbok")) {
include ('gastbok/index.php');
}
?>
<br> </td>
<td width="9"> </td>
<td width="1" valign="top"><!--DWLayoutEmptyCell--> </td>
</tr>
<tr bordercolor="#CCCCCC" bgcolor="#FFFFFF">
<td height="19" valign="top"><!--DWLayoutEmptyCell--> </td>
<td valign="top"><!--DWLayoutEmptyCell--> </td>
<td colspan="2" valign="top"><!--DWLayoutEmptyCell--> </td>
</tr>
</table></td>
</tr>
<tr>
<td height="260"> </td>
</tr>
<tr bgcolor="#FFFFFF">
<td height="24"> </td>
<td> </td>
</tr>
</table></td>
</tr>
<tr>
<td height="32" valign="top" background="/ruta.gif"><!--DWLayoutEmptyCell--> </td>
</tr>
</table>
</body>
</html>
Vad menar du med pagingen? Hamnar du inte på samma sida efter att formuläret är skickat (om det nu är dit man ska).
Använder du includes kan du prova att plocka bort $_SERVER['PHP_SELF'] från raden
echo "<form name=\"mess\" action=\"" . $_SERVER['PHP_SELF'] . "\" method=\"post\">";
alltså
echo "<form name=\"mess\" action=\"\" method=\"post\">";
så borde servern sköta om att du går tillbaka till sidan som includerar formuläret.
Jag kan ha missuppfattat hur du menar och då får du ge en närmare förklaring :)
kjell: Tack det löste problemet, fungerar nu som det ska!
Sista lilla för att det ska bli perfekt är att den ska inkludera css filen riktigt.
Om jag går till den riktiga urlen (https://www.sidan.com/gastbok/) så ser det ut som det ska, men om jag går vi root sidan (https://www.sidan.com) och sedan till gästbok så har den bara fått med typsnittet inte färgen som ska vara i formulär rutorna.
I första raden i den kod du postade tidigare finns
<link href="style.css" rel="stylesheet" type="text/css">
Se till att den utgår från webbroten med inledande /
<link href="/style.css" rel="stylesheet" type="text/css">
eller
<link href="/EnMapp/style.css" rel="stylesheet" type="text/css">
där du anger mappstrukturen till css-filen.
Tackar! Missade biten med mappen/stylesheet.css på index sidan.