PHP et ouverture automatique d'une page...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP et ouverture automatique d'une page...

par netsupra » 01 janv. 2007, 23:19

Salut,
mets en premiere ligne de ton fichier qui pose problème
ob_start();
et a la fin :
ob_end_flush();
Cela devrait regler ton probleme.
Netsupra

par Truc » 01 janv. 2007, 22:24

Délestage ?!

Tu as tout de même résolu ton problème ?

Re: Réponse à Modérateur

par Truc » 01 janv. 2007, 20:30

Recherche sur "ouverture automatique page php"
ne donne pas de résultat satisfaisant !
Merci tout de même
Peut être... mais "headers already sent" est certainement plus parlant :roll:

Réponse à Modérateur

par Grenouille32 » 01 janv. 2007, 20:28

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

Réponse à Ajoloca

par Grenouille32 » 01 janv. 2007, 20:26

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

par Truc » 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

par Ajoloca » 01 janv. 2007, 20:19

As-tu repris le code que je t'ai donné?

Désolé, aucun changement...

par Grenouille32 » 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();
?>

par Ajoloca » 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 !';
	}
?>

C'est un peu long !

par Grenouille32 » 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 !';
}
?>

par Ajoloca » 01 janv. 2007, 19:51

Montre-nous le code de toute la page et mets-le entre les balises [ php] et [/php]

par Grenouille32 » 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');  
}

par Ajoloca » 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.

par Grenouille32 » 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.

par Ajoloca » 01 janv. 2007, 19:29

Sans le message d'erreur, on ne peut pas faire grande chose.