|
| Autor |
Nachricht |
SoA Erfahrener [User]

Anmeldung: 29.04.04 Beiträge: 60
|
Verfasst am: 08.08.2004, 15:12 Titel: dateien verarbeiten mit php |
|
|
moinsen ich progge gerade zum spass an nem newsletter rum der dateibasiert laufen soll...
also alle mails in nen *.txt file rein und den auslesen usw usw
nun kommt dieser fehler
| Zitat: | | Warning: file(newsletter.txt) [function.file]: failed to create stream: Permission denied in |
was ist falsch?
auch wenn ich vorher chmod($datei, 0600); mache kommt das ...
bissel code kann ich euch auch noch geben...
| Code: |
if($anmelden == true && !$fehler)
{
if(file_exists($datei))
{
$inhalt = file($datei) or die("file() geht nicht");
for($x = 1; $x <= count($inhalt) && !$fehler; $x++)
{
if($inhalt[$x] == $email)
{
$fehler = "Deine E-Mail ist schon registriert.<br>Ein weiteres Anmelden ist nicht nötig.";
}
}
} |
so sieht das zb aus...
cu
SoA _________________ wer kämpft kann verlieren,
wer nicht kämpft hat schon verloren!
|
|
| Nach oben |
|
 |
Andreas Schroth Bekannter [Admin]


Anmeldung: 08.04.04 Beiträge: 1664 Wohnort: Lauf a. d. ...
|
|
| Nach oben |
|
 |
SoA Erfahrener [User]

Anmeldung: 29.04.04 Beiträge: 60
|
Verfasst am: 09.08.2004, 13:24 Titel: |
|
|
hmmm dange
n paar fehler sind nun erstmal weg...
nur komm ich immern och nicht wirklich wieter ^^
ich poste einfach mal das ganze script *g
| Code: |
<?
$datei = "newsletter.txt";
if($submit)
{
// Newsletter Anmelden
/*
if(!$email || !ereg("@", $email))
{
$fehler = "Überprüfe bitte deine E-Mail Adresse.";
}
*/
if($anmelden == true && !$fehler)
{
if(file_exists($datei))
{
$inhalt = file($datei) or die("file() geht nicht");
for($x = 0; $x <= count($inhalt) && !$fehler; $x++)
{
echo $inhalt[$x]."<br>";
if($inhalt[$x] == $email)
{
$fehler = "Deine E-Mail ist schon registriert.<br>Ein weiteres Anmelden ist nicht nötig.";
}
}
}
}
// Newsletter Abmelden
elseif(!$fehler)
{
if(file_exists($datei))
{
for($x = 0; $x <= $inhalt && !fehler; $x++)
{
if($inhalt[$x] == $email)
{
unset($inhalt[$x]);
}
elseif($x = count($inhalt))
{
$fehler = "Deine E-Mail Adresse war überhaupt nicht registriert.<br>Falls du dir sicher bist, das sie doch eingetragen ist, überprüfe bitte ihre Schreibweise.";
}
}
}
}
// Fehlerausgabe oder Update der Datei
if($fehler)
{
unset($submit);
}
else
{
fopen($datei, "w");
for($x = 0; $x <= count($inhalt); $x++)
{
$emails .= $inhalt[$x]."\n";
}
fwrite($datei, $emails);
fclose($datei);
}
} |
soweit bin ich bis nu...
als fehler kommt:
| Zitat: |
Warning: fwrite(): supplied argument is not a valid stream resource in /home/www/web138/html/musicpool/newsletter.php on line 70
Warning: fclose(): supplied argument is not a valid stream resource in /home/www/web138/html/musicpool/newsletter.php on line 71
|
was is nu wieder falsch?? :p
btw... bissu wieda daheim andi oder bissu son nerd das du selbs im urlaub nich ohne auskommst?
cu
SoA _________________ wer kämpft kann verlieren,
wer nicht kämpft hat schon verloren!
|
|
| Nach oben |
|
 |
Andreas Schroth Bekannter [Admin]


Anmeldung: 08.04.04 Beiträge: 1664 Wohnort: Lauf a. d. ...
|
Verfasst am: 09.08.2004, 16:54 Titel: |
|
|
mhm...ich habe jetzt keine Zeit um dein Script zu analysieren...aber um auf deine Frage zu antworten: Ich bin im Urlaub...und komme auch ohne Internet aus, nur kann ich die Seiten nicht einfach 2 Wochen alleine lassen  _________________
Computer-tipps.net / Forumprofi.de
Hier sind die Foren-Regeln zu finden.
|
|
| Nach oben |
|
 |
iznogood Erfahrener [User]

Anmeldung: 28.06.04 Beiträge: 71
|
Verfasst am: 24.09.2004, 10:12 Titel: |
|
|
wie sind denn die schreib/lese rechte der newsletter.txt auf dem server ??
mfg
izno _________________ Signatur
| Zitat: | | eine klammer die man nicht aufmacht kann man nicht vergessen zu schließen |
easy programming != dirty programming
|
|
| Nach oben |
|
 |
Andreas Schroth Bekannter [Admin]


Anmeldung: 08.04.04 Beiträge: 1664 Wohnort: Lauf a. d. ...
|
|
| Nach oben |
|
 |
sunbringer Helfer [Mod]


Anmeldung: 19.09.04 Beiträge: 222
|
Verfasst am: 25.09.2004, 22:50 Titel: |
|
|
Ist das das vollständige Scipt?
Ich hab dort nur 63 Zeilen gezählt, die Fehler sollen aber in Zeile 70 und 71 auftreten.... kopier mal bitte nur diese beiden Zeilen hier ins Forum... _________________ Sind wir Helden oder Roggenbrötchen?
Microcosm Media | Detektiv | Umwelt Atlas
|
|
| Nach oben |
|
 |
sunbringer Helfer [Mod]


Anmeldung: 19.09.04 Beiträge: 222
|
Verfasst am: 25.09.2004, 23:18 Titel: |
|
|
Kann sein, das ich den Fehler habe...
wenn ich das richtig geehen habe , wilslt du die Datei öffnen, die bisherigen eMails auslesen und dann eine neue hinzufügen, richtig?
du benutzt aber fopen($datei, "w");
das w bedeutet aber das die Datei nur zum schreiben geöffnet wird, also nicht ausgelesen werden kann. probier mal r+ anstatt w... damit öffnest du die Datei zum lesen und schreiben und der Zeiger wird auf den anfang der Datei gesetzt.
ansonsten gibt es noch ein schönes kleines Script, das dir für fwrite() ne genauer Fehlermelsung bringt, bau das mal zum testen ein, wenn noch nciht gehen sollte:
| Code: | <?php
$filename = 'test.txt';
$somecontent = "Füge dies Datei hinzu\n";
// Sichergehen, dass die Datei existiert und beschreibbar ist
if (is_writable($filename)) {
// Wir öffnen $filename im "Anhänge" - Modus.
// Der Dateizeiger befindet sich am Ende der Datei, und
// dort wird $somecontent später mit fwrite() geschrieben.
if (!$handle = fopen($filename, "a")) {
print "Kann die Datei $filename nicht öffnen";
exit;
}
// Schreibe $somecontent in die geöffnete Datei.
if (!fwrite($handle, $somecontent)) {
print "Kann in die Datei $filename nicht schreiben";
exit;
}
print "Fertig, in Datei $filename wurde $somecontent geschrieben";
fclose($handle);
} else {
print "Die Datei $filename ist nicht schreibbar";
}
?> |
_________________ Sind wir Helden oder Roggenbrötchen?
Microcosm Media | Detektiv | Umwelt Atlas
|
|
| Nach oben |
|
 |
iznogood Erfahrener [User]

Anmeldung: 28.06.04 Beiträge: 71
|
Verfasst am: 27.09.2004, 14:13 Titel: |
|
|
| Zitat: | | Danke für deine Antwort, aber dasselbe habe ich auch schon lange geschrieben... |
@andreas Schroth: Danke für deine Antwort ... hab ich leider nirgends gelesen  _________________ Signatur
| Zitat: | | eine klammer die man nicht aufmacht kann man nicht vergessen zu schließen |
easy programming != dirty programming
|
|
| Nach oben |
|
 |
Andreas Schroth Bekannter [Admin]


Anmeldung: 08.04.04 Beiträge: 1664 Wohnort: Lauf a. d. ...
|
|
| Nach oben |
|
 |
SoA Erfahrener [User]

Anmeldung: 29.04.04 Beiträge: 60
|
Verfasst am: 27.09.2004, 21:08 Titel: |
|
|
tut mir echt leid jungs... hab jez formatiert und das script weggeschmissen...
son dreck... kann ich jez eh nochmal coden und werde mir hier die ganzen tipps zu herzen nehmen
bis dann
SoA _________________ wer kämpft kann verlieren,
wer nicht kämpft hat schon verloren!
|
|
| Nach oben |
|
 |
SoA Erfahrener [User]

Anmeldung: 29.04.04 Beiträge: 60
|
Verfasst am: 25.10.2004, 17:18 Titel: |
|
|
so... hab mich nun seit langem mal wieder na meinen newsletter gesetzt den ich dann später vielleicht irgendwo als open source abliefern will...
meine frage... kann ich mir irgendwie diese rechte auf eine datei zurückgeben lassen?
also mit chmod() kann man sie ja ändern... nur wie kann ich sie mir anzeigen lassen?
cu
SoA _________________ wer kämpft kann verlieren,
wer nicht kämpft hat schon verloren!
|
|
| Nach oben |
|
 |
SoA Erfahrener [User]

Anmeldung: 29.04.04 Beiträge: 60
|
Verfasst am: 25.10.2004, 17:51 Titel: |
|
|
soooooo... hab ich mal annähernd was fertig gestellt...
wer interesse hat und die dateien mal haben will und mir dann bitte auch kritik dazu gibt (man kann sicher noch 1000 sachen besser machen) dem schick ich das zeug gerne per mail...
soweit bin ich gerade mal auf die schnelle mit dem kot gekommen... ist noch nicht fertig und auch noch 100te fehler drin aber ich poste es trotzdem schon mal...
hier laso version 0.1
| Code: |
<html>
<head>
<title>Newsletter</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
include("./newsletter_config.inc.php");
$ordner = opendir($ordner);
if(!file_exists($datei) || !is_writable($datei))
{
if(!$handle = fopen($datei, "w+"))
{
$fehler = "Die Datei in der die Adressen gespeichert werden ist nicht existenz und konnte auch nicht angelget werden.";
}
else
{
chmod($datei, 0600);
fclose($handle);
}
}
if($submit && $anmelden == "true" && !$fehler)
{
$inhalt = file($datei);
for($i = 0; $i <= count($inhalt) && !$fehler; $i++)
{
if($inhalt[$i] == $email)
{
$fehler = "Deine E-Mail Adresse ist bereits registriert.";
}
if(!$fehler)
{
copy($datei, $backup_datei);
$handle = fopen($datei, "a");
fwrite($handle, $email."\n");
fclose($handle);
}
}
}
elseif($anmelden == "false" && !$fehler)
{
$inhalt = file($datei);
for($i = 0; $i <= count($inhalt) && !$exit; $i++)
{
if($inhalt[$i] == $email)
{
unset($inhalt[$i]);
$exit = true;
}
elseif($i > count($inhalt))
{
$fehler = "Deine E-Mail Adresse war überhaupt nicht registriert.";
}
}
copy($datei, $backup_datei);
unlink($datei);
$handle = fopen($datei, "a");
for($i = 0; $i <= count($inhalt); $i++)
{
fwrite($handle, $inhalt[$i]."\n");
}
fclose($handle);
}
if($fehler)
{
unset($submit);
}
clearstatcache();
if(!$submit)
{
?>
<div align="center">
<p>
<?php
if($fehler)
{
echo $fehler;
}
?>
</p>
<form method="post" action="<?php echo $PHP_SELF; ?>">
<table width="300" class="layout">
<tr>
<td align="left">
E-Mail:<br>
<input name="email" type="text" value="<?php echo $email; ?>" size="30" class="textfeld">
</td>
<td align="left">
<input type="radio" name="anmelden" value="true" checked> Anmelden<br>
<input type="radio" name="anmelden" value="false"> Abmelden
</td>
</tr>
<tr>
<td align="center" colspan="2">
<br>
<input type="submit" name="submit" value="Abschicken" class="button">
</td>
</tr>
</table>
</form>
</div>
<?php
}
?>
</body>
</html>
|
bis dann
SoA _________________ wer kämpft kann verlieren,
wer nicht kämpft hat schon verloren!
|
|
| Nach oben |
|
 |
SoA Erfahrener [User]

Anmeldung: 29.04.04 Beiträge: 60
|
Verfasst am: 27.10.2004, 10:13 Titel: |
|
|
ach ich gebs auf
ich mac h das ganze nu auf mysql basis... da hab ich sicher ab und zu auch nen prob mit db erstellung durch script usw... oder vielleicht isses ja auch ganz leicht (:
man wirds sehn... nur das mit den dateien hat so keinen zweck... dauern hat man nicht genug rechte usw usw... :S
najoa... ersma bis später...
cu
SoA  _________________ wer kämpft kann verlieren,
wer nicht kämpft hat schon verloren!
|
|
| Nach oben |
|
 |
|
|