• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Code verschwindet??

Programmier-Felix

Neues Mitglied
Hi!

Ich habe ein Gästebuch programmiert, es als *.php abgespeichert und hochgeladen. Und was sehe ich? - Nicht! Im Quelltext steht statt dem PHP-Code das hier:

Code:
<!-- START --><noscript><div style="display:none">&nbsp;</div></noscript><script type="text/javascript" src="[URL]http://media.funpic.de/layer.php?bid=81993568"></script><a[/URL] href='http://funpic.de/troubleacoustic.php'><!-- measure-due 1299082575--></a><!-- End -->
<iframe id='aaafcb8f' name='aaafcb8f' src='http://89.163.167.106/www/delivery/afr.php?zoneid=7&amp;cb=1299082575' frameborder='0' scrolling='no' width='1' height='1'><a href='http://89.163.167.106/www/delivery/ck.php?n=acf93e2f&amp;cb=1299082575' target='_blank'><img src='http://89.163.167.106/www/delivery/avw.php?zoneid=7&amp;cb=1299082575&amp;n=acf93e2f' border='0' alt='' /></a></iframe>
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-16106315-6']);
  _gaq.push(['_setDomainName', '.ohost.de']);
  _gaq.push(['_trackPageview']);
  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript';
ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' :
'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
  })();
</script>

Brauche Hilfe! Danke!
 
Hallo,
PHP ist eine serverseitige Scriptsprache. Das heißt, sie wird vom Server selbst verarbeitet, wovon der Endbenutzer nichts mitbekommt. Heißt, im Quelltext sieht man den PHP-Code nicht mehr.
Ist also ganz normal, dass du den Code nicht siehst.

MfG Icy
 
Und wenn Du eine Ausgabe von Daten haben willst, die im PHP-Code stehen, schreib mal folgendes in eine leere Datei

Code:
<?php
echo "Hallo Welt";
?>

und speichere sie als .php ab und ruf wie auch deine Datei oben auf. Was siehst Du? ;)
 
Ich habe mir keinen lokalen PHP Server installiert. Ich dacht ich brauch ihn nicht unbedingt.

Der Code:

Code:
<?php
$verbinde = @mysql_connect("localhost", "BENUTZERNAME", "PASSWORT");
if (isset($_POST["eintragen"])
{
 $name = @mysql_real_escape_string (htmlentitles($_POST["name"]));
 $email = @mysql_real_escape_string (htmlentitles($_POST["email"]));
 $text = @mysql_real_escape_string (htmlentitles($_POST["text"]));
 $datum = date ("d.m.Y");
 $uhrzeit = date ("H:i:s");
 if (empty ($name))
 {
  echo "Bitte geben Sie ihren Namen ein.<br>";
  $fehler = true;
 }
 if (empty ($text) && strlen <=10)
 {
  echo "Bitte geben Sie ihre Nachricht (mind. 10 Zeichen) ein.<br>";
  $fehler = true;
 }
 
 if ($fehler == false)
 {
  $sql_eintrag = "INSERT INTO `DATENBANK`.`eintraege` (`id`, `name`, `email`, `nachricht`, `datum`, `uhrzeit`) VALUES (NULL, "$name", "$email", "$text", "$datum", "$uhrzeit");";
  $sql_senden = mysql_query($sql_eintrag);
  header ("Location: gaestebuch.php?gesendet=true");
 }

}
 
?>
<html>
<head>
<title>Programmier Felix::Gaestebuch</title>
<style type="text/css">
body {
 font-family:Arial;
 font-size:18px;
 color:black;
 background-color:lightgreen;
}
#eintrag {
 width:300px;
}
</style>
</head>
<body>
<h1>G&auml;stebuch</h1>
<p>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="POST">
<table border="0">
<tr>
<td>Name*: </td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>E-Mail: </td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td valign="top">Nachricht*: </td>
<td><textarea name="text"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="eintragen" id="Eintragen!"></td>
</tr>
</table>
</form>
<br>* Pflichtfelder
<p><br><b>Eintr&auml;ge:
<p>
<?php
$db_auswahl = mysql_select_db("DATENBANK");
$abfrage = mysql_query("SELECT * FROM eintraege");
echo "Es sind " . mysql_num_rows ($abfrage) . " Eintr&auml;ge vorhanden.<p><br>";
 
?>
<?php
$db_auswahl = @mysql_select_db("DATENBANK");
$sql = @mysql_query("SELECT * FROM eintraege ORDER BY id DESC");
while ($row = mysql_fetch_object ($sql))
{
 echo "<p><br>";
 echo $row->datum . " " . $row->uhrzeit . "<p>";
 echo "Name: " . $row->name . "<br>";
 echo "Nachricht: " . $row->nachricht . "<br>";
 echo "</br></p>";
}
?>
 
</body>
</html>

Ich habe jetzt den Namen der Datenbank, des Benutzernamen und des Passwortes geändert. (Ist aber im Original alles richtig. Habe öfters nachgeguckt.)


PS: Ich kann nicht viel von PHP. Deshalb habe ich das Gästebuch mit einem Tutorial aus dem Internet gemacht.
 
Dein Script enthält Syntaxfehler (fehlende Klammern etwa), die führen zum Scriptabbruch. Dein Server scheint dazu so eingestellt zu sein, dass Fehler nicht angezeigt werden. Setze mal testweise die folgenden beiden Zeilen an den Anfang des Scripts.

PHP:
error_reporting(-1); // Alle Fehler anzeigen
ini_set('display_errors', 1); // Sicherstellen, dass PHP Fehler ausgibt (meist unnötig)
 
Danke für den Tipp, aber leider sehe ich immernoch weiß. Ich sehe auch keine Fehler. Soll ich vielleicht den Code der jetzt im Quelltext steht (siehe ganz oben) unter den Code dranhängen? Da steht ja ein Tag <noscript>, also wenn es nicht geht so zusagen. (Glaube ich...)
 
Was du eingangs an HTML-Code gepostet hast, dürfte mit dem Problem nichts zu tun haben. Das ist einfach irgendwie Werbung, die dein Hoster automatisch an jede Seite dranbastelt. Das passiert erst, wenn das PHP-Script bereits abgestürzt ist.

Aber die scheinen sehr renitent im Unterdrücken von Fehlern zu sein…

Habe dir die zwei Fehler aus dem ersten Block mal rausgebaut:

PHP:
<?php

error_reporting(-1);
ini_set('display_errors', 1);

$verbinde = @mysql_connect("localhost", "BENUTZERNAME", "PASSWORT");
if (isset($_POST["eintragen"]))
{
 $name = @mysql_real_escape_string (htmlentitles($_POST["name"]));
 $email = @mysql_real_escape_string (htmlentitles($_POST["email"]));
 $text = @mysql_real_escape_string (htmlentitles($_POST["text"]));
 $datum = date ("d.m.Y");
 $uhrzeit = date ("H:i:s");
 if (empty ($name))
 {
  echo "Bitte geben Sie ihren Namen ein.<br>";
  $fehler = true;
 }
 if (empty ($text) && strlen <=10)
 {
  echo "Bitte geben Sie ihre Nachricht (mind. 10 Zeichen) ein.<br>";
  $fehler = true;
 }

 if ($fehler == false)
 {
  $sql_eintrag = "INSERT INTO `DATENBANK`.`eintraege` (`id`, `name`, `email`, `nachricht`, `datum`, `uhrzeit`) VALUES (NULL, '$name', '$email', '$text', '$datum', '$uhrzeit');";
  $sql_senden = mysql_query($sql_eintrag);
  header ("Location: gaestebuch.php?gesendet=true");
 }

}

?>

Wenn du das entsprechend ersetzt, solltest du nun zumindest eine Ausgabe bekommen.
 
Danke erstmal. Ich werde es gleich mal probieren. Ich melde mich dann...

PS: Dürfte ich wissen welche Fehler das waren? (Damit ich es später einmal nicht nochmal mache.)
 
Hach, dieses ganze Markup-Getippe wollte ich gerade vermeiden. ;) Aber okay.

Hier fehlt eine schließende Klammer:

PHP:
if (isset($_POST["eintragen"])

Richtig:

PHP:
if (isset($_POST["eintragen"]))

Hier passt die Auszeichnung des Strings nicht (also die Abfolge der Anführungszeichen):

PHP:
  $sql_eintrag = "INSERT INTO `DATENBANK`.`eintraege` (`id`, `name`, `email`, `nachricht`, `datum`, `uhrzeit`) VALUES (NULL, "$name", "$email", "$text", "$datum", "$uhrzeit");";

Syntaktisch richtig:

PHP:
  $sql_eintrag = "INSERT INTO `DATENBANK`.`eintraege` (`id`, `name`, `email`, `nachricht`, `datum`, `uhrzeit`) VALUES (NULL, '$name', '$email', '$text', '$datum', '$uhrzeit');";
 
Vielen Vielen Dank!

Also es ich sehe jetzt das was ich sehen sollte, aber das Abschicken funktioniert nicht. Wenn ich auf den Button klicke, öffnet sich eine neue weiße Seite wo nichts drauf ist. (Die URL ist auch gleich geblieben. Sie hätte sich aber ändern sollen.) In der MYSQL-Datenbank befindet sich auch nichts. Irgendwo ist da noch ein Fehler...
 
Ja, es ist ein gewisses Problem, dass dein Server die nicht anzuzeigen scheint. So lässt sich eigentlich nicht arbeiten. Ich sehe ein paar Optionen:

- Herausfinden, ob die Fehler nicht doch irgendwie anzuzeigen sind (→ Hilfe des Anbieters, Suchmaschine)
- anderen Webspace suchen
- lokalen Server einrichten (→ apache friends - xampp – ist einfacher, als es klingt)
- Editor mit Anzeige von Syntaxfehlern einsetzen (z. B. Welcome to NetBeans)
 
Ok. Ich werde mal versuchen das Problem alleine in den Griff zu bekommen. (Wenn es nicht klappt, mache ich ein neues Thema dazu auf.)

Nochmal Vielen Dank für alles. :D
 

Neueste Beiträge

Zurück
Oben