Problem mit GB

Sergo

Erfahrenes Mitglied
Hi !
Bitte ich brauch eure Hilfe ! Hab das mal von einem Freund bekommen und hab es in meiner HP eingebunden nur macht er mir folgenden Fehler ! KLICK
poste mal den Code (die fett_erhobene ist Zeile 99), die chmod-Rechte sind auf 777!
Bitte um HILFE :(

PHP:
<?php

?>
<html>
<head>
  </td>
</tr>
</table>
<form method="post" action="<?php echo $PHP_SELF;?>">
<table class="mitte">
<tr>
<td colspan="4">&nbsp;</td>
</tr>
<tr>
<td colspan="4">&nbsp;</td>
</tr>
<tr>
<td class="liste"></td>
<td class="version" colspan="2">Name:</td>
<td class="wert"><input type="text" size="40" name="name" value="
<?php 
if (!empty($_POST['name'])) {
	echo $_POST['name'];
} else {
	echo "";
}
?>
" />
</td>
</tr>
<tr>
<td class="liste"></td>
<td class="version">Email:</td>
<td class="liste"><img src="png/mail.png" alt="email" /></td>
<td class="wert"><input type="text" size="40" name="email" value="
<?php 
if (!empty($_POST['email'])) {
	echo $_POST['email'];
} else {
	echo "";
}
?>
" />
</td>
</tr>
<tr>
<td class="liste"></td>
<td class="version">Homepage:</td>
<td class="liste"><img src="png/url.png" alt="homepage" /></td>
<?php
if(empty($_POST['homepage'])) {
	$_POST['homepage'] = "http://".$_POST['homepage']."";
} else {
	$_POST['homepage'];
}
?>
<td class="wert"><input type="text" size="40" name="homepage" value="<?php echo $_POST['homepage'];?>" /></td>
</tr>
<tr>
<td colspan="4">&nbsp;</td>
</tr>
<tr>
<td class="mitte" colspan="4"><textarea name="inhalt" cols="50" rows="10"><?php echo $_POST['inhalt'];?></textarea></td>
</tr>
<tr>
<td colspan="4">&nbsp;</td>
</tr>
<tr>
<td colspan="4" class="mitte"><input type="submit" name="eintragen" value="eintragen" /></td>
</tr>
<tr>
<td colspan="4">&nbsp;</td>
</tr>
</table>
</form>
<table class="navi">
<tr>
<?php
if(!isset($seite)) {
	$seite = 1;
	}
	$counter = 1;
	
	$start = ($seite-1)*$beitrag['max_view']+1;
	$ende  =  $start+$beitrag['max_view']-1;

	$gesammt = $gbook->Gbook_File_Anzahl(); 
	
	for($i=1;$i<=($gesammt/$beitrag['max_view']);$i++){
		$url = "$PHP_SELF?seite=$i\">"."$i";
		echo "<td><a href=\"$url"."</a></td>";
	//$name = $name;
	}
	if($gesammt%$beitrag['max_view']>=1){
		echo "<td><a href=\"$PHP_SELF?seite=$i\">"."$i"."</a></td>";
	}
?>
</tr>
</table>
<br />
<table class="mitte">
<tr>
<td class="mitte"><?php $gbook->Gbook_File_Anzahl_String();?></td>
</tr>
</table>
<?php

foreach ($gbook->array = array_reverse($gbook->array[0]) as $anzeige) {
	list($name, $email, $homepage, $nachricht, $zeit) = explode(":::",$anzeige);
	if($counter>=$start && $counter<=$ende) {
?>
<table class="mitte">
<tr>
<td class="catch" colspan="2"><?php echo $gbook->Gbook_File_Date($zeit);?></td>
</tr>
<tr>
<td class="wert"><?php echo "$gesammt.) ". htmlentities($name);?></td>
<td rowspan="2" class="links"><?php echo stripslashes(nl2br((htmlentities($nachricht)))); ?></td>
</tr>
<tr>
<td>
<a href="mailto:<?php echo $email;?>"><img src="png/mail.png" title="<?php echo $email;?>" alt="email" /></a>
<?php
if($homepage != "null") {
?>&nbsp;
<a href="<?php echo $homepage;?>"><img src="png/url.png" title="<?php echo $homepage;?>" alt="homepage" /></a>
<?php
}
?>
</td>
</tr>
</table>
<?php
}
--$gesammt;
$counter++;
}
?>
</body>
</html>
 
Zuletzt bearbeitet:
Zeig doch mal den Quelltext von der phpdl-gbook002.class.php in der müsste der Fehler liegen. Oder geht es bei deinem Kumpel einwandfrei? Wird das Objekt gbook überhaupt erstellt bzw. initialisiert?

greetz
daddz
 
bei ihm gehts es, nur ist er momentan nicht in der Nähe( ist in der USA) sonst würd ich Ihn fragen :(
Ich weis nciht ob die Date geschrieben wird ! jedenfalls steht in der gbook Datei nichts drinnen !
 
Also der Fehler ist folgender. Du musst die Klasse auch initialisieren. Der Konstruktor der Klasse wird gar nicht aufgerufen. Es fehlt eine Zeile, die ungefähr so aussieht.

$gbook = new Gaestebuch();

Denn $gbook wird nicht als Objekt initialsiert. Du musst eine Instanz bilden. Guck mal ob du irgenwo eine Zeile findest, die ähnlich aussieht wie da oben mit so einem new drin. Die MUSST du haben.
 
Zuletzt bearbeitet:
hm,.gefunden hab ich die Zeile nicht wirklich! soll ich die Zeile $gbook = new Gaestebuch(); ober die Zeile schreiben die einen Fehler anzeigt ? also bei 98 ?

//edit: hab es gerade eingefügt und es funktioniert jetzt nichts mehr ! überzeig dich selber, KLICK :(
 
Zuletzt bearbeitet:
Nein. Ich kann dir nicht genau sagen, wie die Zeile aussieht. Deswegen brauch ich ja den Inhalt der Klasse. Du hast übrigens ein & anstatt $ verwendet. Ich weiß ja nicht, wie dein Kumpel die Klasse genannt hat.

Gib uns mal den Inhalt der Datei phpdl-gbook002.class.php

Gruß
ChrisP
 
Hier phpdl-gbook.class.php, wo die Smilies sind, sind eigendlich Punkte und Klammern !

PHP:
<?php

class Gbook_File {
	
	
	var $datei, $zeiger, $daten, $anzahl, $name, $email, $homepage, $nachricht, $zeit, $datensatz;
	var $array = array();
	
	var $email_from_name, $email_from_mail, $subject, $empfang, $message;
	
	
	function Gbook_File() {
		
		$this->zeit				= time();
		
		$this->name				= $_POST['name'];
		$this->email			= $_POST['email'];
		$this->homepage			= $_POST['homepage'];
		$this->nachricht		= $_POST['inhalt'];
		
		$this->email_from_name	= $_POST['name'];
		$this->email_from_mail	= $_POST['email'];
		$this->subject			= "Neuer Gästebucheintrag";
		$this->header			= "From:$this->email_from_name<$this->email_from_mail>\n";
		$this->empfang			= RECIPENT;
		$this->message			= $_POST['inhalt'];
		$this->datei 			= FILE;
		
		$this->Gbook_File_Exists();
		$this->Gbook_File_Test();
	}
	
	
	function Gbook_Data() {
		
		if ($this->homepage == "http://") {
			$this->homepage = "null";
		}
		return ($this->datensatz = "$this->name:::$this->email:::$this->homepage:::$this->nachricht:::$this->zeit\n");
	}
	
	
	function Gbook_File_Mail() {
		return(@mail($this->empfang, $this->subject, $this->message, $this->header));
	}
	
	
	function Gbook_File_Date($time) {
		$language = setlocale(LC_TIME, "de_DE");
		$this->mydate	= strftime('%A, %d. %B %Y %R', $time);
		return ($this->mydate);
	}
	
	
	function Gbook_File_Locate() {
		if (is_file($this->datei)) {
			$this->datei	= $this->datei;
		} elseif (is_file("../$this->datei")) {
			$this->datei	= "../$this->datei";
		}
		return ($this->datei);
	}
	
	
	function Gbook_File_Inhalt_Read() {
		$this->Gbook_File_Locate();
		$this->Gbook_File_Open("r");
		$this->inhalt = fread($this->zeiger,500);
		$this->Gbook_File_Close();
		
		$this->Gbook_File_Inhalt_View();
		return ($this->array);
	}
	
	
	function Gbook_File_Inhalt_View() {
		
		preg_match_all("/(.*):::(.*):::(.*):::(.*):::([\d]{10})/siU",$this->inhalt,$this->array);
		
		return ($this->array);
	}
	
	
	function Gbook_File_Open($modus) {
		return ($this->zeiger = fopen($this->datei,"$modus"));
	}
	
	
	function Gbook_File_Flock($modus) {
		return (flock($this->zeiger,$modus));
	}
	
	
	function Gbook_File_Close() {
		return (fclose($this->zeiger));
	}
	
	
	function Gbook_File_Exists() {
		
		if(is_writable($this->datei) || is_writeable("../$this->datei")) {
			
			$this->Gbook_File_Inhalt_Read();
		} else {
			echo "Die Datei $this->datei existiert nicht oder ist nicht beschreibbar,
			 versuche sie anzulegen.<br />";
			$anlegen = @touch($this->datei);
			
			if ($anlegen) {
				
				echo "Die Datei $this->datei wurde erfolgreich angelegt.";
				$this->Gbook_File_Inhalt_Read();
			} else {
				
				echo "Leider konnte ich die Datei $this->datei nicht anlegen, 
				bitte versuchen Sie es manuell.(Rechte vergeben!)";
			}
		}
	}
	
	
	function Gbook_File_Anzahl() {
		$this->anzahl	= count($this->array[0]);
		return ($this->anzahl);
	}
	
	
	function Gbook_File_Anzahl_String() {
		if ($this->anzahl == 0) {
			echo "Leider ist noch kein Eintrag vorhanden";
		} elseif ($this->anzahl == 1) {
			echo "1 Eintrag";
		} else {
			echo "$this->anzahl Eintr&auml;ge";
		}
	}
	
	
	function Gbook_File_Test() {
		if(isset($_POST['eintragen'])) {
			
			if (!$_POST['name']) {
				$fehler[] = "Du hast vergessen deinen Namen einzutragen.";
		} 
		if (!$_POST['email']) {
			$fehler[] = "Du hast vergessen deine Email-Adresse einzutragen.";
		} elseif (!strstr($_POST['email'],"@") || !strstr($_POST['email'],".")) {
			$fehler[] = "Bitte gib eine g&uuml;ltige Email-Adresse ein.";
		}
		if (!$_POST['inhalt']) {
			$fehler[] = "Du hast vergessen eine Nachricht einzutragen.";
		}

		if (!empty($_POST['homepage'])) {

			$_POST['homepage'] = trim(stripslashes($_POST['homepage']));
		} 

		if (!count($fehler)) {
			unset($_POST['name'],$_POST['email'],$_POST['homepage'],$_POST['inhalt']);
			$this->Gbook_File_Mail();
			
			$this->Gbook_Data();
			$this->daten = array_values($this->array[0]);
			
			array_push($this->daten,"$this->datensatz");
			
			$this->Gbook_File_Write();
?>
<table class="mitte">
<tr>
<td class="mitte">Ihr Eintrag ist erfolgreich.</td>
</tr>
</table>
<br />
<?php
} else {

?>
<table class="mitte">
<?php
foreach ($fehler as $meldung) {
?>
<tr>
<td class="mitte"><?php echo $meldung;?></td>
</tr>
<?php
}
?>
</table>
<br />
<?php
			}
		}
	}
	

	function Gbook_File_Write() {

		$this->Gbook_File_Locate();
		$this->Gbook_Data();

		$this->Gbook_File_Open("w");
		$this->Gbook_File_Flock(2);
		foreach ($this->daten as $write) {
			fputs($this->zeiger,$write);
		}
		$this->Gbook_File_Flock(3);
		$this->Gbook_File_Close();
		$this->Gbook_File_Inhalt_Read();
	}
	

	function Gbook_File_Delete() {
		$id		= $_POST['id'];
		if(isset($_POST['delete'])) {
			unset($this->array[0][$id]);
			$this->daten = $this->array[0];
			$this->Gbook_File_Write();
		}
	}
	

	function Gbook_File_Update() {
		$id		= $_POST['id'];
		if(isset($_POST['update'])) {
			$this->zeit = $_POST['zeit'];

			$this->Gbook_Data();
			$this->array[0][$id] = $this->datensatz;
			$this->daten = $this->array[0];
			$this->Gbook_File_Write();
		}
	}
}

$gbook = new Gbook_File();
?>
 
Zuletzt bearbeitet:
habs in phpdl-gbook.class.php eingegeben und es funktioniert noch immer nicht! bin verzweifelt :(
deine signatur motiviert mich etwas,.. :)
 
Zuletzt bearbeitet:
Zurück