Pagina 1 van 26

Scriptingvragen (PHP, JavaScript etc.)

Geplaatst: 16 mar 2007, 10:24
door ElbertF
Scriptingvragen

Bondige scriptingvragen mogen hier (zo duidelijk mogelijk) gesteld worden. Voor uitgebreide vragen kun je echte beter terecht bij een gespecialiseerde supportsite. Als je reageert op een bericht, doe dit dan via de quote knop zodat het duidelijk is op wie je antwoord.

Bijvoorbeeld:

Weet iemand een functie in PHP om arrays van achter naar voren uit te lezen?

Geplaatst: 18 mar 2007, 16:00
door svenn
strikt geheim :bier:

Geplaatst: 18 mar 2007, 16:04
door Paul

Geplaatst: 18 mar 2007, 16:05
door Paul
En aanverwanten (Kan een teamlid de permissies instellen (Wel moeilijk hoor ;)) dat users hun post tenminste kunnen editeten :roll: )

Geplaatst: 18 mar 2007, 16:07
door ElbertF
preg_match() in combinatie met preg_quote(), anders gaan er dingen fout..

Geplaatst: 18 mar 2007, 16:09
door Paul
Spambot schreef:preg_match() in combinatie met preg_quote(), anders gaan er dingen fout..
Dat hoeft niet persee je kan ook direct iets escapen:

Code: Selecteer alles

var_dump(preg_match('#\##si', $string));
:)

Geplaatst: 18 mar 2007, 17:12
door svenn
bedankt paul & spambot preg_match werkt.

Code: Selecteer alles

$inhoud = preg_match("/<!-- start\|naam=(.*?)\|-->/i", $line, $leeg);
beetje klungelig maargoed.

Geplaatst: 20 mar 2007, 20:25
door Xanland
Heb hier een login.php, heb gezien dat er een dubbele else in zat. En dat kan volgens mij niet.
Krijg ook de error: Warning: Cannot modify header information - headers already sent by (output started at F:\webserver\apache\htdocs\nieuw\profiel\functions.php:7) in F:\webserver\apache\htdocs\nieuw\profiel\login.php on line 31
Script schreef:

Code: Selecteer alles

<?php
session_start();
include ("connect.php");
include ("functions.php");

HtmlStart();

Menu();
//
if(isset($_POST['submit']))
{

// Query om te controleren of de juiste gegevens die ingevoerd zijn of ze ook daadwerkelijk in de DB staan //
    $sql = "SELECT * FROM `gebruikers` WHERE `username` = '".addslashes($_POST['username'])."'
         AND `password` = '".md5($_POST['password'])."'";
           
        $info = mysql_query($sql) or die(mysql_errno() . ": " . mysql_error());
       
        //Als de gegevens kloppen wordt alles in SESSIONS gezet en wordt je door gepaast naar index.php //
        //A;s de gegevens niet klopen wordt je gelijk opnieuw naar de login terug gepaast //
        if (mysql_fetch_assoc($info) > 1)
        {
        
        $username = $_POST["username"];
        $password = md5($_POST["password"]);
        
        $_SESSION["username"] = $username;
        $_SESSION['password'] = $password;
        $_SESSION['logged'] = 'true';
            
31:            header ("location: index.php");   
           
        }
          else
        {
       
            header ("location: login.php");
           
        }
       

      }
      else
      {
       //Wanneer je niet ingelogd bent geeft hij een leeg formulier aan //
            echo "<form method='post' action='login.php'>
                  <table>
                  <tr>
                  <td><input type='hidden' name='submit' value='1'></td>
                  </tr>
                  <tr>
                  <td>Username:</td>
                  <td><input type='text' name='username'></td>
                  </tr>
                  <tr>
                  <td>Password:</td>
                  <td><input type='password' name='password'></td>
                  </tr>
                  <tr>
                  <td><input type='submit' name='submit' value='Login'></td>
                  </tr>
                  </table>
                  </form>";
                  
         }
 
HtmlEnd();        
?>

Geplaatst: 20 mar 2007, 20:30
door Salomon
Wat staat er op lijn 7 van profiel\functions.php?

Geplaatst: 20 mar 2007, 20:36
door Xanland
functions.php schreef:

Code: Selecteer alles

function HtmlStart()
{

7:    echo "<html>";
    echo "<head>";
    echo "<title>KSG-Profielen</title>";
    echo "</head>";
    echo "<body>";
   
   
}

Geplaatst: 20 mar 2007, 20:42
door Salomon
Jep, daar is de output gestart, en dan zijn de headers already send :bier:
Je mag namelijk niks verzenden voordat de headers verzonden worden.

Geplaatst: 20 mar 2007, 22:09
door Xanland
En, hoe ga ik dat oplossen?

Geplaatst: 21 mar 2007, 07:49
door Salomon
ik zal het zeggen: Je hebt eerst htmlStart() uitgevoerd, en daarna wil je nog een header verzenden?
Ofwel: Je mag geen header verzenden nadat er ook maar één teken is verzonden.
Overigens: Dit is een warning, error_reporting uitzetten en je bent klaar.
En van die dubbele else: Volgens mij heb je in de if ook nog een andere if zitten, en dan moet je dus ook twee keer else doen?
De eerste is: if(isset($_POST['submit']))
En de tweede: if (mysql_fetch_assoc($info) > 1)
Kortom: Eigenlijk valt het wel mee.

Geplaatst: 21 mar 2007, 09:21
door Bas
Je kan ook ob_start(); aan het begin van het script zetten. Je kan dan geen flush() meer gebruiken, maar dat lost wel simpeler die fouten op. :)

Geplaatst: 21 mar 2007, 16:24
door Xanland
Heb het op de manier van bas gedaan, en het werkte perfect :). Maar Salomon ook bedankt ;).

Geplaatst: 21 mar 2007, 17:00
door svenn
fouten moet je niet wegmoffelen maar oplossen :bier:

Geplaatst: 21 mar 2007, 20:19
door Bas
Ik heb een probleem met regular expressions. :)

Voorbeeldcode:

Code: Selecteer alles

	$content = file_get_contents($site);
	preg_match_all("@<a[ ]{0,}href=[\"']{0,}([^\"]{0,})[\"']{0,}(.*?)>([^<]{0,})</a>@i", $content, $regs);

	foreach ($regs[1] as $url) {
		echo $url . "\r\n";
	}

Nu heb ik als probleem, dat ik in mijn HTML-pagina meerdere soorten a-tags heb. De ene hebben alles met "", de andere alles met ''. Nu heb ik als probleem met de tags met '', dat ze zo in $url komen:
De regex vervangen door:

Code: Selecteer alles

	preg_match_all("@<a[ ]{0,}href=[\"']{0,}([^\"']{0,})[\"']{0,}(.*?)>([^<]{0,})</a>@i", $content, $regs);
helpt ook niet. :(

Weet iemand het? :)

-- Bas

Edit: Oké, opgelost... :| Het werkt dus wel met

Code: Selecteer alles

	preg_match_all("@<a[ ]{0,}href=[\"']{0,}([^'\"]{0,})[\"']{0,}(.*?)>([^<]{0,})</a>@i", $content, $regs);

Geplaatst: 21 mar 2007, 20:40
door svenn
waarom gebruik je @ ? ik gebruik altijd / naja altijd :p er moest een een deftig artikel worden geschreven overs reg. expr. ik heb er ook steeds problemen mee :(

Geplaatst: 21 mar 2007, 21:09
door Montana
avond :)

ik ben nog niet zo heel erg bekend met php dus weet ik niet zo snel waar ik naar moet zoeken helaas
wat ik wil is dus het volgende..ik heb een rss readertje op me site staan en in die berichte staan wel eens van die speciale karakters zoals bv in deze zin..

Het Joods Museum in München opent donderdag zijn deuren.
wat ik dus wil is dat ü gewoon de karakter word zoals het bedoeld is geloof dat het een ú is of zo
iemand een idee waar naar ik moet gaan zoeken ?

tnx :bier:

Geplaatst: 21 mar 2007, 21:12
door Jan
Ligt hoogstwaarschijnlijk aan instellingen van de server.

Weet niet precies hoe en wat, maar vrees dat je 't niet zo makkelijk opgelost kan krijgen!