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

nicht auffindbares php problem

Status
Für weitere Antworten geschlossen.

believe_me

Neues Mitglied
Ich habe zwei Probleme die im prinzip die gleichen sind nur in unterschiedlichen files.

zum einem habe ich ein Newsletter an/abmelde Formular. Der Anmelde-button wurde schon mit einer Funktion belegt. Wenn ich über meine Xampp-Apache Server das newsletter.php File aufrufe - wird mir eine leere seite gezeigt. Das gleiche bei meinem Schwarzes-Brett (oder auch gästebuch).

Bei einem frühren Formular funktioniert alles. jetzt aufeinmal nicht mehr. Denke es ist ein Klammer fehler. Bitte um Hilfe! Im Anhang alle 4 Code teile.

Newsletter.html
Code:
<html>
<head>
<title>Newsletter</title>
</head>
<body>
<h1>Newsletter</h1><hr />
<div class="text">Unseren aktuellen Newsletter finden Sie hier</a>.<p>Möchten Sie in regelmäßigen Abständen über neu eingetroffene Gutscheine, Gewinnspiele, besondere Vorteile und Sparmöglichkeiten informiert werden? Dann abonnieren Sie einfach unseren Gutschein.at-Newsletter. <p>
Einfach im Feld unten Ihre E-Mail Adresse angeben und anmelden!
<form action="newsletter.php" method="post">
    <?php
 if ($fm != '') {
  echo $fm;
 }
 if ($hw != '') {
  echo $hw;
 }
?>
  E-Mail:
  <input type="text" name="email"/>
  <input type="button" name="anmelden" value="anmelden" />
  <input type="button" name="abmelden" value="abmelden" /></form></div>
</body>
</html>

Newsletter.php
Code:
<?php
/* Verbindungsaufbau zum Datenbankserver */
$link = mysql_connect("localhost", "root", "");
  
// Überprüfung ob die Verbindung zustande gekommen ist.
if(!$link){
 $fm = '<font color="red">Verbindung zum DB-Server nicht m&ouml;glich: '. mysql_error().'</font>';
}
else{
 // Eingabe des Datenbanknamens
 $dbname = 'datenbank';
 // Auswählen der Datenbank
 $db = mysql_select_db($dbname, $link);
 
 // Überprüfung ob die Auswahl der Datenbank erfolgt ist.
 if (!$db) {
  $fm = '<font color="red">Zugriff auf die Datenbank '. $dbname. ' nicht moeglich: '. mysql_error().'</font>';
 } 
 else{
  // Erstaufruf
  if(!isset($_POST['anmelden']) && !isset($_POST['abmelden'])){
   include 'newsletter.html';
  }
  else{
   // Wenn Button gedrückt wurde dann.....
   if(isset($_POST['anmelden'])){
   
       // Query definieren
       $query = 'INSERT INTO newsletter (email) VALUES ( \''.$_POST['email'].'\')';
       // Ausführen des Query
       $result = mysql_query($query);      
             
       $fm = '<font color="#0846BD">Sie haben sich erfolgreich für den Newsletter angemeldet!</font>';
       
      }
      
     
     include 'newsletter.html';
           }
     
            /* Verbindung schliessen */
 mysql_close($link);
}
}           
            ?>

schwarzesbrett.html
[CODE<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="format.css" rel="stylesheet" type="text/css"/>
<title>Schwarzes Brett</title>
<body>
<div class="text">
<form action="schwarzesbrett.php" method="post">
<p>
<?php
if ($fm != '') {
echo $fm;
}
if ($hm != '') {
echo $hm;
}
?>
</p>
<table border="1">
<tr>
<td height="42">
Name:<input type="text" name="name" value="<?php if($_POST['email'] == '' || $_POST['nachricht'] == '') { echo $_POST['name']; }?>"/> </td>
<td width="257" rowspan="3"><textarea name="nachricht" rows="5" cols="40" ></textarea></td>
</tr>
<tr>
<td height="44">E - Mail:

<input type="text" name="email" value="<?php if($_POST['name'] == '' || $_POST['nachricht'] == '') { echo $_POST['email']; } ?>"/></td>
</tr>
</table>
<p>
<input type="submit" name="eintragen" value="Nachricht eintragen"/>
</p>


<h1 class="Stil12">Bisherige Eintr&auml;ge </h1>
<table border="1">
<tr>
<td> <h3>Eingetragen von: </h3></td>
<td> <h3>Nachricht </h3></td>
</tr>
<?php
// Query definieren
$query = 'SELECT id, datum, uname, uemail, unachricht FROM gaestebuch ORDER BY id desc';
// echo $query;
// Query ausführen
$result = mysql_query($query, $link);

// Anzahl der Spalten werden ermittelt
$num_ro = mysql_num_rows($result);

for ($i = 1; $i <= $num_ro; $i++) {
$gb .= "\n<tr>";
$row = mysql_fetch_assoc($result);
$gb .= '<td>'.$row['datum'].'<br/>'.$row['uname'].'<br/>'.$row['uemail'].'</td>';
$gb .= '<td>'. $row['unachricht'] . '</td>';
$gb .= "</tr>\n";
}
echo $gb;
?>
</table>
</form>
</div>
</body>
</html>[/CODE]

schwarzesbrett.php
Code:
<?php
// Variableninitialisierung
$datum = date('d.m.Y - H:i');
$gb = '';
 
/* Verbindungsaufbau zum Datenbankserver */
mysql_connect("localhost", "root", "");
  
// Überprüfung ob die Verbindung zustande gekommen ist.
if(!$link){
 $fm = '<font color="red">Verbindung zum DB-Server nicht m&ouml;glich: '. mysql_error().'</font>';
}
else{
 // Eingabe des Datenbanknamens
 $dbname = 'datenbank';
 // Auswählen der Datenbank
 $db = mysql_select_db($dbname, $link);
 
 // Überprüfung ob die Auswahl der Datenbank erfolgt ist.
 if (!$db) {
  $fm = '<font color="red">Zugriff auf die Datenbank '. $dbname. ' nicht moeglich: '. mysql_error().'</font>';
 } 
 else{
  // Erstaufruf
  if(!isset($_POST['eintragen']) && !isset($_POST['zurueck'])){
   include 'schwarzesbrett.html';
  }
  else{
   // Wenn Button gedrückt wurde dann.....
   if(isset($_POST['eintragen'])){
    // Überprüfung ob ein Name eingegeben wurde.
    if($_POST['name'] == ''){
     $fm = '<font color="red">Bitte geben Sie einen Namen an!</font>';
    }
    else{
     // Überprüfung ob eine E-Mail Adresse eingegeben wurde.
     if($_POST['email'] == ''){
      $fm = '<font color="red">Bitte geben Sie eine E-Mail Adresse ein!</font>';
     }
     else{
      // Überprüfung ob eine E-Mail Adresse eingegeben wurde.
      if($_POST['nachricht'] == ''){
       $fm = '<font color="red">Bitte geben Sie eine Nachricht ein!</font>';
      }
      else{
       // Query definieren
       $query = 'INSERT INTO gaestebuch (datum, uname, uemail, unachricht) VALUES (\''.$datum.'\' , \''.$_POST['name'].'\', \''
       .$_POST['email'].'\', \''.$_POST['nachricht'].'\')';
       // Ausführen des Query
       $result = mysql_query($query);      
       // echo $query;
      
       // Überprüfung ob das Query ausgeführt wurde
       $num_rows = mysql_affected_rows($link);
      
       if($num_rows != 1){
        $fm = '<font color="red">Fehler!!! '.mysql_error().'</font>';
       }
       else{
        $hm = '<font color="#0846BD">Ihre Nachricht wurde erfolgreich eingetragen!</font>';
       }
      }
     }
     include 'schwarzesbrett.html';
    }
  }
   // Aktion für den Button "Zurück zur Hauptseite"
   if(isset($_POST['zurueck'])){
    include 'schwarzesbrett.html';
   }
  }
 /* Verbindung schliessen */
 mysql_close($link);
}
}
?>
 
Bitte benutze PHP-Codetags fuer PHP-Code, das ist deutlich angenehmer zu lesen.


Ich hab mr den Code nicht angeschaut [wegen dem fehlenden Syntax-highlight], aber es faellt direkt auf, dass du in zwei *.html Dateien PHP eingebaut hast.
 
Das ist mir vollkommen klar und bei den anderen funktioniert das auch so aber hier nocheinmal in der richtigen darstellung:

newsletter.html
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Newsletter</title>
</head>
<body>
<h1>Newsletter</h1><hr />
<div class="text">Unseren aktuellen Newsletter finden Sie hier</a>.<p>Möchten Sie in regelmäßigen Abständen über neu eingetroffene Gutscheine, Gewinnspiele, besondere Vorteile und Sparmöglichkeiten informiert werden? Dann abonnieren Sie einfach unseren Gutschein.at-Newsletter. <p>
Einfach im Feld unten Ihre E-Mail Adresse angeben und anmelden!
<form action="newsletter.php" method="post">
    <p>
      <?php
 if ($fm != '') {
  echo $fm;
 }
 if ($hw != '') {
  echo $hw;
 }
?>
   </p>
    <p>   E-Mail:
      <input type="text" name="email"/>
      <input type="button" name="anmelden" value="anmelden" />
      <input type="button" name="abmelden" value="abmelden" />
    </p>
</form></div>
</body>
</html>
newsletter.php
PHP:
<?php
/* Verbindungsaufbau zum Datenbankserver */
mysql_connect("localhost", "root", "");
  
// Überprüfung ob die Verbindung zustande gekommen ist.
if(!$link){
 $fm = '<font color="red">Verbindung zum DB-Server nicht m&ouml;glich: '. mysql_error().'</font>';
}
else{
 // Eingabe des Datenbanknamens
 $dbname = 'datenbank';
 // Auswählen der Datenbank
 $db = mysql_select_db($dbname, $link);
 
 // Überprüfung ob die Auswahl der Datenbank erfolgt ist.
 if (!$db) {
  $fm = '<font color="red">Zugriff auf die Datenbank '. $dbname. ' nicht moeglich: '. mysql_error().'</font>';
 } 
 else{
  // Erstaufruf
  if(!isset($_POST['anmelden']) && !isset($_POST['abmelden'])){
   include 'newsletter.html';
  }
  else{
   // Wenn Button gedrückt wurde dann.....
   if(isset($_POST['anmelden'])){
   
       // Query definieren
       $query = 'INSERT INTO newsletter (email) VALUES ( \''.$_POST['email'].'\')';
       // Ausführen des Query
       $result = mysql_query($query);      
             
       $fm = '<font color="#0846BD">Sie haben sich erfolgreich für den Newsletter angemeldet!</font>';
       
      }
     
     include 'newsletter.html';
            }
     
            /* Verbindung schliessen */
 mysql_close($link);
}
}           
            ?>
schwarzesbrett.html
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="format.css" rel="stylesheet" type="text/css"/>
<title>Schwarzes Brett</title>
<body>
<div class="text">
<form action="schwarzesbrett.php" method="post">
 <p>
      <?php
 if ($fm != '') {
  echo $fm;
 }
 if ($hm != '') {
  echo $hm;
 }
?>
   </p>
    <table border="1">
      <tr>
        <td height="42">
  Name:<input type="text" name="name" value="<?php if($_POST['email'] == '' || $_POST['nachricht'] == '') { echo $_POST['name']; }?>"/>        </td>
        <td width="257" rowspan="3"><textarea name="nachricht" rows="5" cols="40" ></textarea></td>
      </tr>
      <tr>
        <td height="44">E - Mail:
         
          <input type="text" name="email" value="<?php if($_POST['name'] == '' || $_POST['nachricht'] == '') { echo $_POST['email']; } ?>"/></td>
      </tr>
    </table>
      <p>
        <input type="submit" name="eintragen" value="Nachricht eintragen"/>
      </p>
 
  
   <h1>Bisherige Eintr&auml;ge </h1>
      <table border="1">
        <tr>
          <td> <h3>Eingetragen von: </h3></td>
          <td> <h3>Nachricht </h3></td>
        </tr>
<?php 
  // Query definieren
  $query = 'SELECT id, datum, uname, uemail, unachricht FROM gaestebuch ORDER BY id desc';
  // echo $query;
  // Query ausführen
  $result = mysql_query($query, $link);
  
  // Anzahl der Spalten werden ermittelt
  $num_ro = mysql_num_rows($result);
           
  for ($i = 1; $i <= $num_ro; $i++) {
   $gb .= "\n<tr>";
   $row = mysql_fetch_assoc($result);
   $gb .= '<td>'.$row['datum'].'<br/>'.$row['uname'].'<br/>'.$row['uemail'].'</td>';
   $gb .= '<td>'. $row['unachricht'] . '</td>';
   $gb .= "</tr>\n";
   } 
   echo $gb;
 ?> 
      </table>
</form>
</div>
</body>
</html>
schwarzesbrett.php
PHP:
<?php
// Variableninitialisierung
$datum = date('d.m.Y - H:i');
$gb = '';
 
/* Verbindungsaufbau zum Datenbankserver */
mysql_connect("localhost", "root", "");
  
// Überprüfung ob die Verbindung zustande gekommen ist.
if(!$link){
 $fm = '<font color="red">Verbindung zum DB-Server nicht m&ouml;glich: '. mysql_error().'</font>';
}
else{
 // Eingabe des Datenbanknamens
 $dbname = 'datenbank';
 // Auswählen der Datenbank
 $db = mysql_select_db($dbname, $link);
 
 // Überprüfung ob die Auswahl der Datenbank erfolgt ist.
 if (!$db) {
  $fm = '<font color="red">Zugriff auf die Datenbank '. $dbname. ' nicht moeglich: '. mysql_error().'</font>';
 } 
 else{
  // Erstaufruf
  if(!isset($_POST['eintragen']) && !isset($_POST['zurueck'])){
   include 'schwarzesbrett.html';
  }
  else{
   // Wenn Button gedrückt wurde dann.....
   if(isset($_POST['eintragen'])){
    // Überprüfung ob ein Name eingegeben wurde.
    if($_POST['name'] == ''){
     $fm = '<font color="red">Bitte geben Sie einen Namen an!</font>';
    }
    else{
     // Überprüfung ob eine E-Mail Adresse eingegeben wurde.
     if($_POST['email'] == ''){
      $fm = '<font color="red">Bitte geben Sie eine E-Mail Adresse ein!</font>';
     }
     else{
      // Überprüfung ob eine E-Mail Adresse eingegeben wurde.
      if($_POST['nachricht'] == ''){
       $fm = '<font color="red">Bitte geben Sie eine Nachricht ein!</font>';
      }
      else{
       // Query definieren
       $query = 'INSERT INTO gaestebuch (datum, uname, uemail, unachricht) VALUES (\''.$datum.'\' , \''.$_POST['name'].'\', \''
       .$_POST['email'].'\', \''.$_POST['nachricht'].'\')';
       // Ausführen des Query
       $result = mysql_query($query);      
       // echo $query;
      
       // Überprüfung ob das Query ausgeführt wurde
       $num_rows = mysql_affected_rows($link);
      
       if($num_rows != 1){
        $fm = '<font color="red">Fehler!!! '.mysql_error().'</font>';
       }
       else{
        $hm = '<font color="#0846BD">Ihre Nachricht wurde erfolgreich eingetragen!</font>';
       }
      }
     }
     include 'schwarzesbrett.html';
    }
  }
   // Aktion für den Button "Zurück zur Hauptseite"
   if(isset($_POST['zurueck'])){
    include 'schwarzesbrett.html';
   }
  }
 /* Verbindung schliessen */
 mysql_close($link);
}
}
?>
 
Dann versuchs mal mit einem error_reporting(E_ALL); am Anfang der PHP-Datei, sollte es irgendeinen Fehler im PHP-Code geben [Was bei diesem Gewurschtel zu vermuten ist], dann wird dir angezeigt wo er liegt ;)
 
wenn register_global auf off steht (so kommt der xampp soweit ich weiss daher), gibt es $fm und $hw nicht.
wo nimmst du die denn überhaupt her ?
 
Was mir auf jeden Fall aufgefallen sind, das sind die beiden HTML-Dateien, in denen plötzlich PHP-Code auftaucht. Normalerweise sind Webserver so eingestellt, dass HTML-Dateien nicht geparsed werden. Zusätzlich kommt so oder so noch das Problem mit dem register_global dazu.

Gruß thuemmy
 
Ja so ist es.
HTML-Dateien werden nicht geparst, du musst die Datieen mit der Endung .php uploaden. du kannst auch deinem praser signaliesieren, das es in der Datei sowohl HTML als auch PHP hat. Das machst du mit der Endung .phtml
Aber ich würde einfach .php nehmen, geht genauso gut....
 
Ja so ist es.
HTML-Dateien werden nicht geparst, du musst die Datieen mit der Endung .php uploaden.
Nein, so ist es nicht. Es ist Einstellungssache. Man kann auch .html-Dateien von PHP parsen lassen, genausowenig ist sichergestellt, dass .php php-geparsed wird. Auch das kann man abstellen.

Generell hilft es auch, sich die HTML-Seite anzeigen zu lassen, die PHP erzeugt. Dann sieht man nämlich auch oft schon Fehler.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben