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