[PHP] probleem met uitvoeren scripts

Pagina: 1
Acties:

  • Solosmots
  • Registratie: November 2000
  • Laatst online: 07-09 20:45
Hallo,
Ik ben net begonnen met PHP, ik heb PHP geinstalleerd op Apache en de standaard test werkt goed (PHP info). Toen wilde ik proberen of ik ook zo'n random image scriptje kon uitvoeren. Dat ging niet, IE wilde het bestand (icon.php) gaan downloaden :?
Anyway, wat meer scriptjes op GoT gezocht, en toen liep ik tegen deze op:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?

function GeneratePWD($length)
{
  $letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQSTUVWXYZ0123456789";
  srand((double) microtime() * 1000000);
  for ($c = 0; $c < $length; $c++)
    $password .= $letters[rand(0,strlen($letters))];
  return $password;
}
  $lengte = "32";
  $pwd = GeneratePWD($lengte);
  print "Generated password:<br>\n";
  print $pwd;
?>

Als ik deze uitvoer krijg ik dit als output:
Warning: Undefined variable: password in c:\apache\apache\htdocs\p3.php3 on line 8

Warning: Uninitialized string offset: 61 in c:\apache\apache\htdocs\p3.php3 on line 8
Generated password:
56FXHde7b6Q6U4x80VHJUBkXqq4M7pD
Hij geeft wel wat ie moet geven, alleen die errors zijn niet ok.
Bij een klasgenoot op z'n server doettie het wel goed (geen errors). Er is dus iets niet ok met mijn config, alleen ik zou niet weten wat..
Andere scriptjes vertonen soortgelijke errors, en ook parse errors heb ik gezien. De standaard PHP instelling in httpd.conf van Apache heb ik er instaan, de link naar de parser is ook goed (sommige scrippies doen het wel).

Wie weet wat het is?

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Op dinsdag 09 april 2002 21:16 schreef Solosmots het volgende:
Bij een klasgenoot op z'n server doettie het wel goed (geen errors). Er is dus iets niet ok met mijn config, alleen ik zou niet weten wat..
Andere scriptjes vertonen soortgelijke errors, en ook parse errors heb ik gezien. De standaard PHP instelling in httpd.conf van Apache heb ik er instaan, de link naar de parser is ook goed (sommige scrippies doen het wel).
Ja je configuratie idd anders. Maar je klasgenoot heeft het verkeerd. Het is fout om errors of warnings zomaar 'weg te drukken' .. alsof ze er niet zijn. Op die manier zal je nooit efficient/goed leren programmeren.

$password ... voordat je iets aan een string kan toevoegen moet je er eerst 1 maken. Dus voor je 'for' loop ff zetten $password = ""; is voldoende.
Verder .. heb je weleens gecheckt of het wachtwoord ook echt uit 32 letters bestaat ;) ?
Kijk nog eens goed naar de rand functie of het niet 'inclusief' het laatste getal is.

  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
Op dinsdag 09 april 2002 21:16 schreef Solosmots het volgende:
Warning: Undefined variable: password in c:\apache\apache\htdocs\p3.php3 on line 8
Warning: Uninitialized string offset: 61 in c:\apache\apache\htdocs\p3.php3 on line 8
Generated password:
56FXHde7b6Q6U4x80VHJUBkXqq4M7pD
Dat komt doordat de code die je gebruikt ontzettend 'lelijk' is en slordig. En PHP merkt dat op als de error reporting op een hoog niveau hebt staan. Als je dat niveau eventueel naar beneden wilt halen, moet je dat in php.ini aanpassen. Maar ik waarschuw je: schrijf altijd zo net mogelijke code. Dat betekent:

- variabelen initialiseren
- $HTTP_POST_VARS of $_POST (of GET) gebruiken ipv. $varname bij forms
- isset() gebruiken om te kijken of een waarde geset is.

  • blackd
  • Registratie: Februari 2001
  • Niet online
Em ben niet zo heel goed in PHP, maar met deze regel:
PHP:
1
<?$password .= $letters[rand(0,strlen($letters))];?>

voeg je toch $letters[rand(0,strlen($letters))] toe aan de variabele $password die tot nu toe nog niet bestaat?
je moet er dan toch dit van maken:
PHP:
1
<?$password = $letters[rand(0,strlen($letters))];?>

(dus zonder de punt)

edit:
oja je wilt natuurlijk een letter toevoegen, dan moet je dus voor je die "for" statement hebt, je password declaren,zoals hierboven gezegd is dus.

9000Wp o/w SolarEdge SE6K - Panasonic 5kW bi-bloc - gasloos sinds 17-7-2023


  • Orphix
  • Registratie: Februari 2000
  • Niet online
Op dinsdag 09 april 2002 21:28 schreef elnino het volgende:
Dat komt doordat de code die je gebruikt ontzettend 'lelijk' is en slordig. En PHP merkt dat op als de error reporting op een hoog niveau hebt staan. Als je dat niveau eventueel naar beneden wilt halen, moet je dat in php.ini aanpassen. Maar ik waarschuw je: schrijf altijd zo net mogelijke code. Dat betekent:

- variabelen initialiseren
- $HTTP_POST_VARS of $_POST (of GET) gebruiken ipv. $varname bij forms
- isset() gebruiken om te kijken of een waarde geset is.
Een dergelijk stukje mag van mij ook wel in de FAQ :Y)

  • Solosmots
  • Registratie: November 2000
  • Laatst online: 07-09 20:45
Dit scriptje komt gewoon uit een topic hiero, gaat me er even of mijn totale config ok is. Ik heb dus ook een random image scriptje, en die voert ie niet uit, maar die begint ie te downen. Is dat wel een config fout?
PHP:
1
<?    Header("Content-type: image/jpg");    Header("Cache-Control: no-cache, must-revalidate");     srand((double)microtime()*1000000);    $nr=rand(1,9);    $fn=fopen("./$nr.jpg","r");     fpassthru($fn); ?>

Verder moet ik het hele proggen een beetje oppakken weer, wel eens wat meegedaan in pascal enzo, alleen PHP is nog nieuw voor me :)

Verwijderd

$lengte = 32;

Verwijderd

Op dinsdag 09 april 2002 21:35 schreef Solosmots het volgende:
Dit scriptje komt gewoon uit een topic hiero, gaat me er even of mijn totale config ok is. Ik heb dus ook een random image scriptje, en die voert ie niet uit, maar die begint ie te downen. Is dat wel een config fout?
PHP:
1
<?    Header("Content-type: image/jpg");    Header("Cache-Control: no-cache, must-revalidate");     srand((double)microtime()*1000000);    $nr=rand(1,9);    $fn=fopen("./$nr.jpg","r");     fpassthru($fn); ?>

Verder moet ik het hele proggen een beetje oppakken weer, wel eens wat meegedaan in pascal enzo, alleen PHP is nog nieuw voor me :)
heb je eigenlijk .php wel asl phptype gedeclared bij apache? .php3 werkte iig wel zei je hè? maar .php niet? hmm....

  • Solosmots
  • Registratie: November 2000
  • Laatst online: 07-09 20:45
Nope daar ligt het niet aan, ze staan beiden gedeclareerd in httpd.conf

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

volgens mij staat je error reporting level te hoog, en moet je nu alle variabelen eerst initten...

óf je error reporting level lager zetten in je php.ini :)

Stop uploading passwords to Github!


  • Solosmots
  • Registratie: November 2000
  • Laatst online: 07-09 20:45
Jah das duidelijk, maar weet iemand waarom dat icon scrippie niet werkt?
OF ligt dat ook aan dat error reporting level?

  • Grum
  • Registratie: Juni 2001
  • Niet online
Ik zou zeggen,zet error_reporting es op E_ALL en kijk welke errors ie geeft.

We kunnen lastig ruiken waarom het niet werkt.

  • Solosmots
  • Registratie: November 2000
  • Laatst online: 07-09 20:45
OK zal ik doen als ik weer thuis ben. Staat ie standaard zeker niet op?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 10 april 2002 09:29 schreef Solosmots het volgende:
Jah das duidelijk, maar weet iemand waarom dat icon scrippie niet werkt?
OF ligt dat ook aan dat error reporting level?
ALS er errors komen levert dat uiteraard een "niet werkend plaatje" op ;)

  • Solosmots
  • Registratie: November 2000
  • Laatst online: 07-09 20:45
Duh :)

  • Solosmots
  • Registratie: November 2000
  • Laatst online: 07-09 20:45
Op woensdag 10 april 2002 10:53 schreef Grum het volgende:
Ik zou zeggen,zet error_reporting es op E_ALL en kijk welke errors ie geeft.

We kunnen lastig ruiken waarom het niet werkt.
Kheb het ff bekeken en daar stond ie al op..
Pagina: 1