Problem med at få egen function til at virke.
Ok.. Hold godt fast..Alt det her startede som en måde at se om en bruger havde skrevet alt det der skulle være i en omgang input felter, og hvis det ikke var gjort, så sende vedkommene tilbage til siden hvor formen er på...
Derfor skulle de informationer som vedkommene havde skrevet selvfølgelig osse være der..
Alt det udmundede i den her function:
<?PHP
function chekform($mode, $value, $valuename, $msg)
{
if($mode == 1)
{
if(isset($_POST['$valuename']))
{
echo $_POST['$valuename'];
}
}
elseif($mode == 2)
{
if(isset($_POST['missing']))
{
$pos = stripos($_POST['missing'], $valuename);
if($pos !== false)
{
echo $msg;
}
}
}
elseif($mode == 3)
{
echo '<form name="sendback" method="post" action="';
echo $_POST['scriptname'];
echo '" >';
}
elseif($mode == 4)
{
$strlen = strlen($value);
if($strlen <= 1)
{
if(!isset($missing))
{
$missing = $valuename;
}
else
{
$missing .= $valuename;
}
echo'<input type="hidden" name="';
echo $valuename;
echo'" value="';
echo $value;
echo '" >';
}
}
elseif($mode == 5)
{
if(isset($missing))
{
echo '<input type="hidden" name="missing" value="';
echo $missing;
echo '">';
$valok = 0;
}
else
{
$valok = 1;
}
echo '</form>';
if(isset($missing))
{
echo '<script type="text/javascript">
document.sendback.submit();
</script>';
}
}
}
?>
Mode 1: Bruges til at skrive det som brugeren havde skrevet.
Mode 2: Bruges til at fortælle at brugeren mangler at skrive noget.
Mode 3: Laver starten til det der skal sendes tilbage.
Mode 4: Kontrollere om variablen er sat.
Mode 5: Slutte formen til at sende tilbage, og sender tilbage hvis nødvendigt.
Se.. Det er jo meget godt!.. Men det virker ikke!..
For at i osse har det med... Kører jeg siderne sådan her:
"temp.createnews.php"
//Indhold Start
echo '<!--Indhold start-->';
echo '
<table width="570">
<tr><td>
<h1>Opret kode</h1><br>
<form name"Form" method="post" action="temp.nyhed.gem.php?mode=function" onSubmit="return checkform();">
<input type="hidden" name"scriptname" value="';
echo 'http://';
echo $_SERVER['HTTP_HOST'];
echo $_SERVER['REQUEST_URI'];
echo '">
<input type="hidden" name="mode" value="function">
<p class="medium">Overskrift<br>
<input class="input" value="';
echo chekform(1, "", title, "");
echo '" name="title">';
echo chekform(2, "", title, "<p class=\"alert\">Du skal skrive en titel!<p>");
echo '</p>
<p class="medium">Navn:<br>
<input class="input" maxlength="19" value="';
echo chekform(1, "", name, "");
echo '" name="name">';
echo chekform(2, "", title, "<p class=\"alert\">Du skal skrive dit navn!<p>");
echo '</p>
<p class="medium">Nyheden:<br>
<textarea class="input" name="text" value="';
echo chekform(1, "", text, "");
echo '" cols="50" rows="10" wrap="VIRTUAL"></textarea>
<br>';
echo chekform(2, "", title, "<p class=\"alert\">Du skal skrive en nyhed!<p>");
echo '<br>
<input type="Submit" class="input" value="Opret nyhed!">
</p><br>
</form>
<a href="login.logout.php?mode=function">Log ud</a>';
echo '</td></tr></table>';
echo '<!--Indhold slut-->';
//Indhold Slut
"temp.nyhed.gem.php"
echo chekform(3, "", "", "");
echo chekform(4, $_POST['title'], "title", "");
echo chekform(4, $_POST['name'], "name", "");
echo chekform(4, $_POST['text'], "text", "");
echo chekform(5, "", "", "");
echo $missing;
echo $scriptname;
if($valok == 1)
{
$time = time();
mysql_query("INSERT INTO elver_nyt (title, name, date, text) VALUES ('$title', '$name', '$time', '$text')") OR DIE (mysql_error());
mysql_close;
header("Location: index.php");
}
I stedet for at blive sendt tilbage. så sker der ingenting...
Og i html'en står det her:
<!--Content start-->
<table width="570" height="0%">
<tr>
<td><form name="sendback" method="post" action="" ><input type="hidden" name="title" value="" ><input type="hidden" name="name" value="" ><input type="hidden" name="text" value="" ></form></td></tr>
</table>
<!--Content end-->
Puha!.. Det var sådan set mit problem... Det virker ikke!.. Så hvis du har fundet en fejl.. Eller har en idé... Eller har en anden måde at gøre det på som der virker... Så ville jeg være taknemmelig!.. :-)
På forhånd mange mange tak...
Claus :-)
