[PHP] String compare geeft verkeerd resultaat *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 15-09 18:04

TrailBlazer

Karnemelk FTW

Topicstarter
Ok ik wil een formulier maken om te laten registreren op mijn site. Uiteraard wil ik dan voorkomen dat er dubbele nicknames komen kortom ik heb het volgende gebouwd. Ik wil dat als er een nickname reeds bestaat deze regel rood wordt gemaakt om duidelijk te maken dat is niet goed. Kortom allemaal standaard. Later moeten de nicks uit een DBASE gehaald worden
Alleen het volgende werkt al niet. Welke nickname ik ook invul dus Inanak of niet de regel wordt altijd rood. :( wie kan hiet licht op laten schijnen) Live te bewonderen op http://trailblazer.xs4all.nl/register.php
p.s. opmerkingen over de manier van coden zijn ook erg gewenst
p.p.s. Ja het ziet er nog crap uit maar dat komt nog wel allemaal
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<HTML>
<HEAD>
<TITLE>Please register</TITLE>
</HEAD>
<STYLE TYPE="text/css">
#normal {color: black}
#wrong  {color: red}
</STYLE>
<BODY>
<?php
for ($i=0;$i<6;$i++)
{
  $barstyle[$i]="normal";
}
$nickname=trim($_POST['nickname']);
 echo "sent : $nickname<BR>";
if ($nickname == "Inanak" );
{
  echo "wrong $nickname";
  $barstyle[0]="wrong";
}


echo "<FORM ACTION=\"register.php\" METHOD=\"POST\">\n";
echo "<TABLE>\n";
echo "<TR><TD ID=\"$barstyle[0]\">Nickname</TD><TD><INPUT TYPE=\"input\" NAME=\"nickname\"></TD></TR>\n";
echo "<TR><TD ID=\"$barstyle[1]\">E-Mail</TD><TD><INPUT TYPE=\"input\" NAME=\"email\"></TD></TR>\n";
echo "<TR><TD ID=\"$barstyle[2]\">Name</TD><TD><INPUT TYPE=\"input\" NAME=\"name\"></TD></TR>\n";
echo "<TR><TD  ID=\"$barstyle[3]\">Woonplaats</TD><TD><INPUT TYPE=\"input\" NAME=\"woonplaats\"></TD></TR>\n";
echo "<TR><TD ID=\"$barstyle[4]\">Homepage</TD><TD><INPUT TYPE=\"input\" NAME=\"homepage\"></TD></TR>\n";
echo "<TR><TD></TD><TD><INPUT TYPE=\"submit\" VALUE=\"Register\"></TD></TR>\n";
echo "</TABLE>\n";
?>
</BODY>

Acties:
  • 0 Henk 'm!

  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 08:29
if ($nickname == "Inanak" );
moet zijn
if ($nickname == "Inanak" ) {

dus een ; minder :)

[ Voor 28% gewijzigd door Eskimootje op 03-07-2003 20:08 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Sowieso als er nog niet is ge-submit wordt hij al rood, maak van je form action eens register.php?posting=yes ofzo

en dan in je code:
if(isset($_GET["posting"])){
///Doe hier de string controles... op $nick..
}

Acties:
  • 0 Henk 'm!

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 15-09 18:04

TrailBlazer

Karnemelk FTW

Topicstarter
Eskimootje schreef op 03 juli 2003 @ 20:08:
if ($nickname == "Inanak" );
moet zijn
if ($nickname == "Inanak" ) {

dus een ; minder :)
aaarrrghh fuck perl geeft daar een waarschuwing over dus nooit op gelet thx a lot
TimD hmm goed idee dat gaat gewoon samen een GET en een POST zal wel
TimD het gaat overigens wel goed. Als het formulier geladen wordt vergelijk in Null met een naam en dat mag gewoon.

[ Voor 22% gewijzigd door TrailBlazer op 03-07-2003 20:29 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Okey om even de PHP-purist uit te hangen here goes:
* Hoe HTML en PHP gescheiden. Gooi niet een <?php .. ?> door je html heen
* Daarnaast vind ik de echo met een varriable nogal brak ipv echo "sent : $nickname<BR>"; doe ik liever echo ("sent : ".$nickname."<br>") ;
* Een tip, gebruik voor $_GET, $_COOKIE, $_POST: $_REQUEST. Deze kan alle 3 afvangen en scheelt dus het denkwerk "was het nou post of get ?"
* Dit is meer een (x)html tip: gebruik altijd kleine leters voor je syntax <TABLE> wordt <table>
* daarnaast kan je die echo ook meer lijnig laten lopen dus niet elke lijn een nieuwe echo.

[ Voor 17% gewijzigd door Verwijderd op 03-07-2003 20:39 ]


Acties:
  • 0 Henk 'm!

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 15-09 18:04

TrailBlazer

Karnemelk FTW

Topicstarter
Cazz thx ik zal er eens naar kijken allemaal. Ben net begonnen met PHP en vind het wel grappig alleen nog een beetje klooien om een eigen stijl te maken

Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

modbreak: topictitles zien we hier graag (oftewel verplicht ;) ) in het formaat "[taal] duidelijke omschrijving". Je vermeldde nu nog net dat het PHP was maar voor de rest was er geen touw aan vast te knopen. Ik heb 'm nu nog even gefixed maar doe dat de volgende keer zelf

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 15-09 18:04

TrailBlazer

Karnemelk FTW

Topicstarter
ok thx al lang blij dat er geen slotje op komnt dat schijnt altijd te moeten bij mijn PW topics :)

Acties:
  • 0 Henk 'm!

Verwijderd

* Een tip, gebruik voor $_GET, $_COOKIE, $_POST: $_REQUEST. Deze kan alle 3 afvangen en scheelt dus het denkwerk "was het nou post of get ?"
Jij gebruikt zeker ook global ;)

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 16:28

Bosmonster

*zucht*

Dat zou ik inderdaad ook niet aanraden... Als je werkelijk vergeet of je nu aan het getten of posten bent, dan zou ik eens langs de dokter gaan ;)

Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 19:27

pietje63

RTFM

Verwijderd schreef op 03 July 2003 @ 20:38:
Okey om even de PHP-purist uit te hangen here goes:
* daarnaast kan je die echo ook meer lijnig laten lopen dus niet elke lijn een nieuwe echo.
Ik echo meestal ook maar 1 regel per keer -> ziet er mooier uit

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

Verwijderd

Gaan we nu een beetje lopen zeiken?(NOFI) Kijk het gaat om de TS die php-tips wil. Je had beter ff kunnen uitleggen waarom je $_request niet aanraad(leer ik ook wat). Ik ben wel benieuwd aangezien ze bij Zend de $_REQUEST aanleveren als eerste keus (zie: je php.ini).
Nog fff een kleine tip voor de TS.
Je kan ook gebruik maken van template systemen. Dit zorgt er voor dat HTML en PHP mooi gescheide is. Je kan dan plekken in je html aangeven waar je PHP variable moet komen. En een apart php script vult dat dan in.

Pear's HTML_TEMPLATE_IT gebruik ik zelf graag.
Smarty van Zend schijnt sneller en beter te zijn.

Acties:
  • 0 Henk 'm!

  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 01-04-2023
Om ook even de TS niet zomaar iets klakkeloos te laten aannemen, ben ik van mening dat de volgende punten niet altijd even goed zijn:
Verwijderd schreef op 03 July 2003 @ 20:38:
Okey om even de PHP-purist uit te hangen here goes:
* Hoe HTML en PHP gescheiden. Gooi niet een <?php .. ?> door je html heen
Hangt ervanaf. Op het moment dat je hele lappen html hebt zonder enig php werk of variabelen oid ertussendoor, kan je net zo goed ff php sluiten, dat scheelt een hoop debug werk en overbodige code.
* Daarnaast vind ik de echo met een varriable nogal brak ipv echo "sent : $nickname<BR>"; doe ik liever echo ("sent : ".$nickname."<br>") ;
Sorry, maar jouw oplossing vind ik dan nog brakker. Een (double) quote (") bij een echo wil zeggen dat php de tekst gaat doorspitten op eventuele variabelen. Als je binnen een tekst geen var wil gebruiken, gebruik dan single quote ('). Haakjes om een echo heen hoeft in principe ook niet, maar dat kan een kwestie van smaak zijn.
* Een tip, gebruik voor $_GET, $_COOKIE, $_POST: $_REQUEST. Deze kan alle 3 afvangen en scheelt dus het denkwerk "was het nou post of get ?"
Zoals Bosmonster en sKiLL4 al aangaven, is dat juist niet aan te raden. Op die manier weet je _juist_ niet meer waar je variabele vandaan komt, terwijl je dat altijd zou moeten weten.
* Dit is meer een (x)html tip: gebruik altijd kleine leters voor je syntax <TABLE> wordt <table>
Kwestie van smaak, maar hier ben ik het ook wel mee eens.
* daarnaast kan je die echo ook meer lijnig laten lopen dus niet elke lijn een nieuwe echo.
Dit gebruikte ik ook in mijn begintijd van php, als er iets irritant is, is dit het wel. Het is simpelweg irritant voor hergebruik van code, en je huidige code wordt er niet netter of overzichtelijker op. Niet aan te raden.

Ik ben natuurlijk ook niet heilig qua coden (is er iemand dat wel? (-: ), dus laat maar horen als je het ergens niet mee eens bent.

Ook Knor is aangestoken met het ligfietsvirus!


Acties:
  • 0 Henk 'm!

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 15-09 18:04

TrailBlazer

Karnemelk FTW

Topicstarter
Hmm ik zie dat een aantal mensen de database vullen met gegevens zie ook dat ik ff moet kijken of de e-mail adressen wel enigzins geldig zijn.

En over de HTML tags groot of klein ik ben van oudsher gewent om die groot te maken. Dus dat leert heel moeilijk af ben ik bang

[ Voor 32% gewijzigd door TrailBlazer op 04-07-2003 11:42 ]


Acties:
  • 0 Henk 'm!

  • Swinnio
  • Registratie: Maart 2001
  • Laatst online: 16-09 07:50
Rotjeknor schreef op 04 July 2003 @ 11:29:
Om ook even de TS niet zomaar iets klakkeloos te laten aannemen, ben ik van mening dat de volgende punten niet altijd even goed zijn:

[...]

Ik ben natuurlijk ook niet heilig qua coden (is er iemand dat wel? (-: ), dus laat maar horen als je het ergens niet mee eens bent.
Kijk, dat vind ik nu veel constructiever dan de post van Cazzz (NOFI).
Het heeft geen nut alleen te vermelden dat je purist bent en vervolgens een hoop "tips" zonder uitleg te geven. Het gaat er juist om waarom je voor een andere aanpak kiest.
Nu kunnen mensen die het topic volgen zonder per se een oplossing voor het probleem van TS te hebben er ook nog wat van opsteken.

If the world wouldn't suck, we'd all fall off

Pagina: 1