Falsches anzeigen (Gästebuch)

Ok, und da steht wie man das gegen MYSQL INEJCTIONS anwenden kann?
Zudem bleibt noch der Fehler der beim eintragen/abschicken des Beitrages angezeigt wird.

Liebe Grüße
Markus
 
Ok, und da steht wie man das gegen MYSQL INEJCTIONS anwenden kann?[..]

Schau doch einfach nach, was da steht...
Und wenn ich dir die Funktion mysql_real_escape_string() dahin schreibe, gehe ich davon aus, dass du nachschaust was die überhaupt macht wenn du die nicht kennst... :roll:

Zudem bleibt noch der Fehler der beim eintragen/abschicken des Beitrages angezeigt wird.[..]

Welchen Fehler meinst du? Den Include Fehler? Ohne Code kann man schlecht was sagen, außer das du vermutlich eine Klammer vergessen hast oder ' bzw. " falsch gesetzt.


Sorry, aber das war nun von mir der letzte Beitrag zu Problemen von dir, du zeigst nicht richtig, dass du selber das Script ändern willst, sondern wir (bzw. hier überwiegend ich ;) ) sollen was ändern. Dann schaust du nicht im Manual nach, was welche Funktion macht und fragt hier lieber nach... :roll: :roll: :roll:
 
Ja, du vollkommen recht, hab es mir da wohl ein bisschen einfach gemacht.
Werde mir diese Seite mal genauer angucken. (https://de.php.net/manual/de/index.php)
Könntest du mir bei meinem letztem Fehler helfen.

FehlerCode
Parse error: syntax error, unexpected T_INCLUDE in C:\xampp\htdocs\function\guestbook_func.php on line 4
Code : Guestbook_func.php
PHP:
<?php
mysql_error()
   /* Kopfdaten */
   include ("inc/gbook.inc.php"); //Einfügen der Server- & Datenbankdaten
   mysql_select_db("guestbook") or die ("Die Datenbank existiert nicht"); //Verbindung zur datenbank

   /*Vergabe der Variablen */
   $name = $_POST['na'];
   $vorname = $_POST['vo'];
   $nachricht = $_POST['txt'];
   $email = $_POST['em'];
   $zeit = time();   
   
   /* Wenn auf senden geklickt wurde */
   if (isset($_POST['senden'])) { //Abfrage, wenn auf senden geklickt wurde
   
   unset($fehler); //Überprüfen, ob alles ausgefüllt wurde
      if(empty($name)) $fehler.= 'Bitte Name eingeben<br/>'; //Wurde Name eingetragen?
      if(empty($vorname)) $fehler.= 'Bitte Vorname eingeben<br/>'; //Wurde Vorname eingegeben?
      if(empty($nachricht)) $fehler.= 'Bitte Text eingeben<br/>'; //Wurde Passwort eingegeben?
   if(!isset($fehler)){ //Überprüft, ob alles eingegeben wurde, Ausgabe
$code = '
    INSERT INTO gbuch (
        name,
        vorname,
        email,
        nachricht,
        betreff
    ) VALUES (
        "'.mysql_real_escape_string($_POST['na']).'",
        "'.mysql_real_escape_string($_POST['vo']).'",
        "'.mysql_real_escape_string($_POST['em']).'",
        "'.mysql_real_escape_string($_POST['txt']).'",
        "'.mysql_real_escape_string($_POST['be']).'",
    )
'; 
   $eintrag = mysql_query($code); //Ausführen des Codes auf dem Server
      if ($eintrag) { // Wenn der Eintrag Vollbracht wurde
         echo 'Eintrag Hinzugefügt' ;
      } 
      else {
         echo 'Es wurde kein Eintrag hinzugefügt';
      }
   } 
   else {
         echo $fehler; //Ausgabe der nicht eingetragenen Felder, nur bei keiner Angabe
      }
      }
    else {
      echo 'Sie haben einen Fehler beim eingeben gemacht';
   }
   
?>
Code gbook.inc.php
PHP:
<?php
   mysql_select_db('guestbook') or die ("Die Datenbank existiert nicht"); //Verbindung zur datenbank
?>
guestbook.php
PHP:
<p><h4>Gästebuch</h4><br /><br />

<a href="?s=include/beitrag">Beitrag schreiben</a><br /><br />

<?php
   /* Kopfdaten */
   include('inc/inc.php');
   include ('inc/gbook.inc.php');
   
   /* Datenbank Bereich */
   $db2 = mysql_query("SELECT * FROM gbuch ORDER by id DESC"); //Aufgabe für die Tabelle
   
   /* Tabellen bereich */
   while($db3 = mysql_fetch_array($db2)) {
      echo '
      <table border="1" width="500">
      <tr>
      <td width="100" valign="top">Autor</td>
      <td width="400" valign="top">' . $db3['betreff'] . '</td>
      </tr>
      <tr>
      <td width="100" valign="top">
      <b>
      ' . $db3['name'] . ',
      </b><br />
      ' . $db3['vorname'] . '<br /><br />    
      ';

      if (isset($db3['email']) && $db3['email']!='')
         {
         echo '<a href="mailto:' . $db3['email'] . '"><img src="images/email.png" /></a>';
      }
      $text = $db3["nachricht"];
      
      echo '<td colspan="0" valign="top">'.wordwrap(nl2br($text), 20, "<br />\n", true).'</td></tr></table>'; 
      
}
?>

Vielen dank und liebe Grüße
Markus
 
Nimm das mysql_error() aus Zeile 2 komplett raus, das hat da nix verloren und führt zu 'nem Fehler, weil der Befehl am Ende nicht mit 'nem Semikolon abgeschlossen wurde.
 
Nun kommt aber das hier

PHP:
Es wurde kein Eintrag hinzugefügt

Das heißt ja, dass der Fehler in diesem Bereich sein muss

PHP:
   if (isset($_POST['senden'])) { //Abfrage, wenn auf senden geklickt wurde
   
   unset($fehler); //Überprüfen, ob alles ausgefüllt wurde
      if(empty($name)) $fehler.= 'Bitte Name eingeben<br/>'; //Wurde Name eingetragen?
      if(empty($vorname)) $fehler.= 'Bitte Vorname eingeben<br/>'; //Wurde Vorname eingegeben?
      if(empty($nachricht)) $fehler.= 'Bitte Text eingeben<br/>'; //Wurde Passwort eingegeben?
   if(!isset($fehler)){ //Überprüft, ob alles eingegeben wurde, Ausgabe
$code = '
    INSERT INTO gbuch (
        name,
        vorname,
        email,
        nachricht,
        betreff
    ) VALUES (
        "'.mysql_real_escape_string($_POST['na']).'",
        "'.mysql_real_escape_string($_POST['vo']).'",
        "'.mysql_real_escape_string($_POST['em']).'",
        "'.mysql_real_escape_string($_POST['txt']).'",
        "'.mysql_real_escape_string($_POST['be']).'",
    )
';