Announcement

Collapse
No announcement yet.

Fehler in einfachem Programm (PHP) #dringend #Schule #Abschlusszeugniss

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fehler in einfachem Programm (PHP) #dringend #Schule #Abschlusszeugniss

    Sehr geehrte Community,

    ich finde einfach nicht den Fehler in meinem Programm.
    Ich muss bis Freitag eine dynamiche Webseite, für die Schule programmieren.
    Die Note auf meinem Abschlusszeugnis hängt davon ab.

    Es wird immer folgende Fehlermeldung angezeigt:
    Code:
    Fatal error: Call to undefined function mysql_real_escape_string() in C:\xampp\htdocs\evaluation.php on line 4
    Hier das Programm:

    Die Datei in der der Fehler auftritt (evaluation.php):
    PHP Code:
    <?php
    session_start
    ();
    $id=mysqli_connect("localhost","root","","forum") or die ("Es ist unerwarteter ein Fehler aufgetreten. MySQL nicht gestartet/gefunden werden.");
    /*$SESSION[contribution]=*/$contribution=mysql_real_escape_string($id$_POST,["contribution"]);
    /*$contribution=mysql_real_escape_string($id,$_POST,["contribution"]);*/
    ?>
    <!DOCTYPE html>
    <html lang="de">
      <head>
        <title>...</title>
        <meta charset="UTF-8">
        <link href="design.css" type="text/css" rel="stylesheet" />
      </head>
      <body>
        <article>
          <section>
            <?php
              
    /*mysqli_query($id,"USE `forum`");*/
              
    mysqli_query($id"INSERT INTO `theme` VALUES (0, '$contribution')");
            
    ?>
          </section>
        </article>
      </body>
    </html>

    Die Eingabemaske (input.html):
    HTML Code:
    <!DOCTYPE html>
    <html lang="de">
      <head>
        <title>Beitrag erstellen</title>
        <meta charset="UTF-8" />
    	<link href="design.css" type="text/css" rel="stylesheet" />
      </head>
      <body>
        <form action="evaluation.php"  method="POST">
    	  <textarea
    	  name="contribution"
    	  value="contribution"
    	  cols="10"
    	  rows="10">
    	  </textarea>
    	  <br />
    	  <input type="submit" name="create" value="erstellen">
    	  </input>
    	</form>
      </body>
    </html>

    Die Installationsdatei für die Datenbank (install.php):
    PHP Code:
    <!DOCTYPE html>
    <html lang="de">
      <head>
        <title></title>
        <meta charset="UTF-8">
        <style href="design.css" type="text/css" rel="stylesheet" />
      </head>
      <body>
        <?php
          $id
    =mysqli_connect("localhost","root","") or die ("Bei der Installation der Datenbank ist ein unerwarteter Fehler aufgetreten.");
          
    mysqli_query($id,"CREATE DATABASE `forum`");
          
    mysqli_query($id,"USE `forum`");
          
    mysqli_query($id,"CREATE TABLE `theme` (`theme number` INT PRIMARY KEY NOT NULL AUTO_INCREMENT,`title` TEXT NOT NULL)");
          
    /*mysqli_query($id,"CREATE TABLE `message` (`message number` INT PIMARY KEY NOT NULL AUTO INCRREMENT,`theme number` INT NOT NULL,`user number` INT NOT NULL,`time` DATE NOT NULL,`content` TEXT NOT NULL)")*/
        
    ?>
      </body>
    </html>
    Außerdem besteht das Programm noch aus einer noch leeren CSS-Datei (design.css).
    Ich denke die beiden letzten Programmteile sind für den Fehler
    mehr oder weniger irrelevant.

    Ich habe im Internet bereits nach möglichen Lösungen gesucht. #Google
    Dabei wurde jemandem in einem anderen Forum geraten zu prüfen ob der Eintrag
    "Cextension=php_mysql.so"
    in der Datei "php.ini" zu finden ist und ob kein ; davor steht.
    Ich habe den Eintrag in der betreffenden Datei garnichterst gefunden.
    Ich glaube nicht, dass der Fehler dort liegt,
    aber ggf. weiß ich nicht wie man die extension ergänzt
    bzw. wo ich sie reinkopieren muss
    und ob dass überhaupt die richtige ist.

    Ich muss das Projekt Freitag abgeben.
    Helft mir Bitte.
    Die Note auf meinem Abschlusszeugnis hängt davon ab.

    mit freundlichen Grüßen

    Euer "--->"

  • #2
    Was sollte an der Connection ($id) mit dieser Funktion maskiert werden? Die Funktion erwartet den zu maskierenden String und optional die Verbindung. Wenn dann umgekehrt.
    Des Weiteren erwartet die Funktion ZWEI Parameter, davon der eine optional.
    Du versuchst die Funktion durch fehlerhafte schreibweise mit DREI Parametern aufzurufen

    mysql_real_escape_string($id, $_POST,["contribution"]);

    Du versuchst die Parameter
    $id
    $_POST
    ["contribution"]
    zu übergeben.
    Da es die Funktion mit 3 Parametern nicht gibt, kommt der Fehler

    mysql_real_escape_string($_POST["contribution"]);

    sollte es tun
    Zuletzt editiert von Christian Marquardt; 07.04.2016, 08:20.
    Christian

    Comment

    Working...
    X