T_encapsed_and_whitespace

Status
Niet open voor verdere reacties.

PSResource

Gebruiker
Lid geworden
27 mrt 2007
Berichten
69
Ik heb helaas weer een fout melding en ik kom er nu echt niet uit. Dit script heb ik dit keer bijna helemaal zelf geschreven en is ook af volgens mij, maar ik moet hem nog testen. En bij het testen kreeg ik deze:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/robin/pslogon/registreren.php on line 42
Error. Ik hoop dat jullie de error eruit kunnen halen. Alvast bedankt!

Code:
<?php
if (!@mysql_select_db("pslogon", @mysql_connect("localhost", "robin", "robin")))
    {
        echo "Er kon geen connectie worden gemaakt met de database.";
        exit();
    }
// check mailadres
    function check_mail($mail)
    {
    	if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
        {
            $email_adres = $mail;
            $email = explode("@", $email_adres);

            if (gethostbyname($email[1]) == $email[1])
                 $valid = "no";
        }
        else
            $valid = "no";

        return $valid;

/*activatie key*/
        function makekey($num)
    {
        // genereer het random paswoord
        mt_srand((double)microtime()*1000000);

        // loop totdat het $pass(woord) dezelfde lengte heeft als $num
        while (strlen($pass) <= $num)
        {
            $i = chr(mt_rand (0,255));
            if (eregi("^[a-z0-9]$", $i))
                $pass = $pass.$i;
        }

        // return het random paswoord
        return ($pass);
	$table= "gebruikers";
	$activatie_url= "http://ltech001.speed.planet.nl/robin/pslogon

	if ($HTTP_POST_VARS['login']))
    {
        $sql = "SELECT id FROM $table WHERE login = '$HTTP_POST_VARS[login]'";
        $res = mysql_query($sql);

        if (mysql_num_rows($res) >= 1)
            $usrname = 1;
    }

    // bekijk of alle velden zijn ingevuld
    if ($usrname || !$HTTP_POST_VARS["submit"] || !$HTTP_POST_VARS["login"] || !$HTTP_POST_VARS["pass"] || !$HTTP_POST_VARS["email"] || check_email($HTTP_POST_VARS["email"]))
    {
        if ($HTTP_POST_VARS["submit"])
            echo "<p><b>U heeft niet alle velden ingevuld, uw e-mail adres is niet juist of de login naam is al in gebruik.</b></p>";

        echo "
        <html>
        <head>
        <style type="text/css">
       	 @import 'register.css';
    	</style>
        <title>Registreren</title>
        </head>
        <body>

        <form method=\"post\" action=\"$PHP_SELF\">
        Login naam:<br>
        <input type=\"text\" name=\"login\" size=\"20\" maxlength=\"20\"><br>
        Wachtwoord:<br>
        <input type=\"text\" name=\"pass\" size=\"20\" maxlength=\"20\"><br>
        E-mail adres:<br>
        <input type=\"text\" name=\"email\" size=\"20\"><br>
        <input type=\"submit\" name=\"submit\" value=\"Registreren\">
        </form>

        </body>
        </html>";
    }
    // je weet nu dat alle velden ingevuld zijn
    else
    {

        $insert_login = addslashes($HTTP_POST_VARS[login]);
        $insert_pass = md5($HTTP_POST_VARS[pass]);
        $key = makekey(5);

        // zet de gegevens in de database
        $sql = "INSERT INTO $table (id, login, pass, email, activeer) VALUES ('', '$insert_login', '$insert_pass', '$HTTP_POST_VARS[email]', '$key')";
        $res = mysql_query($sql);

        // kijk of het invoegen in de database goed ging
        if ($res)
        {
            $aan = $HTTP_POST_VARS[email];
            $subject = "Account activatie PSResource";
            $van = "Webmaster <psresource@gmail.com>";

            $bericht = "===========================================\n";
            $bericht .= "Account activeren\n";
            $bericht .= "===========================================\n\n";

            $bericht .= "Uw account is aangemaakt. Het moet alleen nog even \n";
            $bericht .= "geactiveerd worden.\n\n";

            $bericht .= "Uw login naam: $HTTP_POST_VARS[login]\n";
            $bericht .= "Uw wachtwoord: $HTTP_POST_VARS[pass]\n\n";

            $bericht .= "Uw wachtwoord is encrypted opgeslagen en kan  \n";
            $bericht .= "niet worden opgevragen. Onthoudt u uw wachtwoord daarom goed \n";
            $bericht .= "en schrijf het op als het nodig is.\n\n";

            $bericht .= "Activatie URL:\n";
            $bericht .= "$activatie_url/activeer.php?email=$aan&key=$key\n\n";

            $bericht .= "Als de activatie URL niet werkt kunt u deze URL volgen:\n";
            $bericht .= "http://ltech001.speed.planet.nl/robin/pslogon/activatie.php\n";
            $bericht .= "Dan kunt u uw persoonlijke key invoeren. Hier uw persoonlijke key:\n";
            $bericht .= "$key\n\n";

            $bericht .= "Bedankt voor het registreren en veel plezier op de site!\n\n";

            $bericht .= "===========================================\n";
            $bericht .= "Einde automatisch gegenereerde bericht\n";
            $bericht .= "===========================================";

            // kijk of de e-mail verstuurd kan worden
            if (mail($aan, $subject, $bericht, "From: $van"))
            {
                echo "<p>Uw account is aangemaakt maar u kunt nog niet inloggen.</p>";

                echo "<p>Er is een bevestigings e-mail gestuurd met een URL adres. U moet uw ";
                echo "account eerst activeren voordat u kunt inloggen.</p>";
            }
            // als het e-mail niet verstuurd kan worden, geef dan een error bericht
            else
            {
                echo "<p>Uw account is aangemaakt maar er kon geen e-mail verstuurd worden.</p>";

                echo "<p>Probeert u het opnieuw. Krijgt u dan nog steeds niet de melding ";
                echo "dat er een activatie e-mail is gestuurd, neemt u dan contact met ons op.</p>";
            }
        }
        // als het niet goed ging
        else
        {
            echo "<p>Uw account is niet aangemaakt.</p>";

            echo "<p>Probeer het a.u.b. nogmaals. Werkt het vervolgens weer niet, neemt dan contact op.</p>";
        }
    }
?>

Nogmaals: Alvast bedankt!
 
Regel 40:
PHP:
$activatie_url= "http://ltech001.speed.planet.nl/robin/pslogon
De string wordt niet afgesloten. Dus je moet dit er even neerzetten
PHP:
$activatie_url= "http://ltech001.speed.planet.nl/robin/pslogon";

Wanneer je dat alleen hebt gedaan zul je ook nog een error op regel 60 of 59 krijgen.
maak van regel 60 dit even:
PHP:
//Het gaat om het stuk onder de echo, de echo was noodzakelijk voor de weergave
echo " 
<style type=\"text/css\">
";// Deze was ook noodzakelijk


Daarnaast kun je net zo goed
PHP:
$_POST['']
neerzetten in plaats van
PHP:
$HTTP_POST_VARS['']
 
Laatst bewerkt:
string vergeten afsluiten op regel 42 ($activatie_url)
PHP:
        // return het random paswoord
        return ($pass);
	$table= "gebruikers";
	$activatie_url= "http://ltech001.speed.planet.nl/robin/pslogon"

--Johan
 
string vergeten afsluiten op regel 42 ($activatie_url)
PHP:
        // return het random paswoord
        return ($pass);
	$table= "gebruikers";
	$activatie_url= "http://ltech001.speed.planet.nl/robin/pslogon"

--Johan

Ik denk dat het handiger is om mijn regel aan te nemen aangezien die wel wordt afgesloten. Die van jou mist nog steeds een ; ;)
 
Bedankt allemaal voor de snelle reacties! Ik ga het zo uitproberen en dan houd ik jullie op de hoogte of het gelukt is of niet.
 
Ik heb het geprobeerd en hij doet het alleen ik krijg nog een error nl.

Parse error: syntax error, unexpected $end in /var/www/robin/pslogon/registreren.php on line 152

Als jullie me daar ook me zouden kunnen helpen graag. Alvast bedankt!
 
Haakjes controleren.

Grote kans dat je een van de IF / ELSE statements niet hebt afgesloten met een }
 
Haakjes controleren.

Grote kans dat je een van de IF / ELSE statements niet hebt afgesloten met een }

Ik kan geen fout vinden. Hij zegt dat
Code:
?>
fout is. Hier nog een keer script zoals ik het nu heb:
Code:
<?php
if (!@mysql_select_db("pslogon", @mysql_connect("localhost", "robin", "robin")))
    {
        echo "Er kon geen connectie worden gemaakt met de database.";
        exit();
    }
// check mailadres
    function check_mail($mail)
    {
    	if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
        {
            $email_adres = $mail;
            $email = explode("@", $email_adres);

            if (gethostbyname($email[1]) == $email[1])
                 $valid = "no";
        }
        else
            $valid = "no";

        return $valid;

/*activatie key*/
        function makekey($num)
    {
        // genereer het random paswoord
        mt_srand((double)microtime()*1000000);

        // loop totdat het $pass(woord) dezelfde lengte heeft als $num
        while (strlen($pass) <= $num)
        {
            $i = chr(mt_rand (0,255));
            if (eregi("^[a-z0-9]$", $i))
                $pass = $pass.$i;
        }

        // return het random paswoord
        return ($pass);
	$table= "gebruikers";
	$activatie_url= "http://ltech001.speed.planet.nl/robin/pslogon";

	if ($HTTP_POST_VARS['login'])
    {
        $sql = "SELECT id FROM $table WHERE login = '$HTTP_POST_VARS[login]'";
        $res = mysql_query($sql);

        if (mysql_num_rows($res) >= 1)
            $usrname = 1;
    }

    // bekijk of alle velden zijn ingevuld
    if ($usrname || !$HTTP_POST_VARS["submit"] || !$HTTP_POST_VARS["login"] || !$HTTP_POST_VARS["pass"] || !$HTTP_POST_VARS["email"] || check_email($HTTP_POST_VARS["email"]))
    {
        if ($HTTP_POST_VARS["submit"])
            echo "<p><b>U heeft niet alle velden ingevuld, uw e-mail adres is niet juist of de login naam is al in gebruik.</b></p>";

        echo "
        <html>
        <head>
        <style type=\"text/css\">
       	 @import 'register.css';
    	</style>
        <title>Registreren</title>
        </head>
        <body>

        <form method=\"post\" action=\"$PHP_SELF\">
        Login naam:<br>
        <input type=\"text\" name=\"login\" size=\"20\" maxlength=\"20\"><br>
        Wachtwoord:<br>
        <input type=\"text\" name=\"pass\" size=\"20\" maxlength=\"20\"><br>
        E-mail adres:<br>
        <input type=\"text\" name=\"email\" size=\"20\"><br>
        <input type=\"submit\" name=\"submit\" value=\"Registreren\">
        </form>

        </body>
        </html>";
    }
    // je weet nu dat alle velden ingevuld zijn
    else
    {

        $insert_login = addslashes($HTTP_POST_VARS[login]);
        $insert_pass = md5($HTTP_POST_VARS[pass]);
        $key = makekey(5);

        // zet de gegevens in de database
        $sql = "INSERT INTO $table (id, login, pass, email, activeer) VALUES ('', '$insert_login', '$insert_pass', '$HTTP_POST_VARS[email]', '$key')";
        $res = mysql_query($sql);

        // kijk of het invoegen in de database goed ging
        if ($res)
        {
            $aan = $HTTP_POST_VARS[email];
            $subject = "Account activatie PSResource";
            $van = "Webmaster <psresource@gmail.com>";

            $bericht = "===========================================\n";
            $bericht .= "Account activeren\n";
            $bericht .= "===========================================\n\n";

            $bericht .= "Uw account is aangemaakt. Het moet alleen nog even \n";
            $bericht .= "geactiveerd worden.\n\n";

            $bericht .= "Uw login naam: $HTTP_POST_VARS[login]\n";
            $bericht .= "Uw wachtwoord: $HTTP_POST_VARS[pass]\n\n";

            $bericht .= "Uw wachtwoord is encrypted opgeslagen en kan  \n";
            $bericht .= "niet worden opgevragen. Onthoudt u uw wachtwoord daarom goed \n";
            $bericht .= "en schrijf het op als het nodig is.\n\n";

            $bericht .= "Activatie URL:\n";
            $bericht .= "$activatie_url/activeer.php?email=$aan&key=$key\n\n";

            $bericht .= "Als de activatie URL niet werkt kunt u deze URL volgen:\n";
            $bericht .= "http://ltech001.speed.planet.nl/robin/pslogon/activatie.php\n";
            $bericht .= "Dan kunt u uw persoonlijke key invoeren. Hier uw persoonlijke key:\n";
            $bericht .= "$key\n\n";

            $bericht .= "Bedankt voor het registreren en veel plezier op de site!\n\n";

            $bericht .= "===========================================\n";
            $bericht .= "Einde automatisch gegenereerde bericht\n";
            $bericht .= "===========================================";

            // kijk of de e-mail verstuurd kan worden
            if (mail($aan, $subject, $bericht, "From: $van"))
            {
                echo "<p>Uw account is aangemaakt maar u kunt nog niet inloggen.</p>";

                echo "<p>Er is een bevestigings e-mail gestuurd met een URL adres. U moet uw ";
                echo "account eerst activeren voordat u kunt inloggen.</p>";
            }
            // als het e-mail niet verstuurd kan worden, geef dan een error bericht
            else
            {
                echo "<p>Uw account is aangemaakt maar er kon geen e-mail verstuurd worden.</p>";

                echo "<p>Probeert u het opnieuw. Krijgt u dan nog steeds niet de melding ";
                echo "dat er een activatie e-mail is gestuurd, neemt u dan contact met ons op.</p>";
            }
        }
        // als het niet goed ging
        else
        {
            echo "<p>Uw account is niet aangemaakt.</p>";

            echo "<p>Probeer het a.u.b. nogmaals. Werkt het vervolgens weer niet, neemt dan contact op.</p>";
        }
    }
?>
 
Het is makkelijker als je jouw PHP-code tussen
PHP:
-tags post ipv codetags (leve highlighting)

function checkmail is niet afgesloten.
Zet nog een } net voor /*activatie key*/

@Tha Devil: sjah, slaaptekort == puntkomma-tekort :rolleyes: 


--Johan
 
Het is makkelijker als je jouw PHP-code tussen
PHP:
-tags post ipv codetags (leve highlighting)

function checkmail is niet afgesloten.
Zet nog een } net voor /*activatie key*/

@Tha Devil: sjah, slaaptekort == puntkomma-tekort :rolleyes: 


--Johan[/QUOTE]
OK bedankt! Hij doet het.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan