hallo jörg,
immerhin sehe ich jetzt mein kontaktformular, bisher hatte ich eine fehlermeldung.
wenn ich jetzt ohne daten einzutragen auf abschicken klicke, kommen eine reihe von meldungen:
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'www-data'@'localhost' (using password: NO) in /users/ttc-tobi-2/www/kontakt.php on line 82
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /users/ttc-tobi-2/www/kontakt.php on line 82
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'www-data'@'localhost' (using password: NO) in /users/ttc-tobi-2/www/kontakt.php on line 83
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /users/ttc-tobi-2/www/kontakt.php on line 83
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'www-data'@'localhost' (using password: NO) in /users/ttc-tobi-2/www/kontakt.php on line 84
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /users/ttc-tobi-2/www/kontakt.php on line 84
Warning: mysqli_query() expects at least 2 parameters, 1 given in /users/ttc-tobi-2/www/kontakt.php on line 89
Warning: mysqli_error() expects exactly 1 parameter, 0 given in /users/ttc-tobi-2/www/kontakt.php on line 90
Die Datenbankzugangsdaten stimmen wohl nicht
Hier fehlt der User als Argument:
$db = new mysqli('localhost', 'datenbankname', 'passwort');
klappt immer noch nicht: immer noch die fehlermeldungen aus meinem letzten post
<?php
session_start();
include "inc/kopf.php.inc";
include "inc/menu.php.inc";
$db = new mysqli('localhost', 'username', 'password', 'database');
if(mysqli_connect_errno()) {
die('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')');
}
$name="";
$email="";
$eintrag="";
$meldung="";
if (isset($_POST["sicherheitscode"])) {
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
$name=addslashes(htmlspecialchars(trim($_POST["name"])));
$email=addslashes(htmlspecialchars(trim($_POST["email"])));
$eintrag=addslashes(htmlspecialchars(trim($_POST["eintrag"])));
$eintrag=ereg_replace("(\r\n|\n|\r)","<br>",$eintrag);
if($name=="") {
$meldung="<p>Bitte auf jeden Fall einen Namen eintragen.</p>\n";
$name=$_POST["name"];
$email=$_POST["email"];
$eintrag=$_POST["eintrag"];
}
elseif (($email=="") OR (!ereg('^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.([a-zA-Z]){2,4})$', $email))) {
$meldung="<p>Bitte eine gültige eMail-Adresse hinterlegen.</p>\n";
$name=$_POST["name"];
$email=$_POST["email"];
$eintrag=$_POST["eintrag"];
}
elseif ($eintrag=="") {
$meldung="<p>Bitte auf jeden Fall eine Nachricht verfassen.</p>\n";
$name=$_POST["name"];
$email=$_POST["email"];
$eintrag=$_POST["eintrag"];
}
else
{
$meldung="<p>Nachricht wurde versandt!</p>\n";
$subject="Kontakt durch 123.de";
$mailcontent="Es wurde eine neue Nachricht über das Kontaktformular verschickt:\n\n";
$mailcontent.="Name: ".$name."\n\n";
$mailcontent.="eMail: ".$email."\n\n";
$mailcontent.="Eintrag: \n".$eintrag."\n\n";
$mailcontent=ereg_replace("(<br>)","\n",$mailcontent);
$mailcontent=str_replace(""","\"",$mailcontent);
$mailcontent=str_replace("&","&",$mailcontent);
$mailcontent=str_replace("<","<",$mailcontent);
$mailcontent=str_replace(">",">",$mailcontent);
$from_address="From: \"".$name."\" <".$email.">\n";
mail("123@123.net",$subject,$mailcontent,$from_address);
$name="";
$email="";
$eintrag="";
}
}else{
$meldung="<p>Der Sicherheitscode war falsch!</p>\n";
$name=$_POST["name"];
$email=$_POST["email"];
$eintrag=$_POST["eintrag"];
}
$name=mysql_real_escape_string($_POST["name"]);
$email=mysql_real_escape_string($_POST["email"]);
$eintrag=mysql_real_escape_string($_POST["eintrag"]);
mysqli_query("INSERT INTO kontakt
(name, email, eintrag)
VALUES
('$name', '$email', '$eintrag')")
or die(mysqli_error());
}
echo "<div id=\"box1\">\n";
echo "<p><b><font size=\"+2\">Kontakt</font></b></p>\n";
if ($meldung != "") {echo $meldung;}
echo "<center>\n";
echo "<form name=\"kontaktform\" action=\"kontakt.php\" method=\"POST\">\n";
echo "<table width=\"10\">\n";
echo "<tr>\n";
echo "<td align=\"left\" colspan=\"2\">Alle Felder sind Pflichtfelder.</td>\n";
echo "</tr>\n";
echo "<tr><td colspan=\"2\"> </td></tr>";
echo "<tr>\n";
echo "<td align=\"left\">Name:</td><td align=\"left\"><input name=\"name\" type=\"text\" id=\"name\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
echo " value=\"".$name."\"";
echo "></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td align=\"left\">eMail:</td><td align=\"left\"><input name=\"email\" type=\"text\" id=\"email\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
echo " value=\"".$email."\"";
echo "></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td align=\"left\" valign=\"top\">Nachricht:</td><td align=\"left\"><textarea name=\"eintrag\" cols=\"70\" rows=\"7\" id=\"eintrag\" class=\"eingabe\">".$eintrag."</textarea></td>\n";
echo "</tr>\n";
echo "<tr><td colspan=\"2\"> </td></tr>";
//eingefügt aus www.stoppt-den-spam.info
echo "<tr>\n";
echo "<td align=\"left\"><img src=\"captcha/captcha.php\" border=\"0\" title=\"Sicherheitscode\"></td>\n";
echo "<td align=\"right\">Sicherheitscode vom Bild: <input type=\"text\" name=\"sicherheitscode\" size=\"5\"></td>\n";
echo "</tr>\n";
//hier ende des einfügens
echo "<tr><td colspan=\"2\"> </td></tr>";
echo "</table>\n";
echo "<input name=\"formposten\" type=\"submit\" value=\"Abschicken\" class=\"button\" onclick=\"this.value='Bitte warten...';this.enabled=false;\"></center><br>\n";
echo "</form>\n";
echo "</center>\n";
include "aktualisierung.php";
echo "</div>\n";
include "inc/ende.php.inc";
?>
so mittlerweile funktioniert das script.
verbindung zur datenbank besteht, und daten werden auch eingetragen. daten auslesen funktioniert auch.
einziges problem:
sobald jemand unvollständig das formular ausfüllt und abschickt erhält die datenbank den eintrag. wie kann ich´s einstellen dass nur an die datenbank was gesendet wird wenn alle felder ausgefüllt sind (wie bei der email, da klappt es ja)?
mfg tobi
läuft so wie ich es will. endlich juhu
danke für deine hilfe jörg