PHP in MYSQL eintragen

Status
Nicht offen für weitere Antworten.

Iceman8712

Gesperrt
Hallo Leute

Habe ein kleines Problem.
Ich habe den Befehl:

PHP:
<?
  $eintrag = "INSERT INTO links (url, urlname, name,
  banner, beschreibung) VALUES ('$url', '$hpname',
  '$name', '$banner','$beschreibung')";
  ?>
und
PHP:
<?
  $eintragen = mysql_query($eintrag);
  ?>

genommen um die Werte in den Variabeln in die Datenbank zu schreiben. Jetzt schreibt es mir aber die Variabeln bei jedem Zugriff auf die Seite in die Datenbank und dies will ich mit einer if-Schleife abfangen, nur gehts nicht, hier der Code:

PHP:
<?
if($Eintragen == "Eintragen"){

  $eintrag = "INSERT INTO websense (url, userid, location, regdeskuser, ip, autodate, autotime, date) VALUES ('$url', '$userid', '$location', '$regdeskuser', '$ip', '$autodate', '$autotime', '$date')";
  $eintragen = mysql_query($eintrag);

}
else
{
}

?>


<FORM ACTION="" METHOD="POST" onSubmit="return chkFormular()" name="websense" OnReset="return ResetCheck()">

<?php
echo "<input type=\"hidden\" name=\"ip\" value=\"".$_SERVER["REMOTE_ADDR"]."\">";


$autodate = date("d.m.Y");
$autotime = date("H:i");

echo "<input type=\"hidden\" name=\"autodate\" value=\"".$autodate."\">";
echo "<input type=\"hidden\" name=\"autotime\" value=\"".$autotime."\">";


?>

<table width="575" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="172"><p>URL: </p>
<td width="172"> <p>
<input type="text" name="url" size="30">
</p></tr>
<tr>
<td width="172"><p>UserID: </p>
<td width="172"> <p>
<input type="text" name="userid" size="30">
</p></tr>
<tr>
<td width="172"><p>Date (dd.mm.yyyy): </p>
<td width="172"> <p>
<input type="text" name="date" size="30">
</p></tr>
<tr>
<td width="172"><p>Location: </p>
<td width="172"> <p>
<input type="text" name="location" size="30">
</p></tr>
<tr>
<td width="172"><p>RegDesk User (Full Name): </p>
<td width="172"> <p>
<input type="text" name="regdeskuser" size="30">
</p></tr>
<tr>
<td width="409"> <p>&nbsp;</p>
<td width="506"> <p>
<input name="Eintragen" type="submit" value="Eintragen" id="Eintragen">
</form>

Irgendo schlummert da so ein kleiner Fehler, aber ich find den einfach nicht.. :( kann mir jemand helfen?
Ich will noch erwähnen, dass alles super funktioniert ohne die if und else Abfrage am Anfang... Nur wenn ich den if-Code einfüge, geht einfach nichts mehr... :(

Vielen vielen Dank schonmal im Voraus.

Gruss
Iceman8712
 
Zuletzt bearbeitet:
Also event mal so probieren:

PHP:
<?
if($_POST['Eintragen'] == "Eintragen"){

  $eintrag = "INSERT INTO websense (url, userid, location, regdeskuser, ip, autodate, autotime, date) VALUES ('$url', '$userid', '$location', '$regdeskuser', '$ip', '$autodate', '$autotime', '$date')";
  $eintragen = mysql_query($eintrag);

}
else
{
}

?>

oder so mache ich es meistens

PHP:
<?
if(isset($_POST['Eintragen'])){

  $eintrag = "INSERT INTO websense (url, userid, location, regdeskuser, ip, autodate, autotime, date) VALUES ('$url', '$userid', '$location', '$regdeskuser', '$ip', '$autodate', '$autotime', '$date')";
  $eintragen = mysql_query($eintrag);

}
else
{
}

?>

was anderes find eich jetzt im mom auch ned an Fehlerquellen
 
PHP:
<?
if(isset($_POST['Eintragen'])){

  $eintrag = "INSERT INTO websense (url, userid, location, regdeskuser, ip, autodate, autotime, date) VALUES ('$url', '$userid', '$location', '$regdeskuser', '$ip', '$autodate', '$autotime', '$date')";
  $eintragen = mysql_query($eintrag);

}
else
{
}

?>

Das funktioniert wunderbar. Muss wohl ein bisschen mehr schlafen, nein Spass. Manchmal sehe ich den Fehler nicht und komme nicht auf gute Ideen wie if isset.

Danke vielmals und einen schönen Tag noch.

Gruss
Iceman8712
 
Außerdem ist dein else-Zweig unnötig. Machs doch einfach so:
PHP:
<? 
if(isset($_POST['Eintragen'])){ 

  $eintrag = "INSERT INTO websense (url, userid, location, regdeskuser, ip, autodate, autotime, date) VALUES ('$url', '$userid', '$location', '$regdeskuser', '$ip', '$autodate', '$autotime', '$date')"; 
  $eintragen = mysql_query($eintrag); 

} 
?>

Und Variablen, die von Formularen kommen, solltest du immer als $_POST["name"] bzw. $_GET["name"] verwenden. Warum steht in den Zuvor geposteten Artikeln ;)
 
ich rate dir zu dieser Version von Blaubmania so kannst Du noch weiter abgrenzungen mit auf die Seite bringen wie update

PHP:
if($_POST['Eintragen'] == "Eintragen"){

  $eintrag = "INSERT INTO websense (url, userid, location, regdeskuser, ip, autodate, autotime, date) VALUES ('$url', '$userid', '$location', '$regdeskuser', '$ip', '$autodate', '$autotime', '$date')";
  $eintragen = mysql_query($eintrag);

}
if($_POST['Eintragen'] == "Update"){

  $eintrag = "update websense
  set url = ..... usw
}
 
Hallo!

Dann bitte so:
PHP:
if(isset($_POST['Eintragen']) AND ($_POST['Eintragen'] == "Eintragen")) {
     // INSERT-Query
}
if(isset($_POST['Eintragen']) AND ($_POST['Eintragen'] == "Update")) {
    // UPDATE-Query
}
Oder so:
PHP:
if(isset($_POST['Eintragen']) {
    if($_POST['Eintragen'] == "Eintragen") {
        // INSERT-Query
    }
 
    if(&_POST['Eintragen'] == "Update") {
        // Update-Query
    }
}
Ohne if(isset.... bekommst Du ein NOTICE (Hinweis) wenn Du error_reporting(E_ALL) nutzt.

Gruss Dr Dau

[edit]
Man könnte allerdings auch mit switch() arbeiten.
[/edit]
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Zurück