php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.05.2010, 15:32  
Benutzer
 
Registriert seit: 28.11.2008
Beiträge: 44
PHP-Kenntnisse:
Anfänger
Inaliii befindet sich auf einem aufstrebenden Ast
Standard textbasierendes gästebuch arrayfehler?

hallo ich habe eine frage da ich im moment nicht weiter komme vielleicht kann mir jemand von euch helfen

ich habe ein textdateibasierendes gästebuch den code hier:

PHP-Code:
PHP-Code:
error_reporting(E_ALL);

  
// Der Name der Gästebuch-Datei lautet:
  
$datenbankdatei 'gaestebuch.txt';
  
$mailempfaenger 'postfach@domain.tld';

  
// Überprüfung, ob die Datei vorhanden ist.
  // wenn nicht vorhanden, dann versuche diese zu erstellen
  // wenn das Erstellen nicht erfolgreich war (mangelnde Rechte), dann Skript abbrechen
  
if(!file_exists($datenbankdatei))
    if(!@
touch($datenbankdatei))
      die(
"Fehler: Die Datenbank ist nicht erreichbar.");



  if(isset(
$_POST['button']))
  {
             if(
$_POST['name'] == "" || $_POST['eintrag'] == "")
           {
         echo 
'Es fehlen Angaben. Bitte vollständig ausfüllen';
           }
               else
               {
 
      
$eintrag date('d.m.Y - H:i:s').' || '.$_SERVER["REMOTE_ADDR"].' || '.$_POST['name'].' || '.$_POST['email'].' || '.$_POST['eintrag']."\n";

    
      if(!
$file = @fopen($datenbankdatei,"a"))
        die(
"Fehler: Die Datenbank ist nicht erreichbar.");

    
      
flock($file,LOCK_EX) or die();

     
      if(!@
fwrite($file$eintrag))
        die(
"Fehler: Die Datenbank ist nicht erreichbar.");

   
      
flock($file,LOCK_UN) or die();

      
      
fclose($file);

      
      echo 
'<h2>Danke für deinen Eintrag</h2>Die Daten wurden erfolgreich aufgenommen.<br /><a href="'.$_SERVER["PHP_SELF"].'">Zurück zum Gästebuch</a>';


      
      @
mail($mailempfaenger"Gästebucheintrag""Folgender Eintrag wurde hinterlassen:\n\nName: ".$_POST['name']."\nAbsender: ".$_POST['email']."\nText: ".$_POST['eintrag']."\n\nIP: ".$_SERVER["REMOTE_ADDR"]."\n".date('d.m.Y - H:i:s'), "From: ".$_POST['email']."\r\nX-Mailer: PHP/" phpversion());
               }
          }
  else
  {
    
    echo 
'<h2>mein Gästebuch</h2>';

   
    
$file fopen($datenbankdatei'r');

   
            while (!
feof($file))
            {
 
      
$zeile  fgets($file5000);
      
$daten  explode(" || "$zeile);
      
$datum  $daten[0];
      
$ip     $daten[1];                                        hier entsteht fehler1
      $name   
$daten[2];                                      hier fehler 2
      $email  
$daten[3];                                          hier fehler 3
      $eintrag 
$daten[4];                                          hier fehler 4                    da die zeilenangabe der fehler ja nicht passte)

   
      if(
$name != "" && $eintrag != "")
        echo 
'<a href="mailto:'.$email.'">'.$name.'</a> schrieb am '.$datum.' folgendes:<br />'.$eintrag.'<br /><br />';

            }
    
fclose($file);

   
    echo 
'<hr />';

     } 


ich bekomme folgende meldungen:

Notice: Undefined offset: 1 in C:\xampp\htdocs\web\gaestebuch_textd\gaestebuchtes t.php on line xxx

Notice: Undefined offset: 2 in C:\xampp\htdocs\web\gaestebuch_textd\gaestebuchtes t.php on line xxx

Notice: Undefined offset: 3 in C:\xampp\htdocs\web\gaestebuch_textd\gaestebuchtes t.php on line xxx

Notice: Undefined offset: 4 in C:\xampp\htdocs\web\gaestebuch_textd\gaestebuchtes t.php on line xxx



er zeigt alles richtig an alle inhalte der textdate doch habe ich das gefühl beim auslesen des arrays kommt es zu einem problem.
natürlich könnte ich sagen ok es funktioniert ja aber ich hätte es schon gern soweit sauber, da ich noch ein paar zusäte wie anti spam usw dazu programmieren möchte.

Geändert von Inaliii (14.05.2010 um 15:54 Uhr).
Inaliii ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.05.2010, 15:50  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Inaliii Beitrag anzeigen
ich bekomme folgende meldungen:

Notice: Undefined offset: 1 in C:\xampp\htdocs\web\gaestebuch_textd\gaestebuchtes t.php on line xxx
Mach dir bitte erst mal klar, wie dumm es ist, hier die in der Meldung extra als Hilfe angegebenen Zeilenummern unkenntlich zu machen.


Und dann schaust du dir die Daten, auf die dort zugegriffen werden soll, mal genauer an, in dem du in der Zeile davor eine Kontrollausgabe mittels var_dump oder print_r machst. (<pre> erhöht die Übersichtlichkeit, sonst in den Quelltext schauen.)
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
Alt 14.05.2010, 15:53  
Benutzer
 
Registriert seit: 28.11.2008
Beiträge: 44
PHP-Kenntnisse:
Anfänger
Inaliii befindet sich auf einem aufstrebenden Ast
Standard

Das hat nichts mit dumm zu tun, ich habe meine eigenen notizien rauskopiert daherstimmten sie ja nicht mehr es geht um das array. daher sah ich es nicht als dumm an sondern als sinnlos sie drin zu lassen



ich hab sie oben im php code ergänzt
Inaliii ist offline  
Alt 14.05.2010, 15:56  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Dann berücksichtige jetzt bitte noch den zweiten Teil meiner Antwort.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
Alt 14.05.2010, 15:56  
Benutzer
 
Registriert seit: 28.11.2008
Beiträge: 44
PHP-Kenntnisse:
Anfänger
Inaliii befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ChrisB Beitrag anzeigen
Mach dir bitte erst mal klar, wie dumm es ist, hier die in der Meldung extra als Hilfe angegebenen Zeilenummern unkenntlich zu machen.


Und dann schaust du dir die Daten, auf die dort zugegriffen werden soll, mal genauer an, in dem du in der Zeile davor eine Kontrollausgabe mittels var_dump oder print_r machst. (<pre> erhöht die Übersichtlichkeit, sonst in den Quelltext schauen.)
PHP-Code:
echo "<pre>";
print_r($daten);
echo 
"</pre>"
das hatte ich versucht darum sag ich ja auslesefehler beim array

hier das ergebnis:

Array
(
[0] =>

)

allerdingszeigt er das array komplett an in der gästebuch ausgabe
Inaliii ist offline  
Alt 14.05.2010, 15:57  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Na was soll das schon sein?
Zitat:
PHP-Code:
  $daten  explode(" || "$zeile);
      
$datum  $daten[0];
      
$ip     $daten[1];                                        hier entsteht fehler1 
in $zeile steht etwas, was nicht in genug Teile zerlegt werden kann. AUf die dann zugreifen zu wollen, erzeugt nen Fehler.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 14.05.2010, 15:59  
Benutzer
 
Registriert seit: 28.11.2008
Beiträge: 44
PHP-Kenntnisse:
Anfänger
Inaliii befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Na was soll das schon sein?

in $zeile steht etwas, was nicht in genug Teile zerlegt werden kann. AUf die dann zugreifen zu wollen, erzeugt nen Fehler.
ok wenn man mir jetzt noch sagen könnte warum es nicht in genug teile zerlegt werden kann?
Inaliii ist offline  
Alt 14.05.2010, 15:59  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Na, dann werden die Zeilen in deiner Datei nicht das Format aufweisen, welches du beim explode() erwartest... Baue Fehlerbehandlung mit ein, und bitte bitte bitte KEIN KLAMMERAFFE (@) während der Entwicklung... du WILLST UNBEDINGT Fehlermeldungen sehen, wenn Fehler auftreten.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline  
Alt 14.05.2010, 16:05  
Benutzer
 
Registriert seit: 28.11.2008
Beiträge: 44
PHP-Kenntnisse:
Anfänger
Inaliii befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von lstegelitz Beitrag anzeigen
Na, dann werden die Zeilen in deiner Datei nicht das Format aufweisen, welches du beim explode() erwartest... Baue Fehlerbehandlung mit ein, und bitte bitte bitte KEIN KLAMMERAFFE (@) während der Entwicklung... du WILLST UNBEDINGT Fehlermeldungen sehen, wenn Fehler auftreten.
Ich glaub ich muss mal was hinzufügen, ich habe den code hier aus nem tutorial raus, da ich gerade dabei bin php zu lernen und um das prinzip zu verstehen hab ich das genommen, also bitte drückt eure hilfen bisschen klarer aus ich bin noch net so fit in php ich bin noch beim lernen

ach das (@) hätt ich schon nicht verwendet *ggg*
Inaliii ist offline  
Alt 14.05.2010, 16:08  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Inaliii Beitrag anzeigen
also bitte drückt eure hilfen bisschen klarer aus ich bin noch net so fit in php ich bin noch beim lernen
Wir drücken uns eigentlich klar genug aus ...


Wenn du nicht weisst, was explode macht, liest du es bitte im Handbuch nach.

Und wenn explode bei dir nicht die Eingabedaten in das zerlegen kann, was herauskommen soll - dann schaust du dir als nächstes natürlich eben diese Eingabedaten an; var_dump/print_r als „Debug-Werkzeug“ hast du ja gerade kennengelernt.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Gästebuch & Spam francis-braun PHP Tipps 2009 3 23.03.2009 19:20
Gästebuch für jeden user chr1s Scriptbörse 2 02.03.2009 11:39
[Erledigt] Problem mit Gästebuch bodoalbstadt PHP Tipps 2009 40 22.01.2009 02:30
[Erledigt] Gästebuch skript ohne mysql do it yourself gandalf PHP Tipps 2008 15 11.07.2008 21:52
Gästebuch PHP Tipps 2005-2 2 22.07.2005 18:16
Dropdown-Menü und Gästebuch PHP Tipps 2005-2 5 20.06.2005 23:20
[Erledigt] Probleme mit dem Gästebuch PHP Tipps 2005-2 5 07.06.2005 15:22
[Erledigt] 4images Gästebuch PHP Tipps 2005 11 03.06.2005 08:05
Gästebuch / Datenbank PHP Tipps 2005 2 22.04.2005 16:27
Blättern in Gästebuch auf Dateibasis nsane PHP Tipps 2005 8 22.01.2005 21:02
Unbekanntes Problem mit Gästebuch PHP Tipps 2007 3 02.01.2005 22:04
Gästebuch: Fehlermeldung-No database selected PHP-Fortgeschrittene 6 27.12.2004 14:17
Gästebuch und Blättern picco PHP Tipps 2004 23 01.09.2004 16:52
Problem mit meinem Gästebuch picco PHP Tipps 2004 10 25.08.2004 23:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
notice: undefined offset: 1 in c:\\xampp, undefined offset: 1 in \$daten[1]\, php script gästebuch und textdatei, php gästebuch undefined offset: 0, gästebuch notice: undefined offset: 1 zerlegen, gästebuch fehler array, notice: undefined offset: 1 in gaestebuch.php on line 39, text basierendes gästebuch, fopen undefined offset fehlerbehandlung, quellcode für gästebuch mit php ohne mysql, xxx.nx.net

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:01 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum