login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Met IF statements meerdere waardes controleren (Opgelost)

Offline willie - 24/04/2009 17:46
Avatar van willie0 Even een vraag.
Ik roep zo,
  1. if($res['gebruiker_id'] == 1) {
  2. echo "BLA BLA";
  3. }

bij bepaalde gegevens iet op.
Maar dit is maar voor een id.
Nou wil ik eigenlijk meerdere id's er in hebben.
maar ik zou niet weten hoe.
wie weet hoe dat moet?

11 antwoorden

Gesponsorde links
Offline Joost - 24/04/2009 17:48 (laatste wijziging 24/04/2009 17:48)
Avatar van Joost PHP expert Kan zo:
  1. if($res['gebruiker_id'] == 1 OR $res['gebruiker_id'] == 2 OR $res['gebruiker_id'] == 3){
  2.  
  3. }

Maar zoals je zelf wel snapt, kan dit erg lange statements opleveren, wat niet goed is voor het overzicht van je code.

Deze methode is beter:
  1. $arrayUserId = array(1,2,3);
  2. if(in_array($res['gebruiker_id'], $arrayUserId)){
  3.  
  4. }
Offline willie - 24/04/2009 17:51 (laatste wijziging 24/04/2009 18:41)
Avatar van willie 0 Oke,
ik ga er even mee aan de slag.
------------------------------
Nu werkt het,
  1. <?php
  2. $arrayUserId = array('1','5');
  3. if(in_array($res['gebruiker_id'], $arrayUserId)){
  4. echo "blaat";
  5. }
  6. else{
  7. echo "<a target=_blank href=http://".$row['website'].">".$row['website']."</a>";
  8. }
  9. ?>

maar is het ook mogelijk om de id nummers in een dat bestand te zetten, zodat ik dat gemakkelijk kan aanpassen?
----------------------------------------------

Offline Joost - 24/04/2009 18:42
Avatar van Joost PHP expert Ik weet niet of het mogelijk zo een array in te lezen.
Anders kun je gewoon een bestandje id.inc.php maken, en die dan includen.
Je zou ook met een database kunnen werken, er zijn zat mogelijkheden  
Offline willie - 24/04/2009 18:45 (laatste wijziging 25/04/2009 15:51)
Avatar van willie 0 Ik denk dat ik dan toch maar voor de db kies.
Ik ga wel eerst even wat proberen.
het includen van het id.inc werkte toch niet zo goed
als ik dacht.
--------------------------------------------------
Ik ben nog even verder gegaan met het script.
Maar loop nu tegen het volgende probleem aan.
Ik heb het dus toegepast op de ingevoerde websites.
Dit werkt goed, als de website precies zo is ingevuld als in de array.
Maar zodra er een vervolg is in de link, (bvb www.blabla.nl/forum/ )wordt hij wel getoond.
Dit wil ik dus niet hebben.
Ik wil dus alles achter de website link blokken.
Hoe kan ik dat hier in toe passen?
  1. <?php
  2. $arrayUserId = array('blabla.nl','www.blabla.nl');
  3. if(in_array($row['website'], $arrayUserId)){
  4. echo "";
  5. }
  6. else{
  7. echo "<a target=_blank href=http://".$row['website'].">".$row['website']."</a>";
  8. }
  9. ?>


(Dit is om de links naar bepaalde sites niet te tonen.)
Offline Joost - 25/04/2009 16:07
Avatar van Joost PHP expert Het moet precies andersom.
Je geeft nu een link weer wanneer hij NIET in de array voorkomt.
Uit je uitleg begrijp ik dat je die sites juist wel wilt weergeven.
Dit zou dan een goede code zijn:
  1. <?php
  2. $arrayUserId = array('blabla.nl','www.blabla.nl');
  3. if(in_array($row['website'], $arrayUserId)){
  4. echo "<a target=_blank href=http://".$row['website'].">".$row['website']."</a>";
  5. }
  6. /* Er hoeft geen else, omdat daar toch niks zou moeten gebeuren. Wanneer je wel wat wilt doen wanneer hij niet in de array zit, kan je hem wel weer toevoegen */
  7. ?>
Offline willie - 25/04/2009 16:14 (laatste wijziging 26/04/2009 15:19)
Avatar van willie 0 Nee,

het is de bedoeling, dat de site www.blabla.nl niet wordt getoond.
dus ook niet als de ingevoerde link in de db is www.blabla.nl/index.php?id=2 is, dan mag dat dus ook niet worden getoond.
maar ik kan dus moeilijk om allerlij soorten gegevens van die site in te gaan voeren.

Dus eigenlijk alles wat met die site heeft te maken, mag niet worden getoond

Heeft iemand een idee, hoe ik dat kan oplossen.
Offline Brix - 26/04/2009 15:46 (laatste wijziging 26/04/2009 15:48)
Avatar van Brix Nieuw lid wat ik wel eens gedaan heb is het volgende


  1. function VisitLink($ID) {
  2. $GetLink = mysql_query("SELECT * FROM Links WHERE LinkID = ".$ID);
  3. $row = mysql_fetch_assoc($GetLink);
  4.  
  5. if(function_exists(LinkControl) && LinkControl() == false) {
  6. mysql_query("UPDATE Links SET Counter = Counter + 1 WHERE LinkID = ".$ID) or die(mysql_error());
  7. echo ErrorMailer();
  8. }
  9. $pushback = "Een ogenblik geduld. U wordt doorverwezen...\n";
  10. $pushback .= "<meta http-equiv='Refresh' content='2;URL=".$row['LinkTarget']."'>\n";
  11.  
  12. return $pushback;
  13. }

Hiermee hield ik bij hoeveel keer het linkje is aangeklikt.
het linkje zag er dan bijv zo uit als je er over hovert
www.jouwdomein.nl/index.php?linkout=2
Misschien dat je hier wat aan hebt
Offline willie - 26/04/2009 16:39 (laatste wijziging 26/04/2009 16:52)
Avatar van willie 0 Nee, dit is niet wat ik bedoel.

Ik zal het even goed uitleggen.

Als iemand zich aanmeld, kan hij een link na een website opgeven.
Alleen zijn bepaalde websites verboden.
Deze verboden sites staan in de array.

met het script, wordt er dus gekeken als de opgegeven website niet een van de verboden website uit de array is.
Is dit niet het geval, dan wordt de link naar de website getoond.
Is dit wel het geval, dan wordt de link naar de website dus niet getoond.
Tot hier werkt het script dus goed.
Maar wat als de ingegeven link is www.blabla.nl/index.php?id=12.
Dit staat dus niet in de array, en wordt dus wel getoond.
Maar het is dus een verboden link.
En mag dus niet worden getoond.
Dus alle pagina's van deze site zijn een verboden link.

Hiervoor zoek ik dus een oplossing
Offline Brix - 26/04/2009 17:14 (laatste wijziging 26/04/2009 17:14)
Avatar van Brix Nieuw lid en wat dacht je dan van
  1. eregi("www.blabla.nl", "www.blabla.nl/index.php?id=12")


Hiermee geef je aan wat je zoekt, vervolgens leg je dat tegenover wat de gebruiker opgeeft.

dus simpel voorbeeld

  1. if(!eregi("www.blabla.nl", "www.blabla.nl/index.php?id=12"))
  2. //Laat dan de website zien


Enige wat je dan moet doen is je array hier in toepassen
Offline willie - 26/04/2009 19:29 (laatste wijziging 26/04/2009 20:46)
Avatar van willie 0 Dat is dus geen oplossing, weet je wel hoelang jou regel 1 dan wel wordt.
dat wordt dan een waslijst van hier tot tokio.
en dan heb ik het nog maar over een site.
Kijk maar eens hier op de site, hoeveel diverse links hier op staat.
================================================
Ik heb het zo opgelost.
  1. <?php
  2. $string = $row['website'];
  3. if(stristr($string, 'test') === FALSE){
  4. if(stristr($string, 'knurf') === FALSE){
  5. if(stristr($string, 'rommel') === FALSE){
  6. if(stristr($string, 'blabla') === FALSE){
  7. {
  8. echo "<a target=_blank href=http://".$row['website'].">".$row['website']."</a>";
  9. }
  10. }
  11. }
  12. }
  13. }
  14. ?>

Dit werkt.
Offline Brix - 26/04/2009 21:11
Avatar van Brix Nieuw lid Als je nou eens werkt met een database koppeling.


  1. $query = mysql_query("SELECT column FROM table");
  2.  
  3. $websites = "";
  4. while($row = mysql_fetch_array($query)) {
  5. $websites .= $row['column']. ",";
  6. }
  7.  
  8. if(!eregi($websites, $row['website'])) {
  9. echo "<a target=_blank href=http://".$row['website'].">".$row['website']."</a>";
  10. }
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.319s