PHP et ouverture automatique d'une page...

Eléphanteau du PHP | 24 Messages

01 janv. 2007, 19:15

Salut à vous autres,

Encore besoin de vos lumières...
Après vérification d'un mot de passe dans une page .php, j'aimerai que le système ouvre automatiquement la page suivante si le mot de passe est OK.

Connetriez-vous une fonction qui permette d'ouvrir de la sorte une page externe :
if ($loginOK) ...

ViPHP
ViPHP | 1961 Messages

01 janv. 2007, 19:18

Bonjour,
header('Location: ta_page.php');
Modifié en dernier par Ajoloca le 01 janv. 2007, 19:30, modifié 1 fois.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 24 Messages

01 janv. 2007, 19:28

header('Locatio: ta_page.php');
J'avais déjà essayé cette fonction header('Location: index.php');
mais j'obtiens un message d'erreur. Je crois que cette fonction est réservée aux pages html, à mettre dans l'entête ???

ViPHP
ViPHP | 1961 Messages

01 janv. 2007, 19:29

Sans le message d'erreur, on ne peut pas faire grande chose.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 24 Messages

01 janv. 2007, 19:32

Sans le message d'erreur, on ne peut pas faire grande chose.
Warning: Cannot modify header information - headers already sent by (output stated at -adresse-base.php:8)/mnt)114/free.fr ... veriflogin.php on line 60.

ViPHP
ViPHP | 1961 Messages

01 janv. 2007, 19:36

C'est parce que les entêtes on déjà été envoyées.

Rien ne doit être envoyé au navigateur avant cette ligne, même pas un espace.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 24 Messages

01 janv. 2007, 19:49

Désolé, je ne vois pas ce qui pourrait être envoyé !!!
if ($loginOK) {
  $_SESSION['nom'] = $data['nom'];
  $_SESSION['adresse'] = $data['adresse'];
  $_SESSION['cp'] = $data['cp'];
  $_SESSION['ville'] = $data['ville'];
  $_SESSION['telephone1'] = $data['telephone1'];
  $_SESSION['portable'] = $data['portable'];
  $_SESSION['fax'] = $data['fax'];    
header('Location: index.php');  
}

ViPHP
ViPHP | 1961 Messages

01 janv. 2007, 19:51

Montre-nous le code de toute la page et mets-le entre les balises [ php] et [/php]
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 24 Messages

01 janv. 2007, 19:53

<?php
$loginOK = false; 

if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) ) {

  extract($_POST);  // je vous renvoie à la doc de cette fonction

  // On va chercher le mot de passe afférent à ce login
  $sql = "SELECT  login, mot_de_passe, nom, adresse, cp, ville, telephone1, portable, fax, mail FROM table1 WHERE login = '".addslashes($login)."'";
  $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

  // On vérifie que l'utilisateur existe bien
  if (mysql_num_rows($req) > 0) {
     $data = mysql_fetch_assoc($req);
   
    // On vérifie que son mot de passe est correct
    if ($password == $data['mot_de_passe']) {
      $loginOK = true;
    }
  }
}

// Si le login a été validé on met les données en sessions
if ($loginOK) {
  $_SESSION['nom'] = $data['nom'];
  $_SESSION['adresse'] = $data['adresse'];
  $_SESSION['cp'] = $data['cp'];
  $_SESSION['ville'] = $data['ville'];
  $_SESSION['telephone1'] = $data['telephone1'];
  $_SESSION['portable'] = $data['portable'];
  $_SESSION['fax'] = $data['fax'];    
header('Location: index.php');     
echo "Tout est OK"  ;
}
else {
  echo 'Une erreur est survenue, veuillez réessayer !';
}
?>

ViPHP
ViPHP | 1961 Messages

01 janv. 2007, 20:00

Ce code devrait fonctionner à condition que <?php soit la première ligne du fichier.
<?php
	session_start();
	$loginOK = false;
	if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) ) {
		extract($_POST); // je vous renvoie à la doc de cette fonction
		// On va chercher le mot de passe afférent à ce login
		$sql = "SELECT login, mot_de_passe, nom, adresse, cp, ville, telephone1, portable, fax, mail FROM table1 WHERE login = '".addslashes($login)."'";
		$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
		// On vérifie que l'utilisateur existe bien
		if (mysql_num_rows($req) > 0) {
			$data = mysql_fetch_assoc($req);
			// On vérifie que son mot de passe est correct
			if ($password == $data['mot_de_passe']) {
				$loginOK = true;
			}
		}
	}
	// Si le login a été validé on met les données en sessions
	if ($loginOK) {
		$_SESSION['nom'] = $data['nom'];
		$_SESSION['adresse'] = $data['adresse'];
		$_SESSION['cp'] = $data['cp'];
		$_SESSION['ville'] = $data['ville'];
		$_SESSION['telephone1'] = $data['telephone1'];
		$_SESSION['portable'] = $data['portable'];
		$_SESSION['fax'] = $data['fax'];
		header('Location: index.php');
		exit();
	}
	else {
		echo 'Une erreur est survenue, veuillez réessayer !';
	}
?>
Modifié en dernier par Ajoloca le 01 janv. 2007, 20:11, modifié 1 fois.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 24 Messages

01 janv. 2007, 20:09

En plus, sur mon fichier appelant (i.e. celui duquel je part) la première ligne est évidement réservée à :
<?php
// On démarre la session
session_start();
?>

ViPHP
ViPHP | 1961 Messages

01 janv. 2007, 20:19

As-tu repris le code que je t'ai donné?
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

01 janv. 2007, 20:21

Modération :
Visiblement tu n'est pas très familier avec le PHP.

Pourquoi avoir posté dans ce Forum (PHP4) l'intitulé précise pourtant qu'il est réservé aux utilisateur plus expérimentés.
Ce n'est pas une critique mais les réponses sont adaptées au Forum... la preuve tu as eu LA réponse sans plus d'explications car sous entenu du maitrises les bases.

J'en profites pour déplacer dans le Forum plus approprié "Débuter en PHP"

De plus utilise les balises [ PHP] et [ /PHP] pour encadrer du code (des boutons au dessus de la zone de saisie sont prévu à cet effet).
Je l'ai fait pour toi cette fois mais pense y à l'avenir.
Le règlement de PHPFrance!

Et pour finir... ce sujet à déjà été traité plusieurs fois => une recherche n'est pas superflue

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 24 Messages

01 janv. 2007, 20:26

Oui, j'ai repris le code tel quel !
Tjs message d'erreur.

Eléphanteau du PHP | 24 Messages

01 janv. 2007, 20:28

Recherche sur "ouverture automatique page php"
ne donne pas de résultat satisfaisant !
Merci tout de même