eingabeüberprüfung funktioniert nicht

ben_19

Mitglied
hallo!

ich will nun die eingaben die in meinem gästebuch gemacht werden überpüfen ..

ich hab mal nen code geschrieben, allerdings funktioniert er nicht. weiß aber leider nicht wieso. hat jemand ne idee?

PHP:
<blockquote><h2><center>Gästebucheintrag erstellen</center></h2>
<hr>
<br>
<?
function valid_email($address)
{
  if (ereg("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$", $address))
    return true;
  else
    return false;
}
if(!$senden)
{
?>
      <form action="<? $PHP_SELF ?>" method="post">
				<table width="400" border="0">
      <tr>
        <td width="70">Name:</td>
        <td><input type="text" name="gb_name" maxlength="20"></td>
      </tr>
      <tr>
        <td width="70">Email:</td>
        <td><input type="text" name="gb_mail" maxlength="30"></td>
      </tr>
      </table>
				<table width="400" border="0">
				  <tr>
                  </tr>
                  <tr>
                    <td width="70">Nachricht</td>
                    <td><textarea id="gb_eintrag" name="gb_eintrag" cols="50" rows="7"></textarea></td>
                  </tr>
				  <tr>
                    <td width="70"></td>
					<td><input class="senden" name="senden" type="image" src="button_abschicken.jpg" /></td>
				  </tr>
				</table>
				<p style="font-size:10px"><img src="important.png"> Bitte nur einmal klicken! Das System braucht einen Moment um Ihre Anfrage zu bearbeiten!</p>
      </form>
<?
}
else {
if(empty($gb_name))
{
echo "Sie haben vergessen Ihren Namen anzugeben. Gehen Sie bitte zurück und füllen Sie die Formularfelder aus.<br /><a href='javascript:history.go(-1)'>Zurück zur Eingabe</a>";
exit;
}
if(!valid_email($gb_mail))
{
  echo "Diese Emailadresse ist ungültig! Bitte überprüfen Sie Ihre Eingabe!<br /><a href='javascript:history.go(-1)'>Zurück zur Eingabe</a>";
  exit;
}
if(empty($gb_eintrag))
{
echo "Sie haben vergessen eine Nachricht einzugeben. Bitte geben Sie Ihre Message ein!<br /><a href='javascript:history.go(-1)'>Zurück zur Eingabe</a>";
exit;
}
echo "Vielen Dank für den Eintrag! <a href='gb_index.php'>Zu Ihrem Eintrag..</a><br /><br />";
}

######### AUSFÜHRUNG DES EINTRAGENS IN DER DATENBANK MIT DEN DATEN AUS DEM FORMULAR ########
include ("../inc/gb_connect.php");
$timestamp = time();
$gb_datum = date("Y-m-d",$timestamp);
$gb_zeit = time("h-m-s",$timestamp);
$gb_eintrag = nl2br($gb_eintrag);
$eintrag = "INSERT INTO dgb_daten(gb_name, gb_mail, gb_eintrag, gb_datum)
VALUES ('$gb_name', '$gb_mail', '$gb_eintrag', '$gb_datum')";
$eintragen = mysql_query($eintrag);

?>
<hr>
<blockquote><a href="gb_index.php">Einträge lesen</a></blockquote></p>
</blockquote>

danke für eure hilfe
 
Zuletzt bearbeitet:
Mach aus
PHP:
<form action="<? $PHP_SELF ?>" method="post">
das:
PHP:
<form action="<? echo $PHP_SELF; ?>" method="post">
 
danke, das wars aber leider nicht. er macht jetzt nämlich gar keine einträge mit klick auf "absenden".

wo liegt der fehler?
 
danke, aber bevor ich vordefinierte variablen benutze, muss ich erst mal wieder das script samt der überprüfung zum laufen bringen...

hierzu eine idee?

bei klick auf "absenden" (egal ob was in die felder eingetragen wurde oder nicht) lädt er die seite neu, gibt aber keine meldung aus und macht auch keinen leereintrag.

wo liegt der fehler?
 
Vielleicht ist es ja gerade das Nichtverwenden der vordefinierten Variablen die Ursache dafür, dass das Skript nicht läuft. Denn ist register_globals aus sehr verständlichen Sicherheitsgründen deaktiviert, ist es nur noch mit den vordefinierten Variablen möglich.
 
Hast wohl auch nicht mehr registry Globals drinnen und somit musst du folgendes am Anfang der Seite erstmal machen -.-

PHP:
$gb_name = $_POST['gb_name'];
$gb_mail = $_POST['gb_mail'];
$gb_eintrag = $_POST['gb_eintrag'];
$senden = $_POST['senden'];

Oder besser noch --> du ersetzte alle Variablen die du über das Formular sendest und dann prüfen willst mit $_POST['Variable']

Mach das mal und dann sehen wir weiter ^^
 
Zurück