Newslettersystem mit mysql
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
absender
anzahl
attribut
benutzername
datei
email
insert
not
null
order
pawort
resource
result
richtig verstehe
spalt
tabelle
tag
transitional
zeile
zeilenumbruch
-
HI,
ich bins mal wieder...
ich hab mir gestern ein Newslettersystem geschrieben das basiert nicht auf myssql, nicht auf *.txt tag/datei">dateien sondern auf *.html dateien. ich h?tte aber gern, dass es auf mysql l?uft. allerdings hab ich mich an mysql noch nicht herangetraut, was eigentlich normal ist da ich erst seit 2 wochen php programmiere und vorher nur html gekonnt habe!! ich habe hier mal alle quelltexte!!:
1. die admin_login.html
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Admin_Login</title>
<meta name="author" content="Prinz Porno">
</head>
<body>
<form method="post" action="admin_login.php">
Benutzername:<br>
<input type=text name="name"><br><br>
Passwort:<br>
<input type=password name="pw"><br><br>
<INPUT TYPE="submit" VALUE="Einloggen">
</form>
</body>
</html>
2. admin_login.php
<?
session_start();
$name = $_POST['name'];
$pw = $_POST['pw'];
if ($name == "" || $pw == "")
{
echo "Du hast kein Benutzername oder kein Passwort eingegeben!!";
};
if ($name == "root" || $pw == "admin")
{
echo "Du bist als Admin eingeloggt!!<br>";
echo "Hier kannst du nun deine News eintragen.<br>";
include ("news_eintragen.html");
}
else
{
echo "Das PW war falsch!!!";
};
?>
3. news_eintragen.html
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>News_eintragen</title>
<meta name="author" content="Prinz Porno">
</head>
<body>
<form method="post" action="news_eintragen.php">
News:<br>
<textarea name="news" cols="50" rows="30">
<html>
<body>
<b>Dein Newstitel</b><br>
Deine News<br>
F?r nen Zeilenumbruch immer: <br>
verwenden!!
<bR><br>
mfG<br><bR>
Dein Name<br><br>
</body>
</html></textarea>
<INPUT TYPE="submit" VALUE="Eintragen">
</form>
</body>
</html>
4. news_eintragen.php
<?
session_start();
$news = $_POST['news'];
if ($news == "")
{
echo "Du hast keine News eingetragen!!";
}
else
{
$fp = fopen ("news.html","w");
fwrite($fp,$news,9999999999999999);
fclose($fp);
echo "Die News wurden erfolgreich eingetragen!!<br><br><br>";
echo "So sieht dein Newsletter jetzt aus:<br><br>";
include ("news_anzeigen.php");
}
?>
5. news.html (hier werden die news gespeichert)
(die ist leer, weil die html tags gleich mit eingef?gt werden.)
6. news_anzeigen.php
<?
echo "News:<br><br>";
include ("news.html");
?>
w?re nett wenn mir jemand helfen k?nnte!!
mfg
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wenn ich Dich richtig verstehe, willst Du diesen Teil ersetzen:
4. news_eintragen.php
<?
session_start();
$news = $_POST['news'];
if ($news == "")
{
echo "Du hast keine News eingetragen!!";
}
else
{
$fp = fopen ("news.html","w");
fwrite($fp,$news,9999999999999999);
fclose($fp);
echo "Die News wurden erfolgreich eingetragen!!<br><br><br>";
echo "So sieht dein Newsletter jetzt aus:<br><br>";
include ("news_anzeigen.php");
}
?>
Wenn ja, dann mach das so:
connect.inc.php
<?
mysql_connect("mysql.lima-city.de","User","passwort") or die ("Es konnte keine Verbindung zur Datenbank hergestellt werden!");
mysql_select_db("DBxxxxxxxxxxxxxxxxxxxxxxxxxx") or die ("Datenbank wurde nicht gefunden!");
?>
News Eintragen:
<?
session_start();
include ("connect.inc.php");
$news = $_POST['news'];
if ($news == "")
{
echo "Du hast keine News eingetragen!!";
}
else
{
$sql = "INSERT INTO tabelle (news) VALUES ('$news')";
$result = mysql_query($sql);
echo "Die News wurden erfolgreich eingetragen!!<br><br><br>";
echo "So sieht dein Newsletter jetzt aus:<br><br>";
include ("news_anzeigen.php");
}
?>
So, das sollte so funktionieren!
-
allerdings m?ssten die daten nun noch aus der datenbank geholt werden...
wie geht das??
dazu m?sste ich ja die news_anzeigen.php ?ndern....
kann mir ja noch jemand helfen??
ps: thx compactdisc
mfg -
hallo??
wie kann ich die news nun wieder aus der datenbank holen un in der news_anzeigen.php anzeigen lassen??
bitte helft mir!!! -
news_versenden.php
<?
include("connect.inc.php");
$sql = "SELECT * FROM email";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
$email = $row['email'];
$news = $row['news'];
$titel = $row['titel'];
mail($email,$titel,$news,"From: absender <absender@example.com>");
}
?>
so sollte es funktionieren! -
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/prinz7/html/News/news_versenden.php on line 8
das wird da angezeigt!!
aber danke dass du so was geschrieben hast aber ich habe ja eine datei:
news_anzeigen.php die news sollen dort angezeigt werden!! w?re das m?glich??
mfg -
aber danke dass du so was geschrieben hast aber ich habe ja eine datei:
news_anzeigen.php die news sollen dort angezeigt werden!! w?re das m?glich??
news_anzeigen.php
<?
include("connect.inc.php");
$sql = "SELECT * FROM deineTabelle ORDER by ID DESC";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
$news = $row['news'];
// usw.
echo "News: $news<br>";
}
?>
Was wichtig ist:
1. Wie heisst Deine Tabelle?
2. Wie heissen die Spalten in der Tabelle?
3. Hast Du schon eine connect.inc.php-Datei?
-
mmh muss ich erst eine tabelle erstellen. wie viele spalten brauch ich?? un wie soll ich sie benennen... un ich bracuh noch die funktioenen!...
-
id,news,titel,versendet,timestamp,autor <--- das sollte reichen!
-
was sollen die tabellen f?r eigenschaften haben??
ID:
TYP?
L?ng?
Attribute?
News:
TYP?
L?ng?
Attribute?
Titel:
TYP?
L?ng?
Attribute?
versendet:
TYP?
L?ng?
Attribute?
timestap:
TYP?
L?ng?
Attribute?
autor:
TYP?
L?ng?
Attribute?
mfg -
so, mach mal das hier:
CREATE TABLE `news` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`news` TEXT NOT NULL ,
`titel` TEXT NOT NULL ,
`versendet` INT DEFAULT '0' NOT NULL ,
`timestamp` TEXT NOT NULL ,
`autor` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
); -
ist erledigt und nun??
-
news_anzeigen.php
<?
include("connect.inc.php");
$sql = "SELECT * FROM news ORDER by id DESC";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
$news = $row['news'];
$titel = $row['titel'];
$autor = $row['autor'];
$versendet = $row['versendet'];
echo "Titel: $titel<br>Autor: $autor<br>Versendet: $versendet<br>News: $news<br><br><br>";
}
?>
Falls ein bestimmter Eintrag in der Datenbank schon mal versandt worden ist, dann ist $versendet = 1, ansonsten 0
--------------------------------
Du brauchst noch eine E-mail-Tabelle, damit man auch die Leute, die E-mails erhalten sollen, dort eingetragen werden!
CREATE TABLE `email` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`name` TEXT NOT NULL ,
`email` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
);
news_versenden.php
<?
include("connect.inc.php");
$id = 1 // ID der News, die gesendet werden sollen!
$sql = "SELECT * FROM email";
$result = mysql_query($sql);
$sql2 = "SELECT * FROM news WHERE id='$id'";
$result2 = mysql_query($sql2);
while($row = mysql_fetch_array($result2))
{
$news = $row['news'];
$titel = $row['titel'];
$versendet = $row['versendet'];
$autor = $row['autor'];
if($versendet == 0)
{
while($zeile = mysql_fetch_array($result))
{
$email = $zeile['email'];
mail($email,$titel,$news,"From: $autor <absender@example.com>");
}
}
else
{
echo "News wurde bereits versandt!";
}
}
?>
So, versuch das mal! -
thx aber ich wollte eigentlich dass die news nicht per mail versendet werden sondern in meinem newsbereich angezeigt werden...
-
prinz7 schrieb:
thx aber ich wollte eigentlich dass die news nicht per mail versendet werden sondern in meinem newsbereich angezeigt werden...
aha....
<?
include("connect.inc.php");
$anzahl = 15; // Anzahl News, die angezeigt werden sollen!
$sql2 = "SELECT * FROM news LIMIT 0,$anzahl";
$result2 = mysql_query($sql2);
while($row = mysql_fetch_array($result2))
{
$news = $row['news'];
$titel = $row['titel'];
$autor = $row['autor'];
echo "$titel<br>Autor: $autor<br>Text:<br>$news";
}
?> -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage