kostenloser Webspace werbefrei: lima-city


Was ist hier falsch ?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Hallo !

    Ich programmiere gerade etwas für meine Seite. Nun erhalte ich bei einer Datei diesen Fehler:

    Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/webpages/lima-city/chathc/html/forum555555/neues_thema.php on line 60

    Hier der Code:

    <?php
    
    $user = $_SESSION["user_nickname"];
    
          if($insert = @mysql_query("INSERT INTO forum SET Gruender = '$user', text = '$_POST["text"], titel = '$_POST["titel"], kategorie = '$_POST["kategorie"]', datum = '$datum'")) {
            echo '<p align="center">Dein neues Thema wurde erfolgreich gespeichert !';
          }else{
            echo '<p align="center">Beim Speichern deines neuen Themas trat leider ein Fehler auf! Bitte versuche es erneut!</p>';
    }
    }
    }
    ?>


    Was ist falsch?

    LG
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du musst auch den richtigen / ganzen Code hier posten, denn dieser hat niemals 60 Zeilen.

    on line 60

    LG cookies
  4. aldistammkunde

    Kostenloser Webspace von aldistammkunde, auf Homepage erstellen warten

    aldistammkunde hat kostenlosen Webspace.

    hi,
    vermutlich dieser teil

    if($insert = @mysql_query("INSERT INTO forum SET Gruender = '$user', text = '$_POST["text"], titel = '$_POST["titel"], kategorie = '$_POST["kategorie"]', datum = '$datum'"))


    du verwendest hier die doppelten Anführungszeichen in doppelter Funktion - einmal als "Begrenzung" für den Query-String und andererseits für die Keys des Arrays. Nun denkt PHP, dass du mit den doppelten Gänsefüsschen, die den Key von $_POST["text"] eingrenzen, den Query-String, den du bei "INSERT INTO begonnen hast, beenden willst - das führt dann zum Fehler.
    Schreibs am besten so:


    if($insert = @mysql_query("INSERT INTO forum SET Gruender = '$user', text = '".$_POST["text"]."', titel = '".$_POST["titel"]."', kategorie = '".$_POST["kategorie"]."', datum = '$datum'"))

  5. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    cookies schrieb:
    Du musst auch den richtigen / ganzen Code hier posten, denn dieser hat niemals 60 Zeilen.

    on line 60

    LG cookies


    OK, hier

    <? include 'header.php'; ?>
    
    <br><br>
    <table style='height:20px; background:#ECFFD0; border:1px solid #C1D2F6;'>
      <tr>
        <td align='left'><a href="index.php">Top 10 Themen</a> | <a href='uebersicht.php'>Übersicht</a> | Neues Thema</td>
      </tr>
    </table>
    <br>
    
    <p><b>Neues Thema erstellen</b></p>
    <form method="POST" action="--WEBBOT-SELF--">
    <p>
    kategorie
    <p>
      Titel: <input type="text" name="titel" size="42"></p>
      <p>[html}</p>
      <p><textarea rows="28" name="text" cols="95"></textarea></p>
      <p><input type="submit" value="Speichern" name="speichern">
      <input type="button" value="Abbrechen" name="abbrechen"></p>
    </form>
    
    <br>
    
    
    
    
    <?php
    
    $user = $_SESSION["user_nickname"];
    
          if($insert = @mysql_query("INSERT INTO forum SET Gruender = '$user', text = '$_POST["text"], titel = '$_POST["titel"], kategorie = '$_POST["kategorie"]', datum = '$datum'")) {
            echo '<p align="center">Dein neues Thema wurde erfolgreich gespeichert !';
          }else{
            echo '<p align="center">Beim Speichern deines neuen Themas trat leider ein Fehler auf! Bitte versuche es erneut!</p>';
    }
    }
    }
    ?>  
        
    
    <? include 'footer.php'; ?>
  6. davy schrieb:
    cookies schrieb:
    Du musst auch den richtigen / ganzen Code hier posten, denn dieser hat niemals 60 Zeilen.

    on line 60

    LG cookies


    OK, hier

    <? include 'header.php'; ?>
    
    <br><br>
    <table style='height:20px; background:#ECFFD0; border:1px solid #C1D2F6;'>
      <tr>
        <td align='left'><a href="index.php">Top 10 Themen</a> | <a href='uebersicht.php'>Übersicht</a> | Neues Thema</td>
      </tr>
    </table>
    <br>
    
    <p><b>Neues Thema erstellen</b></p>
    <form method="POST" action="--WEBBOT-SELF--">
    <p>
    kategorie
    <p>
      Titel: <input type="text" name="titel" size="42"></p>
      <p>[html}</p>
      <p><textarea rows="28" name="text" cols="95"></textarea></p>
      <p><input type="submit" value="Speichern" name="speichern">
      <input type="button" value="Abbrechen" name="abbrechen"></p>
    </form>
    
    <br>
    
    
    
    
    <?php
    
    $user = $_SESSION["user_nickname"];
    
          if($insert = @mysql_query("INSERT INTO forum SET Gruender = '$user', text = '$_POST["text"], titel = '$_POST["titel"], kategorie = '$_POST["kategorie"]', datum = '$datum'")) {
            echo '<p align="center">Dein neues Thema wurde erfolgreich gespeichert !';
          }else{
            echo '<p align="center">Beim Speichern deines neuen Themas trat leider ein Fehler auf! Bitte versuche es erneut!</p>';
    }
    }
    }
    ?>  
        
    
    <? include 'footer.php'; ?>



    Der Code hat auch nur 42 Zeilen. Ist das wirklich der gesamte Code? Aber versuchs mal mit dem, was aldistammkunde gesagt hat, denn das ist auf jeden Fall falsch.

    Lg cookies
  7. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    aldistammkunde schrieb:
    hi,
    vermutlich dieser teil

    if($insert = @mysql_query("INSERT INTO forum SET Gruender = '$user', text = '$_POST["text"], titel = '$_POST["titel"], kategorie = '$_POST["kategorie"]', datum = '$datum'"))


    du verwendest hier die doppelten Anführungszeichen in doppelter Funktion - einmal als "Begrenzung" für den Query-String und andererseits für die Keys des Arrays. Nun denkt PHP, dass du mit den doppelten Gänsefüsschen, die den Key von $_POST["text"] eingrenzen, den Query-String, den du bei "INSERT INTO begonnen hast, beenden willst - das führt dann zum Fehler.
    Schreibs am besten so:


    if($insert = @mysql_query("INSERT INTO forum SET Gruender = '$user', text = '".$_POST["text"]."', titel = '".$_POST["titel"]."', kategorie = '".$_POST["kategorie"]."', datum = '$datum'"))




    Das geht leider auch nicht.

    Jetzt sieht mein Code so aus:

    <? include 'header.php'; ?>
    
    <br><br>
    <table style='height:20px; background:#ECFFD0; border:1px solid #C1D2F6;'>
      <tr>
        <td align='left'><a href="index.php">Top 10 Themen</a> | <a href='uebersicht.php'>Übersicht</a> | Neues Thema</td>
      </tr>
    </table>
    <br>
    
    <p><b>Neues Thema erstellen</b></p>
    <form method="POST" action="--WEBBOT-SELF--">
    <p>
      Kategorie: 
    20 Zeilen
            </p>
    <p>
      Titel: <input type="text" name="titel" size="42"></p>
      <p>[html}</p>
      <p><textarea rows="28" name="text" cols="95"></textarea></p>
      <p><input type="submit" value="Speichern" name="speichern">
      <input type="button" value="Abbrechen" name="abbrechen"></p>
    </form>
    
    <br>
    
    
    
    
    <?php
    
    $user = $_SESSION["user_nickname"];
    
    if($insert = @mysql_query("INSERT INTO forum SET Gruender = '$user', text = '".$_POST["text"]."', titel = '".$_POST["titel"]."', kategorie = '".$_POST["kategorie"]."', datum = '$datum'")) {
            echo '<p align="center">Dein neues Thema wurde erfolgreich gespeichert !';
          }else{
            echo '<p align="center">Beim Speichern deines neuen Themas trat leider ein Fehler auf! Bitte versuche es erneut!</p>';
    }
    }
    }
    ?>  
        
    
    <? include 'footer.php'; ?>


    Und er gibt mir den Fehler:

    Parse error: syntax error, unexpected '}' in /home/webpages/lima-city/chathc/html/forum555555/neues_thema.php on line 65
  8. Seit wann benutzt man INSERT INTO mit einem SET? Kann es sein das du Update und Insert vertauscht hast?
    Und warum schreibst du ein @ vor mysql_query?
    Schreib lieber mysql_query(...)or die(mysql_error()); dann siehst du wenn ein fehler drin ist oder mysql_query(...)or die; dann gibts keine meldung.

    Grüsse
    Color

    Beitrag zuletzt geändert: 16.9.2009 19:24:11 von color
  9. aldistammkunde

    Kostenloser Webspace von aldistammkunde, auf Homepage erstellen warten

    aldistammkunde hat kostenlosen Webspace.

    color schrieb:
    Seit wann benutzt man INSERT INTO mit einem SET?

    oh, das hab ich doch glatt überlesen - das ist natürlich auch falsch - aber sollte zumindest keinen PHP-Fehler verursachen.


    echo '<p align="center">Beim Speichern deines neuen Themas trat leider ein Fehler auf! Bitte versuche es erneut!</p>';
    }
    }
    }
    ?>


    lösche von den } mal zwei - schliesslich hast du nur einen else-block offen, willst aber zwei andere schliessen?!
  10. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    aldistammkunde schrieb:
    color schrieb:
    Seit wann benutzt man INSERT INTO mit einem SET?

    oh, das hab ich doch glatt überlesen - das ist natürlich auch falsch - aber sollte zumindest keinen PHP-Fehler verursachen.


    echo '<p align="center">Beim Speichern deines neuen Themas trat leider ein Fehler auf! Bitte versuche es erneut!</p>';
    }
    }
    }
    ?>


    lösche von den } mal zwei - schliesslich hast du nur einen else-block offen, willst aber zwei andere schliessen?!


    Stimmt, jetzt gehts :thumb:

    Ich hab noch ein neues Problem:

    In dem Code:

    <? include 'header.php'; ?>
    
    <br><br>
    <br>
    <ul id='forum'>
    <table style='height:20px; background:#ECFFD0; border:1px solid #C1D2F6;'>
      <tr>
        <td align='left'><a href="index.php">Top 10 Themen</a> |
        <a href="uebersicht.php">Übersicht</a> | <a href="neues_thema.php">Neues Thema</a></td>
      </tr>
    </table>
    <br>
    <ul id='forum'>
    <table width='100%''>
      <tr>
        <td width='30%'><b>Thema:</b></td>
        <td width='25%'><b>Antworten:</b></td>
        <td width='20%'><b>Gründer:</b></td>
      </tr>
    </table>
    <br>
    
    <?php 
     $user = $_SESSION["user_nickname"]; 
        echo "
          <table border='0' width='70%'>
            <tr>
              <th></center><center><b><b><font size='2'>Ungelesene Nachrichten:</font></b></b></center></th>
            </tr>
          </table>
            ";
    $sql = "SELECT ".  
        " * ".  
      "FROM ".  
        "forum ". 
      "WHERE ".  
        "(Gruender like '".$user."' and kategorie like '".$_GET['kategorie']"')";  
    $result = mysql_query ($sql);  
       
    while ($data = mysql_fetch_array ($result)) {
      $Gruender = $data["Gruender"];
      $titel = $data["titel"];
      $Id = $data["Id"];
      
    echo "
    <hr style='color:#C1D2F6; border-style: dashed;'> 
    <table width='100%''>
      <tr>
        <td width='25%'><a href='thema_lesen.php&Id=$Id'>$titel</a></td>
        <td width='18%'>Antworten</td>
        <td width='15%'><a href='http://schuelersv.eu/profiel.php?URL=profiel.php&user=$Gruender'>$Gruender</a></td>
      </tr>
    </table>
    <br>
          "; 
    }
    ?>
    </ul>
    
    
    <? include 'footer.php'; ?>


    kommt der Fehler:


    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/webpages/lima-city/chathc/html/forum555555/themenuebersicht.php on line 37


    Was ist der Fehler?
  11. djfun

    Co-Admin Kostenloser Webspace von djfun

    djfun hat kostenlosen Webspace.

    Hallo davy,
    da fehlt ein Punkt nach dem $_GET['kategorie']

    gruß, djfun
  12. davy schrieb:
    $sql = "SELECT ".
    " * ".
    "FROM ".
    "forum ".
    "WHERE ".
    "(Gruender like '".$user."' and kategorie like '".$_GET['kategorie']"')";
    $result = mysql_query ($sql);

    Autsch.
    Ich würde dir schwer empfehlen, wenn all deine SQL-Syntaxen so aufgebaut sind, mal ein bisschen umzustrukturieren.
    Außerdem würde ich alle SQL-Felder klein schreiben. Ist für dich auch einfacher, dann musst du nicht nachschauen ob der Feldname mit Goßbuchstaben oder Kleinbuchstaben geschrieben ist.
    Dann wird das alles gleich viel übersichtlicher:
    ...
    $sql = "SELECT id,titel,gruender FROM forum WHERE (Gruender LIKE '$user') AND kategorie LIKE '".$_GET["kategorie"]."')";
    $result = mysql_query($sql);
    ...


    Beitrag zuletzt geändert: 17.9.2009 8:38:57 von qap2
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!