Vraag & Antwoord

Webprogrammeren & scripting

T_CONSTANT_ENCAPSED_STRING

Anoniem
PepijnG
8 antwoorden
  • Hallo ik heb een klein probleempje:
    ik wil de postcode checken op geldigheid, maar dan krijg ik de volgende melding:

    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\xampp\htdocs\login\login.php on line 64

    Nou heb ik al lopen googelen en op php.net gekeken maar ik kom er niet helemaal uit
    wel als ik dingen wijzig dat ik dan andere foutmeldingen krijg, maar daar word ik niet veel mee geholpen

    Alvast bedankt!

    Dit is mijn code:
    [code:1:4b7d806130]if ($zip != "") {
    if (!preg_match("(\[0-9]{4,4})(\-[A-Za-z]{2,2})?$",$zip)) { #regel 64
    unset($_GET['do']);
    $message_new = "$zip is geen geldige postcode";
    include("login_form.inc");
    exit();
    }
    }[/code:1:4b7d806130]
  • [code:1:824e072b5e]
    $zip = $_POST['postcode'];

    if (preg_match('/[1-9]{1}[0-9]{3}[ ]{1}[A-Z]{2}$/', $zip))
    {echo "geldige postcode";}

    else
    {echo "ongeldige postcode";}
    [/code:1:824e072b5e]
  • dit is mijn code die ervoor staat:
    [code:1:77a1e5b519]
    case "new":
    foreach($_POST as $field => $value) {
    if ($field = "loginName" OR $field = "email" OR $field = "password") {
    if ($value == "") {
    unset($_GET['do']);
    $message_new = "Vereiste informatie ontbreekt";
    include("login_form.inc");
    exit();
    }
    }
    if (preg_match("(Name)",$field)) {
    if (!preg_match("^[A-Za-z'-]{1,50}$",$value)) {
    unset($_GET['do']);
    $message_new = "$field is geen geldige naam";
    include("login_form.inc);
    exit();
    }
    }
    $$field = strip_tags(trim($value));
    }[/code:1:77a1e5b519]

    is het dan nog nodig om $zip = $_POST['postcode']; neer te zetten?
  • de regel [code:1:bbc3166a01]$zip = $_POST['postcode'];[/code:1:bbc3166a01]
    leest het input-veld met de naam postcode uit je formulier en stopt dat in de variabele $zip.

    jij hebt die regel zo te zien niet nodig omdat je met de foreach ieder input-veld leest en daar de variabele $value van maakt.

    verder begrijp ik niet waarom je GET en POST beide gebruikt. meestal kies je één van de twee.

    de code die je hier geeft gaat volgens mij niet over de controle van de postcode.

    misschien is het handiger om je hele code te laten zien om dit soort verwarring te voorkomen.
  • oké hier komt het,
    hij werkte goed, totdat ik de controles erin ging stoppen:

    [code:1:e24c796e67]
    <?php
    session_start();
    include("pass.inc.php");
    switch(@$_GET['do']) {
    case "login":
    $connection = mysql_connect($host, $user, $password)
    or die("Kan niet verbinden met server");
    $db = mysql_select_db($database, $connection)
    or die("Kan de database niet vinden");

    $sql = "SELECT loginName FROM Member WHERE loginName='$_POST[fusername]'";
    $result = mysql_query($sql)
    or die("Kan opdracht niet uitvoeren");
    $num = mysql_num_rows($result);
    if ($num == 1) { #gebruikersnaam gevonden
    $sql = "SELECT loginName FROM Member WHERE loginName='$_POST[fusername]' AND password=password('$_POST[fpassword]')";
    $result2 = mysql_query($sql)
    or die("Kan opdracht 2 niet uitvoeren");
    $num2 = mysql_num_rows($result2);
    if ($num2 > 0) { #wachtwoord klopt
    $_SESSION['auth'] = "yes";
    $logname = $_POST['fusername'];
    $_SESSION['logname'] = $logname;
    $today = date("Y-m-d h:m:s");
    $sql = "INSERT INTO Login (loginName,loginTime) VALUES ('$logname','$today')";
    mysql_query($sql)
    or die("Kan opdracht niet uitvoeren");
    header("Location: Member_page.php");
    }
    else { #wachtwoord klopt niet
    unset($do);
    $message = "Geen geldig wachtwoord!<br>";
    include("login_form.inc.php");
    }
    }
    elseif ($num ==0) { #gebruikersnaam niet gevonden
    unset($do);
    $message = "Geen geldige gebruikersnaam";
    include("login_form.inc.php");
    }
    break;

    case "new":
    foreach($_POST as $field => $value) {
    if ($field = "loginName" OR $field = "email" OR $field = "password") {
    if ($value == "") {
    unset($_GET['do']);
    $message_new = "Vereiste informatie ontbreekt";
    include("login_form.inc.php");
    exit();
    }
    }
    if (preg_match("(Name)",$field)) {
    if (!preg_match("^[A-Za-z'-]{1,50}$",$value)) {
    unset($_GET['do']);
    $message_new = "$field is geen geldige naam";
    include("login_form.inc.php);
    exit();
    }
    }
    $$field = strip_tags(trim($value));
    }
    if (!preg_match('/[1-9]{1}[0-9]{3}[ ]{1}[A-Z]{2}$/', $zip) && $zip != "") {
    unset($_GET['do']);
    $message_new = "$zip is geen geldige postcode";
    include("login_form.inc.php");
    exit();
    }
    if ($phone != "") {
    if (!preg_match("^[0-9][xX - ]{7-20}$",$phone)) {
    unset($_GET['do']);
    $message_new = "$phone is geen geldig telefoon nummer";
    include("login_form.inc.php");
    exit();
    }
    }
    if ($fax != "") {
    if (!preg_match("^[0-9][xX - ]{7-20}$",$fax)) {
    unset($_GET['do']);
    $message_new = "$fax is geen geldig fax nummer";
    include("login_form.inc.php");
    exit();
    }
    }
    if (!preg_match("^.+@.+\\..+$",$email)) {
    unset($_GET['do']);
    $message_new = "$email is geen geldig emailadres";
    include("login_form.inc.php");
    exit();
    }

    $connection = mysql_connect($host, $user, $password)
    or die("Kan niet verbinden met server");
    $db = mysql_select_db($database, $connection)
    or die("Kan de database niet vinden");
    $sql = "SELECT loginName FROM Member WHERE loginName='$newname'";
    $result = mysql_query($sql)
    or die("Kan opdracht niet uitvoeren");
    $num = mysql_num_rows($result);
    if ($num > 0) { #gebruikersnaam bestaat al
    unset($_GET['do']);
    $message_new = "$newname bestaat al";
    include("login_form.inc.php");
    exit();
    }
    else { #gebruikersnaam bestaat niet
    $today = date("Y-m-d");
    $sql = "INSERT INTO Member (loginName,createDate,password,firstName,lastName,street,city,zip,email,phone,fax) VALUES ('$newname','$today',password('$newpass'),'$firstName','$lastName','$street','$city','$zip','$email','$phone','$fax')";
    mysql_query($sql);
    $_SESSION['auth'] = "yes";
    $_SESSION['logname'] = "$newname";
    #email sturen
    $emess = "Een nieuw account is aangemaakt. ";
    $emess .="Je gebruikersnaam en wachtwoord zijn: \n\n\t";
    $emess .="$newname\n\t$newpass\n\n";
    $emess .="We waarderen uw interesse. ";
    $emess .="Mocht u toch nog problemen hebben, ";
    $emess .="neem dan contact met ons op via de website.\n\n";
    $emess .="Met vriendelijke groeten,";
    $ehead = "From: no-reply@victorlap.com\r\n";
    $esubj = "Je nieuwe account voor VictorLap.com";
    $mailsend=mail("$email","$esubj","$emess","$ehead");
    header(Location: New_member.php");
    }
    break;

    default:
    include("login_form.inc.php");
    }
    ?>[/code:1:e24c796e67]


    &&Login_form.inc.php
    [code:1:e24c796e67]
    <html>
    <head>
    <title>Login & Registreer</title>
    </head>
    <body>
    <table align=center width=900px>
    <tr>
    <td colspan="3" align=center>Login & Registreer</td>
    </tr>
    <tr>
    <td width="33%" >Login
    <!– inlogformulier –>
    <form action="Login2.php" method="POST">
    <p>
    <table>
    <?php
    if (isset($message)) {
    echo "<tr><td colspan='2' >$message <br /></td></tr>";
    }
    ?>
    <tr>
    <td>Gebruikersnaam</td>
    <td><input type="text" name="fusername" size="20" maxsize="20"></td>
    </tr>
    <tr>
    <td>Wachtwoord</td>
    <td><input type="password" name="fpassword" size="20" maxsize="20"></td>
    </tr>
    <input type="hidden" name="do" value="login">
    <tr>
    <td colspan="2"><br /><input type="submit" name="log" value="Login"></td>
    </tr>
    </table>
    </form>
    </td>
    <td></td>
    <td>Registreer
    <form action="Login2.php" method="POST">
    <table>
    <?php
    if (isset($message_new))
    {
    echo "<tr><td colspan='2'><p>$message_new</p></td></tr>";
    }
    ?>
    <tr><td >Gebruikersnaam</td>
    <td><input type="text" name="loginName" value="<?php echo @$loginName ?>" size="20" maxlength="20"></td></tr>
    <tr><td >Wachtwoord</td>
    <td><input type="password" name="password" value="<?php echo @$password ?>" size="10" maxlength="8"></td></tr>
    <tr><td >Voornaam</td>
    <td><input type="text" name="firstName" value="<?php echo @$firstName ?>" size="40" maxlength="40"></td></tr>
    <tr><td >Achternaam</td>
    <td><input type="text" name="lastName" value="<?php echo @$lastName ?>" size="40" maxlength="40"></td></tr>
    <tr><td >Straat</td>
    <td><input type="text" name="street" value="<?php echo @$street ?>" size="55" maxlength="50"></td></tr>
    <tr><td >Woonplaats</td>
    <td><input type="text" name="city" value="<?php echo @$city ?>" size="40" maxlength="40"></td></tr>
    <tr><td>Postcode</td>
    <td><input type="text" name="zip" value="<?php echo @$zip ?>" size="10" maxsize="10"></td></tr>
    <tr><td>Telefoon nr</td>
    <td><input type="text" name="phone" value="<?php echo @$phone ?>" size="15" maxlength="20"></td></tr>
    <tr><td>Fax nr</td>
    <td><input type="text" name="fax" value="<?php echo @$fax ?>" size="15" maxlength="20"></td></tr>
    <tr><td>Email adres</td>
    <td><input type="text" name="email" value="<?php echo @$email ?>" size="55" maxlength="67"></td></tr>
    <input type="hidden" name="do" value="new">
    <tr><td>&nbsp;</td>
    <td ><input type="submit" value="Registreer"></td></tr>
    </table>
    </form>
    </td>
    </tr>
    </table>
    </body></html>[/code:1:e24c796e67]
  • als ik het goed begrijp hoort er het volgende te geburen:

    vanaf login_form.inc.php
    wordt je doorgestuurd naar login.php

    daar wordt eerst gekeken of de user al in de database voorkomt.
    als dat zo is wordt je doorgestuurd naar Member_page.php, als dat niet zo is wordt het registratie-formulier login_form.inc.php ge-include.

    de eerste fout die ik zie, zit in regel 56 van login.php
    deze code [code:1:d9fe207175] include("login_form.inc.php);[/code:1:d9fe207175] mist een "
    waardoor de include niet wordt afgesloten en de rest van de code rood wordt in dreamweaver. (vandaar dat die fout direct opvalt :wink: )

    in login_form.inc.php staat bij het formulier action="Login2.php"
    dat zou dan "login.php" moeten zijn omdat de controle van het formulier daar gebeurt.

    verder zou deze code
    [code:1:d9fe207175]
    if (!preg_match('/[1-9]{1}[0-9]{3}[ ]{1}[A-Z]{2}$/', $zip) && $zip != "") {
    unset($_GET['do']);
    $message_new = "$zip is geen geldige postcode";
    include("login_form.inc.php");
    exit();
    }
    [/code:1:d9fe207175]
    veranderd moeten worden naar dit:
    [code:1:d9fe207175]
    if ($zip != "") {
    if (!preg_match('/[1-9]{1}[0-9]{3}[ ]{1}[A-Z]{2}$/', $zip)) {
    unset($_GET['do']);
    $message_new = "$zip is geen geldige postcode";
    include("login_form.inc.php");
    exit();
    }
    }
    [/code:1:d9fe207175]
  • Dit klopt niet:
    [code:1:72ddcec108]if ($field = "loginName" OR $field = "email" OR $field = "password")[/code:1:72ddcec108]
    dit moet zijn
    [code:1:72ddcec108]if ($field == "loginName" || $field == "email" || $field = "password")[/code:1:72ddcec108]
  • Okee!!
    Heel erg bedankt allemaal voor de snelle hulp!
    Hij doet het nu en werkt goed!
    Nogal veel fouten, maar dat van Login2.php was nog van de ouder versie die ik "gebackupt" had voor als hij het niet zou doen, wat dus het geval was:$

    Bedankt,,
    ik zal ook dreamweaver gaan gebruiken denk ik, omdat Crimson Editor, het alleen op die regel weergeeft, en de volgende regels dan niet meer herkent als ook tussen ".

    MVG,,

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.