abonnement Unibet Coolblue Bitvavo
pi_38719957
quote:
Op vrijdag 9 juni 2006 13:01 schreef Darkomen het volgende:
Vraagje, ik weet dat je met php pdf files kan maken, maar kan je ook aan een bestaande pdf een wachtwoord toevoegen doormiddel van php?
Voor zover ik weet kan dat niet zomaar; er is in ieder geval erg weinig op Google over te vinden.
pi_38745668
Daar kon ik dus ook weinig over vinden.
Html 2 pdf en dan een wachtwoord erop is geen probleem.
maar waarom zou je dat dus niet achteraf kunnen doen.
pi_38775744
Mensen, ik heb een php script waarbij hij uit 1 tabel data haalt er neerkalkt, maar nu wil ik dat hij tweede row uit een andere tabel ernaast zet. Dus 2 rijen met gegevens.

1
2
3
4
5
6
7
8
9
10
11
12
<?php
php
mysql_connect
("localhost", "root", "");
mysql_select_db("plaatsen");

$result = mysql_query("SELECT * FROM tbl_plaats ORDER BY starttijd ASC") or die("FUCKING ERROR");
while(
$row = mysql_fetch_row($result))

{
   echo
"nijmegen: ".$row[1]."<br/>";
}
?>


Iemand? !
  FOK!-Schrikkelbaas maandag 12 juni 2006 @ 12:36:20 #104
1972 Swetsenegger
Egocentrische Narcist
pi_38775878
quote:
Op maandag 12 juni 2006 12:31 schreef boebiedoe het volgende:
Mensen, ik heb een php script waarbij hij uit 1 tabel data haalt er neerkalkt, maar nu wil ik dat hij tweede row uit een andere tabel ernaast zet. Dus 2 rijen met gegevens.
[ code verwijderd ]

Iemand? !
En wat is de relatie tussen die 2 tabellen?
pi_38781336
quote:
Op maandag 12 juni 2006 12:31 schreef boebiedoe het volgende:
Mensen, ik heb een php script waarbij hij uit 1 tabel data haalt er neerkalkt, maar nu wil ik dat hij tweede row uit een andere tabel ernaast zet. Dus 2 rijen met gegevens.
[ code verwijderd ]

Iemand? !
1
2
3
4
5
6
7
8
9
<?php
$i
= 0;
echo
'<tr>';
while(
$row = mysql_fetch_row($result)) {
  echo
'<td>'.htmlspecialchars($row[1]).'</td>';
  if(++%
i % 2 == 0) echo '</tr><tr>';
}
echo
'</tr>';
?>
pi_38781785
@Roonaan

Dat is niet de bedoeling. Hij wil een tweede kolom met data uit een andere tabel. Wat jij doet is de beschikbare data verspreiden over twee kolommen.
pi_38782143
quote:
Op maandag 12 juni 2006 16:31 schreef JeRa het volgende:
@Roonaan

Dat is niet de bedoeling. Hij wil een tweede kolom met data uit een andere tabel. Wat jij doet is de beschikbare data verspreiden over twee kolommen.
kzie het. Dan wordt het float:leften
  FOK!-Schrikkelbaas maandag 12 juni 2006 @ 16:43:22 #108
1972 Swetsenegger
Egocentrische Narcist
pi_38782183
of met een join in 1 query de data eruit trekken.
  maandag 12 juni 2006 @ 17:46:07 #109
32768 DionysuZ
Respect my authority!
pi_38784238
quote:
Op maandag 12 juni 2006 16:43 schreef Swetsenegger het volgende:
of met een join in 1 query de data eruit trekken.
of eerst de data uit de tabellen trekken en daarna pas de output genereren
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
pi_38785629
Of we kunnen natuurlijk eerst even wachten tot Boe vertelt wat ie nu wil.
pi_38785758
Nee, dat wordt te makkelijk
  maandag 12 juni 2006 @ 19:13:12 #112
31245 nonzz
parttime lilliputter
pi_38786756
Misschien iets voor in de OP: http://www.hudzilla.org/phpbook/index.php
Erg fijn online PHP boek met voorbeelden en uitleg e.d.
lege ton
  FOK!-Schrikkelbaas maandag 12 juni 2006 @ 19:15:45 #113
1972 Swetsenegger
Egocentrische Narcist
pi_38786870
quote:
Op maandag 12 juni 2006 17:46 schreef DionysuZ het volgende:

[..]

of eerst de data uit de tabellen trekken en daarna pas de output genereren
Dat zeg ik
pi_38789310
Nog geen php golf-8 topic?
  FOK!-Schrikkelbaas dinsdag 13 juni 2006 @ 16:15:37 #115
1972 Swetsenegger
Egocentrische Narcist
pi_38815822
quote:
Op maandag 12 juni 2006 20:22 schreef Roönaän het volgende:
Nog geen php golf-8 topic?
Het is te warm om diep na te denken
pi_38827263
Erg moeilijke golf trouwens. Of ik ben gewoon te newbie. Stomme 7 en 9-toetsen die weer 4 letters moeten hebben
pi_38827660
quote:
Op dinsdag 13 juni 2006 16:15 schreef Swetsenegger het volgende:

[..]

Het is te warm om diep na te denken
Helemaal mee eens
pi_38834974
quote:
Op maandag 12 juni 2006 20:22 schreef Roönaän het volgende:
Nog geen php golf-8 topic?
Ik heb 't oude topic ff een schop gegeven.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_38853628
1ste tip, check altijd je userinput!

Ga maar eens naar deze link http://danielpunt.nl/PHP/template.php?page=body&style=DITZOUNIETMOGEN!!!
en bekijk je bron.

Nu haalt dit niets uit natuurlijk, maar er kan heel veel fout gaan.
pi_38859119
Wat heb je nu precies gedaan en hoe zorg ik er voor dat je het niet meer kan doen?
pi_38859511
Hij heeft de url veranderd. Daardoor veranderd in jou script de waarde $_GET['style'].

Je controleert in je script niet wat er in $_GET['style'] staat.
  FOK!-Schrikkelbaas woensdag 14 juni 2006 @ 20:25:21 #123
1972 Swetsenegger
Egocentrische Narcist
pi_38860610
quote:
Op woensdag 14 juni 2006 19:47 schreef super-muffin het volgende:
Wat heb je nu precies gedaan en hoe zorg ik er voor dat je het niet meer kan doen?
Je geeft in de url, welke door iedereen in zijn browser natuurlijk vrij te veranderen is, gegevens mee welke je in je script gebruikt.

In dit geval gebruik je een gegeven om een bepaalde stijl in te lezen. Maar in sommige gevallen ga je het bv ook gebruiken om bepaalde items uit een database te halen. Of je gaat een gebruiker via een formulier dingen in laten vullen die je in je database wil zetten.

In beide gevallen kan een slim persoon door de gevens in URL of formulier te manipuleren bijvoorbeeld gegevens uit de database halen welke niet voor hem bedoeld zijn. Of hij kan de hele database wissen of....

Kortom, ALLES wat de gebruiker in kan vullen of kan manipuleren moet je in je script controleren of het wel daadwerkelijk de inhoud bevat die jij verwacht.

Bijvoorbeeld jij verwacht in je script dat de variabele $_GET['style'] een van de volgende waarden bevat:

default
grijs
blauw

etc.

Je moet nu dus $_GET['style'] controleren of het wel een van de waarden bevat die je verwacht. bijvoorbeeld door een switch statement:
pi_38862009
En wat moet 'ie doen als $style is wat ik verwacht en wat als het iets anders is?

En waarom switch gebruiken en geen if?
pi_38862132
quote:
Op woensdag 14 juni 2006 20:56 schreef super-muffin het volgende:
En wat moet 'ie doen als #style is wat ik verwacht en wat als het iets anders is?
Wat dacht je van een standaard style gebruiken? bijvoorbeeld zo:
1
2
3
4
5
$allowedStyles = array('rood', groen');
$style = $_GET['style'];
if (!in_array($style, $allowedStyles)) {
    $style = $allowedStyles[0];
}
quote:
En waarom switch gebruiken en geen if?
Kwestie van keuze. Een switch is vaak overzichtelijker dan een if
pi_38863742
quote:
Op woensdag 14 juni 2006 20:59 schreef JeRa het volgende:

[..]

Wat dacht je van een standaard style gebruiken? bijvoorbeeld zo:
[ code verwijderd ]
Tuurlijk begin meteen met array's
1
2
3
4
5
6
7
8
9
10
11
<?php
switch($style){
  case
'blauw':
  
//blauw enzo
  
break;
  
//etc
  
default:
  
//als het geen van de case's is
  
break;
}
?>
quote:
[..]

Kwestie van keuze. Een switch is vaak overzichtelijker dan een if
Ik vind een switch meestal fijner werken. Inderdaad doordat het overzichtelijker is.
  FOK!-Schrikkelbaas woensdag 14 juni 2006 @ 22:11:58 #127
1972 Swetsenegger
Egocentrische Narcist
pi_38864967
quote:
Op woensdag 14 juni 2006 20:56 schreef super-muffin het volgende:
En wat moet 'ie doen als $style is wat ik verwacht en wat als het iets anders is?

En waarom switch gebruiken en geen if?
Zoals de rest zegt.
Als het is wat je verwacht (dus in jouw geval een kleur zoals blue, red, grey) de bijbehorende stijl tonen. Indien het iets anders is een default stijl tonen, of met een echo de gebruiker helemaal de pestpleuris schelden

-edit- de defauilt stijl tonen zou mijn voorkeur hebben omdat je pagina er dan OOK goed uitziet wanneer ze er zonder paramaters in de url terecht komen.
pi_38866113
quote:
Op woensdag 14 juni 2006 20:59 schreef JeRa het volgende:

[..]

Wat dacht je van een standaard style gebruiken? bijvoorbeeld zo:
[ code verwijderd ]
Dan kan korter
quote:
$allowedStyles = array('rood', 'groen');
$style = ( !in_array($_GET['style'], $allowedStyles) ) ? $_GET['style'] : $allowedStyles[0];
En in dit geval heeft een array mijn voorkeur boven een switch, gewoon omdat je een array makkelijk in een los configbestand kunt zetten en dan alleen die maar hoeft aan te passen als er een nieuwe stijl bij komt.
pi_38866239
quote:
Op woensdag 14 juni 2006 22:38 schreef Light het volgende:

[..]

Dan kan korter
Weet ik, maar dan moet ik twee keer $_GET typen en daar heb ik een hekel aan
  FOK!-Schrikkelbaas woensdag 14 juni 2006 @ 22:41:25 #130
1972 Swetsenegger
Egocentrische Narcist
pi_38866257
quote:
Op woensdag 14 juni 2006 22:38 schreef Light het volgende:

[..]

Dan kan korter
[..]

En in dit geval heeft een array mijn voorkeur boven een switch, gewoon omdat je een array makkelijk in een los configbestand kunt zetten en dan alleen die maar hoeft aan te passen als er een nieuwe stijl bij komt.


De jongen is net begonnen he...
pi_38869246
Ja, maar aan de andere kant is goed beginnen niet erg:
1
2
3
4
5
6
7
8
9
<?php
$var
= (conditie) : '1' ? '2';
// hetzelfde als
if(conditie){
$var = '1';
} else {
$var = '2';
}
?>
pi_38869547
quote:
Op woensdag 14 juni 2006 22:41 schreef JeRa het volgende:

[..]

Weet ik, maar dan moet ik twee keer $_GET typen en daar heb ik een hekel aan
Ctrl-C, Ctrl-V
pi_38869730
$_G<enter>
pi_38870424
In welke editor Roonaan?
pi_38902051
quote:
Op woensdag 14 juni 2006 23:54 schreef Roönaän het volgende:
$_G<enter>
Wow, dat scheelt 1 toetsaanslag
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_38902052
Ik wil een query binnen een query uitvoeren, maar hoe ding dit ook al weer in SQL?

Als ik de query (die geen errors geeft) nu print, is dit wat er staat:
quote:
SELECT * FROM Auto WHERE NOT EXISTS (SELECT AutoID FROM Verhuur WHERE Terugbrengdatum => 2006-06-15)
De code is:
1
2
$sql = "SELECT * FROM Auto WHERE NOT EXISTS (SELECT AutoID FROM Verhuur WHERE 
Terugbrengdatum => $datum)"; 


In de tabel Auto staat Volvo C70 met ID 1. De tabel verhuur is leeg.

Iemand een idee hoe dit werkend te krijgen?
pi_38902626
quote:
Op donderdag 15 juni 2006 22:47 schreef LeeHarveyOswald het volgende:
Ik wil een query binnen een query uitvoeren, maar hoe ding dit ook al weer in SQL?

Als ik de query (die geen errors geeft) nu print, is dit wat er staat:
[..]

De code is:
[ code verwijderd ]

In de tabel Auto staat Volvo C70 met ID 1. De tabel verhuur is leeg.

Iemand een idee hoe dit werkend te krijgen?
Volgens mij heten die dingen subqueries http://dev.mysql.com/doc/refman/5.0/en/subqueries.html
Ik ben absoluut geen expert maar kan het niet zijn dat je 2 singlequotes bent vergeten rondom $datum?
  FOK!-Schrikkelbaas donderdag 15 juni 2006 @ 22:59:46 #138
1972 Swetsenegger
Egocentrische Narcist
pi_38902772
quote:
Op donderdag 15 juni 2006 22:47 schreef LeeHarveyOswald het volgende:
Ik wil een query binnen een query uitvoeren, maar hoe ding dit ook al weer in SQL?

Als ik de query (die geen errors geeft) nu print, is dit wat er staat:
[..]

De code is:
[ code verwijderd ]

In de tabel Auto staat Volvo C70 met ID 1. De tabel verhuur is leeg.

Iemand een idee hoe dit werkend te krijgen?
Subqueries, maar die werken pas vanaf MySQL 5.
Maar volgens mij moet dit met een join op te lossen zijn.
pi_38903162
$sql = "SELECT * FROM Auto WHERE NOT EXISTS (SELECT AutoID FROM Verhuur WHERE Terugbrengdatum > '$datum')";

werkt (alleen is auto type de enige die nu wordt weergegeven, maar ik denk dat ik ergens wat kleine hoofdletterfoutjes maak ofzo )
pi_38903459
@LeeHarveyOswald

Je wilt alle auto's opvragen die niet voorkomen in de verhuurlijst met auto's die teruggebracht moeten worden na $datum? Waarom een subquery? Daar zijn JOINs voor:
1
2
3
4
5
SELECT a.*
FROM Auto a
LEFT JOIN Verhuur v ON a.id = v.AutoID
WHERE v.AutoID IS NULL
AND v.Terugbrengdatum > '$datum'
pi_38903667
Die onthoud ik gelijk even (hij werkt nu dus nu laat ik em met rust ... )..

Alleen als ik de regel echo "<tr><td><p><a href='index.php?function=carinfo&carinfo=$AutoID'>$Fabrikantnaam</a></p></td><td>$Type</td><td><p><a href='index.php?function=huur&carid=$AutoID'>$Huurprijs</a></p></td></tr>";

Uitvoer, dan komt C70 (onder Type) een halve regel te laag te staan? :S
pi_38903839
quote:
Op donderdag 15 juni 2006 23:15 schreef JeRa het volgende:
Waarom een subquery? Daar zijn JOINs voor:
In dit geval kan het inderdaad ook makkelijk met een join in plaats van de subquery. De versie met "where not exists(...)" vertelt wel duidelijker wat er gebeurt.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_38903858
Ik ben bezig met het maken van een systeem voor een confirmed opt in nieuwsbriefsysteem. Maar ik zit nu al een tijdje vast. Ik heb een formulier en de waarden daarvan worden verwerkt in een een functie process_nieuwsbrief. Deze functie moet uiteindelijk 3 activiteiten hebben, hij controleert userinput, hij stopt de gegevens in de database en hij verstuurt een email. Om de email te versturen heeft hij het ID nodig van het net in de datase ingevoerde emailadres. De functie ziet er dan ook ongeveer als volgt uit.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (!eregi $naam)
elseif (!eregi $email)
else {
$datum = date("Y-m-d");
include ("my_config.php");
@mysql_select_db("web")
or die ("kon geen database selecteren");
$query = "INSERT INTO nieuwsbrief SET naam='$naam', emailadres='$email', datum='$datum', actief='no'";
$result = mysql_query($query);
$query2 = "SELECT ID FROM nieuwsbrief WHERE randid='$randid' AND emailadres= '$email'";
$result2 = mysql_query($query2);
if ($result) {echo "u ontvangt een email waarmee u uw aanmelding kan voltooien<br/>";
while (list($id) = mysql_fetch_row($result2))
{ echo $id;}}
else {echo "Uw emailadres is al opgenomen in de database.";}}

Het eerste stuk van de code gaat helemaal goed, hij checked de userinput en zet indien akkoord de gegevens in de database. Alleen het laatse stuk gaat fout. Hij laat de gegevens uit de while loop niet zien geeft ook geen error als ik mysql_erro() toevoeg.
Als ik de code los probeer laat hij wel netjes de gegevens uit de database zien alleen zo niet. Waaraan kan dit liggen??

[ Bericht 10% gewijzigd door ExCibular op 15-06-2006 23:30:05 ]
  FOK!-Schrikkelbaas donderdag 15 juni 2006 @ 23:29:37 #144
1972 Swetsenegger
Egocentrische Narcist
pi_38904063
$id=mysql_insert_id();
pi_38904418
quote:
Op donderdag 15 juni 2006 23:29 schreef Swetsenegger het volgende:
$id=mysql_insert_id();
Dank je wel dat deed de truc!
pi_38920129
tvp

systeem toch maar in mysql aan het zetten... Kon ik beter direct doen...
pi_38942813
Mijn nieuwsbrief werk nu. Alleen is er iets geks aan de hand. local draait hij perfect, alleen nu ik heb hem upgeload weigert hij een MYSQL query uit te voeren. In de email om de aanmelding te bevestigen staat een link en als men daarop klikt moet in de DB actief omgezet worden van no naar yes.

Dat doe ik met de volgende code:
1
2
3
$query = "UPDATE nieuwsbrief SET actief='yes' WHERE ID='$mail_id'";
   $result = mysql_query($query);
   if ($result) {echo "U heeft zich succesvol aangemeld! Binnenkort ontvangt u onze nieuwsbrief.";


Zoals gezegd thuis werkt dit perfect maar op een webserver doet hij dit niet goed. Ik krijg wel de zin de aanmelding is succesvol te zien maar in de DB staat actief nog steed op no.
  FOK!-Schrikkelbaas zaterdag 17 juni 2006 @ 14:28:12 #148
1972 Swetsenegger
Egocentrische Narcist
pi_38943763
1
2
3
4
5
6
7
<?php
$query
= "UPDATE nieuwsbrief SET actief='yes' WHERE ID=".$mail_id;
$result = mysql_query($query);
if (
$result) {
    echo
"U heeft zich succesvol aangemeld! Binnenkort ontvangt u onze nieuwsbrief.";
}
?>


werkt dit wel?
pi_38944672
even een PHP only vraag:

Aan het begin van m'n script define ik enkele constants:

1
2
3
4
5
<?php
define
("EDIT", 4);
define("DEL", 2);
define("DELETED", 1);
?>


Deze waardes wil ik gebruiken voor een simpele button bar, kan ik per entry bepalen welke acties erop uitgevoerd mogen worden, gebruik makend van bitwise operators, even versimpeld:

1
2
3
<?php
ButtonBar
("entry uit database dat geedit of gedelete mag worden", EDIT | DEL);
?>


Deze moet achter de string de 2 knoppen voor editen en deleten weergeven. De functie ButtonBar controleert de flags als volgt (versimpeld):

1
2
3
4
5
6
7
8
9
<?php
function ButtonBar($string, $flags) {
  print
$string;
  if ( (
$flags & EDIT) == EDIT)
    print (
"[ <a href=\"edit.php\">wijzig</a> ]");
  if ( (
$flags & DEL) == DEL)
    print (
"[ <a href=\"delete.php\">delete</a> ]");
}
?>


Probleem is, m'n logs spugen "Use of undefined constant [..]" notices uit, en als ik EDIT of DEL echo dan laat het doodleuk "EDIT" of "DEL" zien in plaats van hun vooraf gedefineerde waardes...

Voor zover ik het begrijp zouden defined constants global te gebruiken moeten zijn dus ook in functies als ButtonBar. Zie ik nu iets over het hoofd dat het script niet werkt zoals het zou moeten?
  zaterdag 17 juni 2006 @ 15:52:18 #150
62687 Ajaxfan
Look out for me
pi_38945521
Ik ben bezig met een simpel login script. Het is me al gelukt om een registratie te laten verwerken in een Mysql database. Alleen nu is het dus de bedoeling dat hij de username en het wachtwoord uit de database haalt. Ik krijg dan de melding die je krijgt als de connectie met de database mislukt is: Sorry kan niet inloggen dus. Ik heb zelf geen idee waar het aan ligt.


Dit is mijn login script:
quote:
</style></head>
<html>

<body>

<p>

<h3>Login</h3><br>

</p>



<form action="login-verwerken.php" method="post">



user name: <input type="text" name="username">

<br>

password : <input type="text" name="wachtwoord">

<br>

<br>

<input type="submit" value="Versturen">



</form>

</body>
</html>
En dit is me login verwerken script:
quote:
<html>

<?php

$host="localhost";
$user="root";
$password="";
$database="leden";
mysql_connect($host,$user,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query = ("select username, wachtwoord FROM leden WHERE username='$_POST[username]' AND wachtwoord='$_POST[wachtwoord]'");
$resultaat= mysql_query($query) or die ("Sorry inloggen niet succesvol");
if(mysql_affected_rows()==0){
exit();
}
else{

$user = $_POST['username'];

session_start();

$_SESSION['username'] = $user;
$_SESSION['counter'] = 0;

header('Location: Index.php');
}

?>

</html>
* Ajax * Arsenal * Barca * Fiorentina * Napoli * Leeds *
pi_38945740
quote:
Op zaterdag 17 juni 2006 15:52 schreef Ajaxfan het volgende:
Ik ben bezig met een simpel login script. Het is me al gelukt om een registratie te laten verwerken in een Mysql database. Alleen nu is het dus de bedoeling dat hij de username en het wachtwoord uit de database haalt. Ik krijg dan de melding die je krijgt als de connectie met de database mislukt is: Sorry kan niet inloggen dus. Ik heb zelf geen idee waar het aan ligt.


Dit is mijn login script:
[..]

En dit is me login verwerken script:
[..]
verander

1$query = ("select username, wachtwoord FROM leden WHERE username='$_POST[username]' AND wachtwoord='$_POST[wachtwoord]'");


eens in

1$query = "SELECT username, wachtwoord FROM leden WHERE username='".$_POST['username']."' AND wachtwoord='".$_POST['wachtwoord']."'";
pi_38946504
quote:
Op zaterdag 17 juni 2006 14:28 schreef Swetsenegger het volgende:

[ code verwijderd ]

werkt dit wel?
Nee dat werkt ook niet. Ik blijf nog even door proberen.
  zaterdag 17 juni 2006 @ 18:05:01 #153
32768 DionysuZ
Respect my authority!
pi_38948661
Je script is heel erg gevoelig voor SQL injectie. Verder is het NIET verstandig om wachtwoorden niet gecodeert op te slaan in een database. Mocht iemand toegang tot de database krijgen krijgt deze ook toegang tot alle usernames en wachtwoorden, en aangezien mensen vaak dezelfde wachtwoorden gebruiken kunnen deze kwaadwillenden vaak deze wachtwoorden op meerdere plaatsen gebruiken.

Dat is niet wat je wil.

Daarnaast kan ik makkelijk als iemand inloggen zonder zijn/haar wachtwoord of username te hoeven weten. Ik hoef dan alleen maar de session ID te verkrijgen en ik heb toegang.
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
pi_38948963
quote:
Op zaterdag 17 juni 2006 15:11 schreef Lynx666 het volgende:
even een PHP only vraag:

Aan het begin van m'n script define ik enkele constants:
[ code verwijderd ]

Deze waardes wil ik gebruiken voor een simpele button bar, kan ik per entry bepalen welke acties erop uitgevoerd mogen worden, gebruik makend van bitwise operators, even versimpeld:
[ code verwijderd ]

Deze moet achter de string de 2 knoppen voor editen en deleten weergeven. De functie ButtonBar controleert de flags als volgt (versimpeld):
[ code verwijderd ]

Probleem is, m'n logs spugen "Use of undefined constant [..]" notices uit, en als ik EDIT of DEL echo dan laat het doodleuk "EDIT" of "DEL" zien in plaats van hun vooraf gedefineerde waardes...

Voor zover ik het begrijp zouden defined constants global te gebruiken moeten zijn dus ook in functies als ButtonBar. Zie ik nu iets over het hoofd dat het script niet werkt zoals het zou moeten?
Constants zijn per definitie globals in PHP, dus ik heb echt geen idee waarom het niet zou werken onder welke PHP-versie draait het? Staat de functie in een aparte include?
pi_38949568
quote:
Op zaterdag 17 juni 2006 18:19 schreef JeRa het volgende:

[..]

Constants zijn per definitie globals in PHP, dus ik heb echt geen idee waarom het niet zou werken onder welke PHP-versie draait het? Staat de functie in een aparte include?
Dat dacht ik dus ook

De defines en functies staan beide in hetzelfde php bestand en gebruik PHP 5.0.3.


edit: Hmm vreemd! Ik heb de defines nu helemaal bovenaan gezet (zaten eerst nog wat zaken tussen als general purpose includes en database connects) en dat lijkt wél te werken.

[ Bericht 13% gewijzigd door Lynx666 op 17-06-2006 18:53:37 ]
  zaterdag 17 juni 2006 @ 19:17:04 #156
62687 Ajaxfan
Look out for me
pi_38950289
Ik heb die tip van jou geprobeerd Lynx maar nog steeds blijf ik die melding krijgen.
* Ajax * Arsenal * Barca * Fiorentina * Napoli * Leeds *
pi_38951438
quote:
Op zaterdag 17 juni 2006 19:17 schreef Ajaxfan het volgende:
Ik heb die tip van jou geprobeerd Lynx maar nog steeds blijf ik die melding krijgen.
Als je geen verbinding met de database kunt krijgen zal geen enkele query werken controleer de naam van de host, je gebruikersnaam, wachtwoord en naam van de database. Met mysql_error (of mysql_connect_error als ik het me goed herinner) kun je opvragen wat de exacte foutmelding is
pi_38962516
ik heb een marquee gemaakt met php & gd, maar je moet de positie van de text in pixels geven, met een statische text is het geen probleem, maar ik wil iets maken met een dynamische text, hoe moet ik de breedte van een string berekenen??
PS4 online: micro_nl
pi_38963991
quote:
Op zondag 18 juni 2006 01:57 schreef guitarist.nl het volgende:
[afbeelding]ik heb een marquee gemaakt met php & gd, maar je moet de positie van de text in pixels geven, met een statische text is het geen probleem, maar ik wil iets maken met een dynamische text, hoe moet ik de breedte van een string berekenen??
Die text schrijf je waarschijnlijk naar de afbeelding met de functie imagefttext(), niet? Nou, met imageftbbox() kun je de bounding box (en dus o.a. de breedte) opvragen
  zondag 18 juni 2006 @ 10:53:45 #160
65997 Oldbie
Proud to be South African!
pi_38965072
Ik heb een oud PC'tje als gameserver draaien. Compleet met een MySQL database om highscores etc op te slaan. Nu heb ik een betere PC op de kop weten te tikken en ik wil alles overrzetten. Natuurlijk wil ik de highscores niet verliezen dus moet de MySQL database ook over. M.b.v. phpMyAdmin kan ik bij mijn database komen en daar staat iets van exporteer.

Even een printscreen:


Doe ik het zo goed? Kan ik het bestand welke gegenereerd wordt gewoon op de nieuwe PC importeren waardoor alle gegevens meegaan?

Ik heb werkelijk geen flauw idee. Alle hulp is welkom
pi_38965683
@Oldbie

Ja, zo is het prima. Zet de SQL export compatibility nog wel even op de versie van MySQL waar je database op gaat draaien, en zet een vinkje bij opslaan (beneden) zodat je ook daadwerkelijk een bestand krijgt
  zondag 18 juni 2006 @ 11:53:59 #162
65997 Oldbie
Proud to be South African!
pi_38966200
quote:
Op zondag 18 juni 2006 11:29 schreef JeRa het volgende:
@Oldbie

Ja, zo is het prima. Zet de SQL export compatibility nog wel even op de versie van MySQL waar je database op gaat draaien, en zet een vinkje bij opslaan (beneden) zodat je ook daadwerkelijk een bestand krijgt
thanks a lot

[edit]
Hmmm, ik heb MySQL 5.0.20. Welke moet ik dan kiezen?



[/edit]

[ Bericht 6% gewijzigd door Oldbie op 18-06-2006 11:59:30 ]
pi_38967498
@Oldbie

Gewoon op NONE laten staan in dat geval, dan moet het werken
  zondag 18 juni 2006 @ 16:42:45 #164
62687 Ajaxfan
Look out for me
pi_38974283
Bedankt JeRa en Lynx hij doet het nu. Hij zocht naar de tabel leden terwijl deze lid heette. Naam veranderd en het werkt nu.
* Ajax * Arsenal * Barca * Fiorentina * Napoli * Leeds *
pi_38974751
Ik heb een tabel "news" met de volgende fields: id, title, body, author_id, timestamp, deleted

Ik heb een tabel "accounts" met de volgende fields: id, name

Ik heb een tabel "comments" met de volgende fields" id, news_id, body, user_name, timestamp

Nu wil ik met één query het volgende uit de database halen: De eerste 10 berichten uit tabel news welke niet als gedelete gemarkeerd zijn (deleted=0), met daarbij de author naam uit accounts mbv author_id, en het aantal gekoppelde reacties uit comments (dus een count van comments waar comments.news_id == news.id).

Uiteindelijk wil ik dus terugkrijgen: news.id, news.title, news.body, accounts.name, news.timestamp, en het aantal reacties

Dit wordt een ingewikkelde constructie met JOINs waar ik niet helemaal helemaal niet uit kom

Any pointers?
  zondag 18 juni 2006 @ 18:21:03 #166
3677 SuperRembo
Sinds 1998
pi_38976664
Dat kan toch wel met een GROUP BY en een COUNT(comments.id)?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_38977249
@Lynx666

1
2
3
4
5
6
7
8
SELECT n.id, n.title, n.body, a.name, n.timestamp, COUNT(c.id) AS aantal_reacties
FROM news n
LEFT JOIN accounts a ON n.author_id = a.id
LEFT JOIN comments c ON n.id = comments.news_id
WHERE c.deleted = 0
GROUP BY n.id
ORDER BY n.id DESC
LIMIT 0, 10


Maar het lijkt me slimmer om gewoon een counter bij te houden in de news-tabel met het aantal reacties ipv telkens een extra JOIN en GROUP BY te doen

Oh en eigenlijk moet je alles zonder aggregate function in de GROUP BY gooien, maar omdat MySQL het toestaat en omdat n.id uniek is mag dit imo.
pi_38977613
Bedankt Jera

Grappig dat ik net het volgende geprobeerd had wat bleek te werken (ik ben nog een n00b wat betreft JOINs et al ) en dat het bijna identiek is aan jouw oplossing.

1
2
3
4
5
6
7
8
9
10
SELECT news.id, news.title, news.body, news.timestamp, accounts.name, COUNT(comments.id)
FROM news
INNER JOIN accounts
ON news.author_id=accounts.id
INNER JOIN comments
ON news.id=comments.news_id
WHERE news.deleted=0
GROUP BY news.id
ORDER BY news.timestamp DESC
LIMIT 0, 10


Waar jij LEFT JOINs gebruikt heb ik er INNER JOINs staan.. Wat is het wezenlijke verschil daartussen?
quote:
Op zondag 18 juni 2006 18:42 schreef JeRa het volgende:
Maar het lijkt me slimmer om gewoon een counter bij te houden in de news-tabel met het aantal reacties ipv telkens een extra JOIN en GROUP BY te doen
Zo deed ik het eerder ook, maar het leek me 'juister' om die info met een count eruit te halen....

[ Bericht 21% gewijzigd door Lynx666 op 18-06-2006 19:00:19 ]
pi_38980687
quote:
Op zondag 18 juni 2006 18:54 schreef Lynx666 het volgende:
Waar jij LEFT JOINs gebruikt heb ik er INNER JOINs staan.. Wat is het wezenlijke verschil daartussen?
Even simpel gezegd: je koppelt tabel a aan tabel b. Met een LEFT JOIN wordt tabel a altijd aan tabel b gekoppeld, ook als er geen verbinding is met tabel b. Dan krijg je NULL-waarden terug voor de kolommen in tabel b. Met een INNER JOIN krijg je alléén de rijen terug waarvoor de ON-clausule klopt dus als een rij in tabel b niet bestaat (bv. een useraccount) dan krijg je de bijbehorende rij in tabel a ook niet terug.
quote:
[..]

Zo deed ik het eerder ook, maar het leek me 'juister' om die info met een count eruit te halen....
Het is ook juister, maar performancetechnisch is het gewoon een stuk sneller om een apart veld bij te houden dat je op bepaalde momenten update (nieuwe comment, comment verwijderen, etc).

Overigens, als je id-veld uit de 'news'-tabel een AUTO_INCREMENT is en dus dezelfde sortering heeft als news.timestamp, dan kun je net zo goed (zoals in mijn query) sorteren op news.id dat is toch al een PRIMARY KEY, en zolang je niet wilt zoeken op de timestamp scheelt dat weer een index (en de daarbij benodigde indexupdates).
pi_38987812
Ik heb een plaatje van 60px breed, waar ik een text door wil laten scrollen.
Hij begint op 60 (zodat je de text niet ziet) en hij moet scrollen (van rechts naar links) tot dat de text weer uit beeld is, hij verschuift 4px per frame!!
Hij berekend de breedte van de text!!

De huidige 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
<?php
$i_width  
= 60;
$i_height = 60;

$string = "Hello World, This is an test!";
$pointsize = 11;
$font = "./tahoma.ttf";

$im = imagecreate($i_width, $i_height);
$black = imagecolorallocate ($im, 0, 0, 0);


$string_size = ImageFtBbox($pointsize, 0, $font, $string, array("linespacing" =&gt; 1));
$s_width  = $string_size[4];
$s_height = $string_size[5];
$y = round($s_width/4);// $y = stringbreedte / 4

$img0 = ImageCreateFromGIF("guitarist.nl.gif");


for (
$i = 0; $i &lt;= $y; $i++)  
{

$img[$i] = ImageCreateFromGIF("guitarist.nl.gif");
$red = imageColorAllocate($img[$i], 255, 153, 0);
$math = $i_width-($i*4); // $s_ .. is string             $i_... is image
ImageFtText($img[$i], $pointsize, 0, $math,  0 - $s_height, $red, $font, $string, array("linespacing" =&gt; 1));
}

en nog een hele hoop code :&quot;)
?>
PS4 online: micro_nl
pi_38988053
Het is te laat om te rekenen, morgen weer
PS4 online: micro_nl
  zondag 18 juni 2006 @ 23:34:50 #172
65997 Oldbie
Proud to be South African!
pi_38988080
quote:
Op zondag 18 juni 2006 23:26 schreef guitarist.nl het volgende:
[afbeelding]Ik heb een plaatje van 60px breed, waar ik een text door wil laten scrollen.
Hij begint op 60 (zodat je de text niet ziet) en hij moet scrollen (van rechts naar links) tot dat de text weer uit beeld is, hij verschuift 4px per frame!!
Hij berekend de breedte van de text!!

De huidige code:
[ code verwijderd ]
Geen idee, maar om goed engels te gebruiken moet het zijn: "Hello world, this is a test"
  zondag 18 juni 2006 @ 23:45:57 #173
3677 SuperRembo
Sinds 1998
pi_38988426
@guitarist.nl
Wat is je vraag nou eigenlijk?

Waarmee / hoe maak je dat animated gifje?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_38988483
quote:
Op zondag 18 juni 2006 23:34 schreef guitarist.nl het volgende:
Het is te laat om te rekenen, morgen weer
Ik gok dat je de breedte van het plaatje er nog bij moet optellen
pi_38988523
quote:
Op zondag 18 juni 2006 20:36 schreef JeRa het volgende:

[..]

Even simpel gezegd: je koppelt tabel a aan tabel b. Met een LEFT JOIN wordt tabel a altijd aan tabel b gekoppeld, ook als er geen verbinding is met tabel b. Dan krijg je NULL-waarden terug voor de kolommen in tabel b. Met een INNER JOIN krijg je alléén de rijen terug waarvoor de ON-clausule klopt dus als een rij in tabel b niet bestaat (bv. een useraccount) dan krijg je de bijbehorende rij in tabel a ook niet terug.
Duidelijk, thnx .
quote:
[..]

Overigens, als je id-veld uit de 'news'-tabel een AUTO_INCREMENT is en dus dezelfde sortering heeft als news.timestamp, dan kun je net zo goed (zoals in mijn query) sorteren op news.id dat is toch al een PRIMARY KEY, en zolang je niet wilt zoeken op de timestamp scheelt dat weer een index (en de daarbij benodigde indexupdates).
ID veld is idd auto_increment, maar wil wel nieuwsberichten kunnen schedulen. Niet elke gepost bericht krijgt dus de timestamp time() mee. Vandaar de timestamp sortering .
pi_38988576
quote:
Op zondag 18 juni 2006 23:48 schreef JeRa het volgende:

[..]

Ik gok dat je de breedte van het plaatje er nog bij moet optellen
waar bij optellen
PS4 online: micro_nl
pi_38988594
quote:
Op zondag 18 juni 2006 23:45 schreef SuperRembo het volgende:
@guitarist.nl
Wat is je vraag nou eigenlijk?

Waarmee / hoe maak je dat animated gifje?
Hij moet nog 60px verder doorscrollen, maar niet 60 eerder beginnen

van een scriptje van een kammeraad
PS4 online: micro_nl
pi_38988614
quote:
Op zondag 18 juni 2006 23:50 schreef guitarist.nl het volgende:

[..]

waar bij optellen
Bij de totale breedte van de string de scrollafstand van die string moet namelijk (breedte string + 2 * breedte plaatje) zijn om te scrollen zoals jij wilt
pi_38989348
quote:
Op zondag 18 juni 2006 23:52 schreef JeRa het volgende:

[..]

Bij de totale breedte van de string de scrollafstand van die string moet namelijk (breedte string + 2 * breedte plaatje) zijn om te scrollen zoals jij wilt
Ja maar hij moet ook ehm ergens beginnen, niet op 0 iig
PS4 online: micro_nl
pi_38994297
weet iemand misschien wie de SIDN-variant is van de .com domeinen?
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_38997054
quote:
Op zondag 18 juni 2006 23:51 schreef guitarist.nl het volgende:

[..]

Hij moet nog 60px verder doorscrollen, maar niet 60 eerder beginnen

van een scriptje van een kammeraad
plaats dan es het hele scriptje
pi_38997464
quote:
Op maandag 19 juni 2006 09:52 schreef Desdinova het volgende:
weet iemand misschien wie de SIDN-variant is van de .com domeinen?
Internic.net ?
  maandag 19 juni 2006 @ 12:01:59 #183
12221 Tijn
Powered by MS Paint
pi_38997544
quote:
Op maandag 19 juni 2006 11:58 schreef Light het volgende:

[..]

Internic.net ?
Volgens mij wordt het tegenwoordig door het ICANN geregeld.
pi_38997601
quote:
Op maandag 19 juni 2006 12:01 schreef Tijn het volgende:

[..]

Volgens mij wordt het tegenwoordig door het ICANN geregeld.
Ook goed

Ik deed een whois request op een .com domein, en dat leverde onder meer de volgende tekst op:

Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.
  maandag 19 juni 2006 @ 12:09:26 #185
12221 Tijn
Powered by MS Paint
pi_38997782
Ja, InterNIC deed die dingen vroeger. Volgens mij bestaat het ook nog wel, maar is het tegenwoordig onderdeel van het ICANN.
pi_38997993
quote:
Op maandag 19 juni 2006 12:09 schreef Tijn het volgende:
Ja, InterNIC deed die dingen vroeger. Volgens mij bestaat het ook nog wel, maar is het tegenwoordig onderdeel van het ICANN.
Gevonden. InterNIC is een registered service mark van ICANN.
pi_38998124
fenk you
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_39000485
Ik zoek een functie om een deel van een variabele te vervangen, ik ben namelijk een gastenboek aan het maken en daarbij heeft hij dus een $bericht die hij in een database schrijft, nu wilt ik dat hij bijvoorbeeld
1 :) 

vervangt door

1 <img src=bijlagen/sm/smile.gif> 


is hier een speciale code voor of niet??
  maandag 19 juni 2006 @ 13:45:01 #189
52200 ViPeRII
It's a good day to die
pi_39000565
regexp maken!
-- ViPeRII --
  maandag 19 juni 2006 @ 13:46:41 #190
52200 ViPeRII
It's a good day to die
pi_39000628
Of je doet iets als:
$bericht = str_replace(" :smoke: ", "<img src=\"images/smile/smoky.gif\">", $bericht);
-- ViPeRII --
  maandag 19 juni 2006 @ 13:49:14 #191
85514 ralfie
!Yvan eht nioj
pi_39000716
of str_replace(), zoals

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$a
= array(
":)" ,
":(" ,
":|"
);
$b = array(
'<img src="smilies/blij.gif" alt="blij"/>',
'<img src="smilies/nietzoblij.gif" alt="niet zo blij"/>',
'<img src="smilies/zwaardepressief.gif" alt="zwaar depressief"/>'
);

$output = str_replace($a,$b, $string);
?>

EDIT: zoals hierboven dan, alleen met arrays kun je in een keer al je emoticons vervangen
  maandag 19 juni 2006 @ 13:50:29 #192
52200 ViPeRII
It's a good day to die
pi_39000755
Ik was eerder ;-)
-- ViPeRII --
  maandag 19 juni 2006 @ 13:53:44 #193
85514 ralfie
!Yvan eht nioj
pi_39000869
quote:
Op maandag 19 juni 2006 13:50 schreef ViPeRII het volgende:
Ik was eerder ;-)
Je hebt geluk dat ik mijn wachtwoord altijd vergeet en dus op moet zoeken
  maandag 19 juni 2006 @ 13:56:36 #194
52200 ViPeRII
It's a good day to die
pi_39000967
Lol, maar jouw oplossing is nog net iets mooier ;-)
-- ViPeRII --
pi_39002486
Dank, hij doet het
pi_39004133
Ik knal weer tegen een probleem aan..

1
2
3
4
5
<?php
$txt
= preg_replace("#\[image thumb=\"(*.?)\" prefix=\"(*.?)\"
     fw=\"(*.?)\" fn=\"(*.?)\" \/\]#sie"
,
     
make_table('$1','$2','$3','$4'), $txt);
?>


Hiermee wil ik met elke "[image thumb="data" prefix="data" fw="data" fn="data" /]" dat in een stuk tekst voorkomt een tabelletje plaatsen met make_table() m.b.v. de gegeven data fields.

Nu laat mn error log dit zien: PHP Warning: preg_replace(): Compilation failed: nothing to repeat at offset 20 in <php file> on line 78

waarbij line 78 bovenstaande regel is..

Wat klopt er niet aan mijn preg_replace (wat niet meer dan een uitbouwing is van een kortere, wél werkende preg_replace) ??
  FOK!-Schrikkelbaas maandag 19 juni 2006 @ 16:31:18 #197
1972 Swetsenegger
Egocentrische Narcist
pi_39005945
quote:
Op maandag 19 juni 2006 13:42 schreef timbastiaansen het volgende:
Ik zoek een functie om een deel van een variabele te vervangen, ik ben namelijk een gastenboek aan het maken en daarbij heeft hij dus een $bericht die hij in een database schrijft, nu wilt ik dat hij bijvoorbeeld
[ code verwijderd ]


vervangt door
[ code verwijderd ]

is hier een speciale code voor of niet??
De str_replace werkt natuurlijk prima, alleen zou ik het doen bij het uitlezen van het bericht.
Dus je schrijft de userinput gewoon naar DB en bij uitlezen zet je code om naar smilies.
  maandag 19 juni 2006 @ 17:24:44 #198
85514 ralfie
!Yvan eht nioj
pi_39007304
quote:
Op maandag 19 juni 2006 15:34 schreef Lynx666 het volgende:
Ik knal weer tegen een probleem aan..
[ code verwijderd ]

Hiermee wil ik met elke "[image thumb="data" prefix="data" fw="data" fn="data" /]" dat in een stuk tekst voorkomt een tabelletje plaatsen met make_table() m.b.v. de gegeven data fields.

Nu laat mn error log dit zien: PHP Warning: preg_replace(): Compilation failed: nothing to repeat at offset 20 in <php file> on line 78

waarbij line 78 bovenstaande regel is..

Wat klopt er niet aan mijn preg_replace (wat niet meer dan een uitbouwing is van een kortere, wél werkende preg_replace) ??
het is (.*?) en niet (*.?)
  maandag 19 juni 2006 @ 17:38:52 #199
98312 Ewaldus
Save the cheerleader
pi_39007610
ik ben dus dikke n00b met linux enzo, nu heb ik samen met een vriend een dedicated aangeschaft alleen komen we erachter dat mijn scripts alleen onder php5 draaien.

Wie weet een stap voor stap tutorial waar wordt verteld hoe we goed kunnen upgraden?
We draaien CentOS 4. Ik heb zelf al gezocht maar dat mocht op niets uit lopen..
niets
pi_39007649
quote:
Op maandag 19 juni 2006 16:31 schreef Swetsenegger het volgende:

[..]

De str_replace werkt natuurlijk prima, alleen zou ik het doen bij het uitlezen van het bericht.
Dus je schrijft de userinput gewoon naar DB en bij uitlezen zet je code om naar smilies.
Ik denk dat dat ook makkelijker is, scheelt ook weer ruimte in de database nl.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')