Black BABA: Regstrieren Script hat ein Fehler

Hallo bin es wieder. Also ich habe Ein Script zu Registrieren gemacht aber es hat irgendwo ein Fehler

reg.php

<?php
if(is_numeric($_POST['nick'], $_POST['pass'], $_POST['email'])){
$con = mysql_connect("imysql03", "i4461064", "rc0xq7xje15sf75e");
mysql_select_db("i4461064", $con) or die (mysql_error());

$sql = "INSERT INTO admin (ID, Name, Pass, Rang, E-Mail-Adresse) VALUES (NULL, '. $_POST['nick'] .', '. $_POST['pass'] .', 'user', '. $_POST['email'] .')";
$result = mysql_query($sql, $con);
?>

register.php

<form id="register" method="post" action="reg.php">
    <table cellspacing="1" cellpadding="0" id="register_table">

<tr><td class="desc">Nick*</td><td class="formfield"><input type="text" name="nick" /></td></tr>
     <tr><td class="desc">Pass*</td><td class="formfield"><input type="pass" name="pass" /></td></tr>
     <tr><td class="desc">Email*</td><td class="formfield"><input type="text" name="email" /></td></tr>
     <tr><td>* Pflichtfelder</td><td><input type="submit" name="submit" id="regsubmit" value="Registrieren" /></td></tr>
   </table>
                </form>

Dieses Fehlermeldung kommt

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /www/sites/1/iespana.es/m/e/met456/site/reg.php on line 6

  1. if(is_numeric($_POST['nick'], $_POST['pass'], $_POST['email'])){
    $con = mysql_connect("x", "x", "x");
    mysql_select_db("i4461064", $con) or die (mysql_error());

    $sql = "INSERT INTO admin (ID, Name, Pass, Rang, E-Mail-Adresse) VALUES (NULL, '. $_POST['nick'] .', '. $_POST['pass'] .', 'user', '. $_POST['email'] .')";
    $result = mysql_query($sql, $con);

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /www/sites/1/iespana.es/m/e/met456/site/reg.php on line 6

    Dann schau halt mal nach, ob die Zeile 6 in Ordnung ist (das ist die, in der du dich mit den Anführungszeichen hoffnungslos verheddert hast).

    Es ist übrigens überaus unklug, seine Zugangsdaten in einem Forum zu veröffentlichen. Nicht ganz so dramatisch unklug, aber immer noch unklug ist es weiterhin, Daten aus einem unsicheren Bereich ohne mysql_escape_string() an MySQL weiterzureichen.

    1. Danke für den Tipp

      Aber ich Habe die 6 Zeile Schon Mehrmal Angeguckt aber kein Fehler gefunden
      Kannst du mir Bitte den Fehler zeigen

      1. Hi!

        Aber ich Habe die 6 Zeile Schon Mehrmal Angeguckt aber kein Fehler gefunden

        Es ist diese Zeile:

        $sql = "INSERT INTO admin (ID, Name, Pass, Rang, E-Mail-Adresse) VALUES (NULL, '. $_POST['nick'] .', '. $_POST['pass'] .', 'user', '. $_POST['email'] .')";
        Kannst du mir Bitte den Fehler zeigen

        '. $_POST['nick'] .'
        Mit dem ersten ' versuchst du deinen String zu beenden. Das funktioniert nicht, denn diesen hast du mit " gestartet.
        Danach versucht du Strings mit . zu verketten, was auch nicht funktionieren kann, denn der Punkt ist hier noch Teil deines Strings.
        Und sowas:
        '. $_POST['nick'] .'
        kann doch auch schon mal nicht funktionieren.
        Schau dir doch mal genau an, welche Anführungszeichen du wie und wo einsetzt.
        Schau dir an, wo du einen String beginnst und wo du ihn beendest.
        Nutze doppelte und einfache und escape, wenn nötig.

        Schöner Gruß,
        rob

        1. Tut mir Leid aber habe nicht Verstanden wie es geht habe so versuchet
          . $_POST['nick'] ., . $_POST['pass'] . geht nicht

          1. hallo,

            du kannst nicht " und ' in einer string zusammensetzung verschmischen. du musst dich in deinem fall für eines entscheiden. also praktisch nur " verwenden, immerhin hast du damit begonnen.

            das ist wie kirchsaft mit bananensaft zu mischen. schmeckt zwar danch viel besser, sieht aber nicht mehr wie kirsche oder banne aus :)

            viele Grüße
            Chris

  2. Hi!

    Hallo bin es wieder.

    Und schon wieder mit einem anderen Namen - Hallo met456.

    $con = mysql_connect("imysql03", "i4461064", "rc0xq7xje15sf75e");

    Bist du verrückt?
    Jetzt sieh mal ganz schnell zu, daß du deinen Hoster anschreibst und die Zugangsdaten zu deiner DB ändern lässt.

    Also ich habe Ein Script zu Registrieren gemacht aber es hat irgendwo ein Fehler

    Ich ich hätte eine andere Meldung erwartet als "unexpected T_ENCAPSED_AND_WHITESPACE".
    Dein Fehler in dieser Zeile:

    $sql = "INSERT INTO admin (ID, Name, Pass, Rang, E-Mail-Adresse) VALUES (NULL, '. $_POST['nick'] .', '. $_POST['pass'] .', 'user', '. $_POST['email'] .')";

    Da hast du mit deinen Anführungszeichen ganz schön was verkehrt gemacht.
    Schau dir doch mal an, wo du deinen String beendest und wo wieder anfangen läßt.
    Nutze doppelte und einfache Quotes richtig und escape notfalls.

    Außerdem übernimmst du noch immer ungeprüft Daten, die von außen kommen.
    Das dein Script anfällig für SQL-Injections ist, habe ich (und viele viele andere) dir schon oft geschrieben.
    Da du dich hartnäckig dagegen weigerst, etwas dran zu ändern, soll es wohl so sein...
    Da du deine Zugangsdaten ohnehin öffentlich machst, brauchst du auch keine Sicherrungen in deinem Script. ;-)

    Was soll denn diese Prüfung?

    if(is_numeric($_POST['nick'], $_POST['pass'], $_POST['email']))

    Du weißt, was is_numeric() tut?
    Hier hätte ich so eine Meldung erwartet:
    Warning: Wrong parameter count for is_numeric() in blabla.php on line bla
    Liegt wahrscheinlich an deinen error_reporting-Einstellungen...
    In jedem Fall ist der Aufruf deiner Funktion gleich doppelt falsch:
    1. Du übergibst der Funktion mehr Parameter als diese erwartet.
    2. Du willst sicher nicht prüfen, ob Username, Passwort und Email wirklich numerisch sind.

    if(is_numeric($_POST['nick'], $_POST['pass'], $_POST['email'])){

    Als letztes Zeichen in obiger Zeile hast du eine öffnende geschweifte Klammer.
    Wo ist die schließende? In deinem Script scheinbar gar nicht vorhanden.
    Wie mir aber scheint, hast du den vollständigen Code gepostet.
    Da wirst du also gleich die nächste Fehlermeldung bekommen.

    Schöner Gruß,
    rob